prep for map dumping (#760)

* prep for map dumping

* s p a c i n g

* advanced door + world statics

* sneaky tabs

* more world

* one more

* saved for later

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2022-09-06 11:26:53 -04:00 committed by GitHub
parent c0d92f075a
commit 0df93d5b2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 5838 additions and 1394 deletions

View File

@ -1424,13 +1424,13 @@ typedef struct PartnerAnimations {
/* 0x00 */ s32 anims[9];
} PartnerAnimations; // size = 0x24
typedef void (*PushBlockFallCallback)(s32 gridSystemID, s32 index);
typedef s32 (*PushBlockFallCallback)(Entity* block, Evt* script);
typedef struct PushBlockGrid {
/* 0x00 */ u8* cells;
/* 0x04 */ u8 numCellsX;
/* 0x05 */ u8 numCellsZ;
/* 0x06 */ char unk_06[2];
/* 0x08 */ s32 centerPos[3];
/* 0x08 */ Vec3i centerPos;
/* 0x14 */ PushBlockFallCallback(dropCallback);
/* 0x18 */ char unk_18[4];
} PushBlockGrid; // size = 0x1C

File diff suppressed because it is too large Load Diff

View File

@ -120,6 +120,33 @@ enum {
#define EVT_LIMIT -250000000 // TODO better name
#define MAKE_ENTITY_END 0x80000000
#define EVT_INDEX_OF_VAR(v) ((v + 30000000))
#define EVT_INDEX_OF_FLAG(v) ((v + 70000000))
#define EVT_INDEX_OF_MAP_VAR(v) ((v + 50000000))
#define EVT_INDEX_OF_MAP_FLAG(v) ((v + 90000000))
#define EVT_INDEX_OF_AREA_FLAG(v) ((v + 110000000))
#define EVT_INDEX_OF_AREA_BYTE(v) ((v + 150000000))
#define EVT_INDEX_OF_SAVE_FLAG(v) ((v + 130000000))
#define EVT_INDEX_OF_SAVE_BYTE(v) ((v + 170000000))
// shorthand names for EVT_VAR
#define VAR0 EVT_VAR(0)
#define VAR1 EVT_VAR(1)
#define VAR2 EVT_VAR(2)
#define VAR3 EVT_VAR(3)
#define VAR4 EVT_VAR(4)
#define VAR5 EVT_VAR(5)
#define VAR6 EVT_VAR(6)
#define VAR7 EVT_VAR(7)
#define VAR8 EVT_VAR(8)
#define VAR9 EVT_VAR(9)
#define VARA EVT_VAR(10)
#define VARB EVT_VAR(11)
#define VARC EVT_VAR(12)
#define VARD EVT_VAR(13)
#define VARE EVT_VAR(14)
#define VARF EVT_VAR(15)
// deprecated, use enum GSW/GSWF
#define EVT_STORY_PROGRESS EVT_SAVE_VAR(0)
#define EVT_SAVE_FLAG_PLACES_VISITED EVT_SAVE_FLAG(0x7AA)

View File

@ -478,7 +478,7 @@ struct ModelTransformGroup* get_transform_group(s32 index);
void make_transform_group(u16 modelID);
void enable_transform_group(u16 modelID);
void disable_transform_group(u16 modelID);
void set_map_transition_effect(s32);
void set_map_transition_effect(ScreenTransition);
void set_tex_panner(struct Model* model, s32 texPannerID);
void set_custom_gfx(s32 customGfxIndex, Gfx* pre, Gfx* post);

View File

@ -114,6 +114,8 @@
#define SPRITE_PIXEL_SCALE (5.0 / 7.0)
#define ITEM_VIS_GROUP(itemID, visGroupID) ((visGroupID) << 16 | (itemID))
/* common AI function and script variables */
// ai script
#define AI_TEMP_STATE functionTemp[0]

516
include/saved_byte_names.h Normal file
View File

@ -0,0 +1,516 @@
#include "evt.h"
enum GameBytes {
GB_StoryProgress = EVT_SAVE_VAR(0x000),
GB_Unused_EVT_01 = EVT_SAVE_VAR(0x001), ///< copied from GameStaus->unk_A9 by Function_80035E54 during save file load
GB_Unused_EVT_02 = EVT_SAVE_VAR(0x002),
GB_Unused_EVT_03 = EVT_SAVE_VAR(0x003),
GB_Unused_EVT_04 = EVT_SAVE_VAR(0x004),
GB_Unused_EVT_05 = EVT_SAVE_VAR(0x005),
GB_Unused_EVT_06 = EVT_SAVE_VAR(0x006),
GB_Unused_EVT_07 = EVT_SAVE_VAR(0x007),
GB_Unused_EVT_08 = EVT_SAVE_VAR(0x008),
GB_Unused_EVT_09 = EVT_SAVE_VAR(0x009),
GB_Unused_EVT_0A = EVT_SAVE_VAR(0x00A),
GB_Unused_EVT_0B = EVT_SAVE_VAR(0x00B),
GB_Unused_KMR_00 = EVT_SAVE_VAR(0x00C),
GB_Unused_KMR_01 = EVT_SAVE_VAR(0x00D),
GB_KMR20_MarioReadLetterFlags_00 = EVT_SAVE_VAR(0x00E),
GB_KMR20_MarioReadLetterFlags_01 = EVT_SAVE_VAR(0x00F),
GB_Unused_KMR_04 = EVT_SAVE_VAR(0x010),
GB_Unused_KMR_05 = EVT_SAVE_VAR(0x011),
GB_Unused_KMR_06 = EVT_SAVE_VAR(0x012),
GB_Unused_KMR_07 = EVT_SAVE_VAR(0x013),
GB_Unused_KMR_08 = EVT_SAVE_VAR(0x014),
GB_Unused_KMR_09 = EVT_SAVE_VAR(0x015),
GB_Unused_KMR_0A = EVT_SAVE_VAR(0x016),
GB_Unused_KMR_0B = EVT_SAVE_VAR(0x017),
GB_Unused_KMR_0C = EVT_SAVE_VAR(0x018),
GB_Unused_KMR_0D = EVT_SAVE_VAR(0x019),
GB_Unused_KMR_0E = EVT_SAVE_VAR(0x01A),
GB_MAC01_Merlon_SpinJumpCount = EVT_SAVE_VAR(0x01B),
GB_MAC00_DojoRank = EVT_SAVE_VAR(0x01C),
GB_MAC03_LilOinkCount = EVT_SAVE_VAR(0x01D), ///< 0 = none. 1 = ready, 2 = broken
GB_MAC03_LilOink_00 = EVT_SAVE_VAR(0x01E),
GB_MAC03_LilOink_01 = EVT_SAVE_VAR(0x01F),
GB_MAC03_LilOink_02 = EVT_SAVE_VAR(0x020),
GB_MAC03_LilOink_03 = EVT_SAVE_VAR(0x021),
GB_MAC03_LilOink_04 = EVT_SAVE_VAR(0x022),
GB_MAC03_LilOink_05 = EVT_SAVE_VAR(0x023),
GB_MAC03_LilOink_06 = EVT_SAVE_VAR(0x024),
GB_MAC03_LilOink_07 = EVT_SAVE_VAR(0x025),
GB_MAC03_LilOink_08 = EVT_SAVE_VAR(0x026),
GB_MAC03_LilOink_09 = EVT_SAVE_VAR(0x027),
GB_MAC03_LilOink_0A = EVT_SAVE_VAR(0x028),
GB_MAC01_Rowf_Badge0 = EVT_SAVE_VAR(0x029),
GB_MAC01_Rowf_Badge1 = EVT_SAVE_VAR(0x02A),
GB_MAC01_Rowf_Badge2 = EVT_SAVE_VAR(0x02B),
GB_MAC01_Rowf_NumBadges = EVT_SAVE_VAR(0x02C),
GB_MAC03_LilOinkCapsuleState = EVT_SAVE_VAR(0x02D),
GB_Unused_MAC_13 = EVT_SAVE_VAR(0x02E),
GB_Unused_MAC_14 = EVT_SAVE_VAR(0x02F),
GB_Unused_MAC_15 = EVT_SAVE_VAR(0x030),
GB_Unused_MAC_16 = EVT_SAVE_VAR(0x031),
GB_Unused_MAC_17 = EVT_SAVE_VAR(0x032),
GB_Unused_MAC_18 = EVT_SAVE_VAR(0x033),
GB_Unused_MAC_19 = EVT_SAVE_VAR(0x034),
GB_Unused_MAC_1A = EVT_SAVE_VAR(0x035),
GB_Unused_MAC_1B = EVT_SAVE_VAR(0x036),
GB_Unused_MAC_1C = EVT_SAVE_VAR(0x037),
GB_TIK15_RipCheato_PurchaseCount = EVT_SAVE_VAR(0x038),
GB_Unused_TIK_01 = EVT_SAVE_VAR(0x039),
GB_Unused_TIK_02 = EVT_SAVE_VAR(0x03A),
GB_Unused_TIK_03 = EVT_SAVE_VAR(0x03B),
GB_Unused_TIK_04 = EVT_SAVE_VAR(0x03C),
GB_Unused_TIK_05 = EVT_SAVE_VAR(0x03D),
GB_Unused_TIK_06 = EVT_SAVE_VAR(0x03E),
GB_Unused_TIK_07 = EVT_SAVE_VAR(0x03F),
GB_Unused_TIK_08 = EVT_SAVE_VAR(0x040),
GB_Unused_TIK_09 = EVT_SAVE_VAR(0x041),
GB_Unused_TIK_0A = EVT_SAVE_VAR(0x042),
GB_Unused_KGR_00 = EVT_SAVE_VAR(0x043),
GB_Unused_KGR_01 = EVT_SAVE_VAR(0x044),
GB_Unused_KGR_02 = EVT_SAVE_VAR(0x045),
GB_Unused_KGR_03 = EVT_SAVE_VAR(0x046),
GB_Unused_KGR_04 = EVT_SAVE_VAR(0x047),
GB_Unused_KGR_05 = EVT_SAVE_VAR(0x048),
GB_Unused_KGR_06 = EVT_SAVE_VAR(0x049),
GB_Unused_KGR_07 = EVT_SAVE_VAR(0x04A),
GB_Unused_KGR_08 = EVT_SAVE_VAR(0x04B),
GB_Unused_KGR_09 = EVT_SAVE_VAR(0x04C),
GB_Unused_KKJ_00 = EVT_SAVE_VAR(0x04D),
GB_KKJ_LastPartner = EVT_SAVE_VAR(0x04E), ///< peach missions need to remember Mario's last partner
GB_KKJ_CaughtCount = EVT_SAVE_VAR(0x04F), ///< how many times peach is caught for each mission
GB_Unused_KKJ_03 = EVT_SAVE_VAR(0x050),
GB_Unused_KKJ_04 = EVT_SAVE_VAR(0x051),
GB_Unused_KKJ_05 = EVT_SAVE_VAR(0x052),
GB_Unused_KKJ_06 = EVT_SAVE_VAR(0x053),
GB_Unused_KKJ_07 = EVT_SAVE_VAR(0x054),
GB_Unused_KKJ_08 = EVT_SAVE_VAR(0x055),
GB_Unused_KKJ_09 = EVT_SAVE_VAR(0x056),
GB_Unused_KKJ_0A = EVT_SAVE_VAR(0x057),
GB_Unused_KKJ_0B = EVT_SAVE_VAR(0x058),
GB_Unused_KKJ_0C = EVT_SAVE_VAR(0x059),
GB_Unused_HOS_00 = EVT_SAVE_VAR(0x05A),
GB_Unused_HOS_01 = EVT_SAVE_VAR(0x05B),
GB_Unused_HOS_02 = EVT_SAVE_VAR(0x05C),
GB_Unused_HOS_03 = EVT_SAVE_VAR(0x05D),
GB_Unused_HOS_04 = EVT_SAVE_VAR(0x05E),
GB_Unused_HOS_05 = EVT_SAVE_VAR(0x05F),
GB_Unused_HOS_06 = EVT_SAVE_VAR(0x060),
GB_Unused_HOS_07 = EVT_SAVE_VAR(0x061),
GB_Unused_HOS_08 = EVT_SAVE_VAR(0x062),
GB_Unused_HOS_09 = EVT_SAVE_VAR(0x063),
GB_Unused_NOK_00 = EVT_SAVE_VAR(0x064),
GB_Unused_NOK_01 = EVT_SAVE_VAR(0x065),
GB_Unused_NOK_02 = EVT_SAVE_VAR(0x066),
GB_Unused_NOK_03 = EVT_SAVE_VAR(0x067),
GB_Unused_NOK_04 = EVT_SAVE_VAR(0x068),
GB_Unused_NOK_05 = EVT_SAVE_VAR(0x069),
GB_Unused_NOK_06 = EVT_SAVE_VAR(0x06A),
GB_Unused_NOK_07 = EVT_SAVE_VAR(0x06B),
GB_Unused_NOK_08 = EVT_SAVE_VAR(0x06C),
GB_Unused_NOK_09 = EVT_SAVE_VAR(0x06D),
GB_Unused_NOK_0A = EVT_SAVE_VAR(0x06E),
GB_Unused_NOK_0B = EVT_SAVE_VAR(0x06F),
GB_Unused_TRD_00 = EVT_SAVE_VAR(0x070),
GB_Unused_TRD_01 = EVT_SAVE_VAR(0x071),
GB_Unused_TRD_02 = EVT_SAVE_VAR(0x072),
GB_Unused_TRD_03 = EVT_SAVE_VAR(0x073),
GB_Unused_TRD_04 = EVT_SAVE_VAR(0x074),
GB_Unused_TRD_05 = EVT_SAVE_VAR(0x075),
GB_Unused_TRD_06 = EVT_SAVE_VAR(0x076),
GB_Unused_TRD_07 = EVT_SAVE_VAR(0x077),
GB_Unused_TRD_08 = EVT_SAVE_VAR(0x078),
GB_Unused_TRD_09 = EVT_SAVE_VAR(0x079),
GB_IWA10_ReturnedLetterCount = EVT_SAVE_VAR(0x07A),
GB_IWA00_Whacka_HitCount = EVT_SAVE_VAR(0x07B),
GB_Unused_IWA_02 = EVT_SAVE_VAR(0x07C),
GB_Unused_IWA_03 = EVT_SAVE_VAR(0x07D),
GB_Unused_IWA_04 = EVT_SAVE_VAR(0x07E),
GB_Unused_IWA_05 = EVT_SAVE_VAR(0x07F),
GB_Unused_IWA_06 = EVT_SAVE_VAR(0x080),
GB_Unused_IWA_07 = EVT_SAVE_VAR(0x081),
GB_Unused_IWA_08 = EVT_SAVE_VAR(0x082),
GB_Unused_IWA_09 = EVT_SAVE_VAR(0x083),
GB_Unused_IWA_0A = EVT_SAVE_VAR(0x084),
GB_Unused_IWA_0B = EVT_SAVE_VAR(0x085),
GB_DRO02_SheekGiftCount = EVT_SAVE_VAR(0x086),
GB_DRO02_SheekLemonGiftCount = EVT_SAVE_VAR(0x087),
GB_Unused_DRO_02 = EVT_SAVE_VAR(0x088),
GB_Unused_DRO_03 = EVT_SAVE_VAR(0x089),
GB_Unused_DRO_04 = EVT_SAVE_VAR(0x08A),
GB_Unused_DRO_05 = EVT_SAVE_VAR(0x08B),
GB_Unused_DRO_06 = EVT_SAVE_VAR(0x08C),
GB_Unused_DRO_07 = EVT_SAVE_VAR(0x08D),
GB_Unused_DRO_08 = EVT_SAVE_VAR(0x08E),
GB_Unused_DRO_09 = EVT_SAVE_VAR(0x08F),
GB_Unused_DRO_0A = EVT_SAVE_VAR(0x090),
GB_Unused_DRO_0B = EVT_SAVE_VAR(0x091),
GB_Unused_SBK_00 = EVT_SAVE_VAR(0x092),
GB_Unused_SBK_01 = EVT_SAVE_VAR(0x093),
GB_Unused_SBK_02 = EVT_SAVE_VAR(0x094),
GB_Unused_SBK_03 = EVT_SAVE_VAR(0x095),
GB_Unused_SBK_04 = EVT_SAVE_VAR(0x096),
GB_Unused_SBK_05 = EVT_SAVE_VAR(0x097),
GB_Unused_SBK_06 = EVT_SAVE_VAR(0x098),
GB_Unused_SBK_07 = EVT_SAVE_VAR(0x099),
GB_Unused_SBK_08 = EVT_SAVE_VAR(0x09A),
GB_Unused_SBK_09 = EVT_SAVE_VAR(0x09B),
GB_ISK11_ItemSocket1 = EVT_SAVE_VAR(0x09C), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_ISK11_ItemSocket2 = EVT_SAVE_VAR(0x09D), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_ISK11_ItemSocket3 = EVT_SAVE_VAR(0x09E), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_ISK11_ItemSocket4 = EVT_SAVE_VAR(0x09F), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_ISK11_ItemSocket5 = EVT_SAVE_VAR(0x0A0), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_Unused_ISK_05 = EVT_SAVE_VAR(0x0A1),
GB_Unused_ISK_06 = EVT_SAVE_VAR(0x0A2),
GB_Unused_ISK_07 = EVT_SAVE_VAR(0x0A3),
GB_Unused_ISK_08 = EVT_SAVE_VAR(0x0A4),
GB_Unused_ISK_09 = EVT_SAVE_VAR(0x0A5),
GB_Unused_ISK_0A = EVT_SAVE_VAR(0x0A6),
GB_Unused_ISK_0B = EVT_SAVE_VAR(0x0A7),
GB_Unused_ISK_0C = EVT_SAVE_VAR(0x0A8),
GB_Unused_ISK_0D = EVT_SAVE_VAR(0x0A9),
GB_Unused_ISK_0E = EVT_SAVE_VAR(0x0AA),
GB_MIM_CurrentMapID = EVT_SAVE_VAR(0x0AB),
GB_Unused_MIM_01 = EVT_SAVE_VAR(0x0AC),
GB_Unused_MIM_02 = EVT_SAVE_VAR(0x0AD),
GB_Unused_MIM_03 = EVT_SAVE_VAR(0x0AE),
GB_Unused_MIM_04 = EVT_SAVE_VAR(0x0AF),
GB_Unused_MIM_05 = EVT_SAVE_VAR(0x0B0),
GB_Unused_MIM_06 = EVT_SAVE_VAR(0x0B1),
GB_Unused_MIM_07 = EVT_SAVE_VAR(0x0B2),
GB_Unused_MIM_08 = EVT_SAVE_VAR(0x0B3),
GB_Unused_MIM_09 = EVT_SAVE_VAR(0x0B4),
GB_Unused_MIM_0A = EVT_SAVE_VAR(0x0B5),
GB_OBK07_SelectedRecord = EVT_SAVE_VAR(0x0B6), ///< seems there were more than one at some point
GB_Unused_OBK_01 = EVT_SAVE_VAR(0x0B7),
GB_Unused_OBK_02 = EVT_SAVE_VAR(0x0B8),
GB_Unused_OBK_03 = EVT_SAVE_VAR(0x0B9),
GB_Unused_OBK_04 = EVT_SAVE_VAR(0x0BA),
GB_Unused_OBK_05 = EVT_SAVE_VAR(0x0BB),
GB_Unused_OBK_06 = EVT_SAVE_VAR(0x0BC),
GB_Unused_OBK_07 = EVT_SAVE_VAR(0x0BD),
GB_Unused_OBK_08 = EVT_SAVE_VAR(0x0BE),
GB_Unused_OBK_09 = EVT_SAVE_VAR(0x0BF),
GB_Unused_OBK_0A = EVT_SAVE_VAR(0x0C0),
GB_Unused_ARN_00 = EVT_SAVE_VAR(0x0C1),
GB_Unused_ARN_01 = EVT_SAVE_VAR(0x0C2),
GB_Unused_ARN_02 = EVT_SAVE_VAR(0x0C3),
GB_Unused_ARN_03 = EVT_SAVE_VAR(0x0C4),
GB_Unused_ARN_04 = EVT_SAVE_VAR(0x0C5),
GB_Unused_ARN_05 = EVT_SAVE_VAR(0x0C6),
GB_Unused_ARN_06 = EVT_SAVE_VAR(0x0C7),
GB_Unused_ARN_07 = EVT_SAVE_VAR(0x0C8),
GB_Unused_ARN_08 = EVT_SAVE_VAR(0x0C9),
GB_Unused_ARN_09 = EVT_SAVE_VAR(0x0CA),
GB_ARN_Tubba_MapID = EVT_SAVE_VAR(0x0CB), ///< current map ID for Tubba's location in his manor
GB_Unused_DGB_01 = EVT_SAVE_VAR(0x0CC),
GB_Unused_DGB_02 = EVT_SAVE_VAR(0x0CD),
GB_Unused_DGB_03 = EVT_SAVE_VAR(0x0CE),
GB_Unused_DGB_04 = EVT_SAVE_VAR(0x0CF),
GB_Unused_DGB_05 = EVT_SAVE_VAR(0x0D0),
GB_Unused_DGB_06 = EVT_SAVE_VAR(0x0D1),
GB_Unused_DGB_07 = EVT_SAVE_VAR(0x0D2),
GB_Unused_DGB_08 = EVT_SAVE_VAR(0x0D3),
GB_Unused_DGB_09 = EVT_SAVE_VAR(0x0D4),
GB_Unused_DGB_0A = EVT_SAVE_VAR(0x0D5),
GB_Unused_OMO_00 = EVT_SAVE_VAR(0x0D6),
GB_OMO_TrainDestination = EVT_SAVE_VAR(0x0D7),
GB_OMO_PeachChoice1 = EVT_SAVE_VAR(0x0D8),
GB_OMO_PeachChoice2 = EVT_SAVE_VAR(0x0D9),
GB_OMO_PeachChoice3 = EVT_SAVE_VAR(0x0DA),
GB_Unused_OMO_05 = EVT_SAVE_VAR(0x0DB),
GB_Unused_OMO_06 = EVT_SAVE_VAR(0x0DC),
GB_Unused_OMO_07 = EVT_SAVE_VAR(0x0DD),
GB_Unused_OMO_08 = EVT_SAVE_VAR(0x0DE),
GB_Unused_OMO_09 = EVT_SAVE_VAR(0x0DF),
GB_Unused_OMO_0A = EVT_SAVE_VAR(0x0E0),
GB_Unused_OMO_0B = EVT_SAVE_VAR(0x0E1),
GB_Unused_OMO_0C = EVT_SAVE_VAR(0x0E2),
GB_Unused_OMO_0D = EVT_SAVE_VAR(0x0E3),
GB_Unused_OMO_0E = EVT_SAVE_VAR(0x0E4),
GB_Unused_JAN_00 = EVT_SAVE_VAR(0x0E5),
GB_Unused_JAN_01 = EVT_SAVE_VAR(0x0E6),
GB_Unused_JAN_02 = EVT_SAVE_VAR(0x0E7),
GB_Unused_JAN_03 = EVT_SAVE_VAR(0x0E8),
GB_Unused_JAN_04 = EVT_SAVE_VAR(0x0E9),
GB_Unused_JAN_05 = EVT_SAVE_VAR(0x0EA),
GB_Unused_JAN_06 = EVT_SAVE_VAR(0x0EB),
GB_Unused_JAN_07 = EVT_SAVE_VAR(0x0EC),
GB_Unused_JAN_08 = EVT_SAVE_VAR(0x0ED),
GB_Unused_JAN_09 = EVT_SAVE_VAR(0x0EE),
GB_Unused_KZN_00 = EVT_SAVE_VAR(0x0EF),
GB_Unused_KZN_01 = EVT_SAVE_VAR(0x0F0),
GB_Unused_KZN_02 = EVT_SAVE_VAR(0x0F1),
GB_Unused_KZN_03 = EVT_SAVE_VAR(0x0F2),
GB_Unused_KZN_04 = EVT_SAVE_VAR(0x0F3),
GB_Unused_KZN_05 = EVT_SAVE_VAR(0x0F4),
GB_Unused_KZN_06 = EVT_SAVE_VAR(0x0F5),
GB_Unused_KZN_07 = EVT_SAVE_VAR(0x0F6),
GB_Unused_KZN_08 = EVT_SAVE_VAR(0x0F7),
GB_Unused_KZN_09 = EVT_SAVE_VAR(0x0F8),
GB_Unused_FLO_00 = EVT_SAVE_VAR(0x0F9),
GB_Unused_FLO_01 = EVT_SAVE_VAR(0x0FA),
GB_Unused_FLO_02 = EVT_SAVE_VAR(0x0FB),
GB_FLO18_MachineDamage_Left = EVT_SAVE_VAR(0x0FC),
GB_FLO18_MachineDamage_Right = EVT_SAVE_VAR(0x0FD),
GB_Unused_FLO_05 = EVT_SAVE_VAR(0x0FE),
GB_Unused_FLO_06 = EVT_SAVE_VAR(0x0FF),
GB_Unused_FLO_07 = EVT_SAVE_VAR(0x100),
GB_Unused_FLO_08 = EVT_SAVE_VAR(0x101),
GB_Unused_FLO_09 = EVT_SAVE_VAR(0x102),
GB_Unused_FLO_0A = EVT_SAVE_VAR(0x103),
GB_Unused_FLO_0B = EVT_SAVE_VAR(0x104),
GB_Unused_FLO_0C = EVT_SAVE_VAR(0x105),
GB_Unused_FLO_0D = EVT_SAVE_VAR(0x106),
GB_Unused_FLO_0E = EVT_SAVE_VAR(0x107),
GB_SAM09_ItemSocket1_LowerByte = EVT_SAVE_VAR(0x108), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_SAM09_ItemSocket1_UpperByte = EVT_SAVE_VAR(0x109), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_SAM09_ItemSocket2_LowerByte = EVT_SAVE_VAR(0x10A), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_SAM09_ItemSocket2_UpperByte = EVT_SAVE_VAR(0x10B), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_SAM09_ItemSocket3_LowerByte = EVT_SAVE_VAR(0x10C), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_SAM09_ItemSocket3_UpperByte = EVT_SAVE_VAR(0x10D), ///< currently stored itemID (invalid for itemIDs > 0xFF)
GB_SAM11_FrozenPondDamage = EVT_SAVE_VAR(0x10E),
GB_Unused_SAM_07 = EVT_SAVE_VAR(0x10F),
GB_Unused_SAM_08 = EVT_SAVE_VAR(0x110),
GB_Unused_SAM_09 = EVT_SAVE_VAR(0x111),
GB_Unused_SAM_0A = EVT_SAVE_VAR(0x112),
GB_Unused_SAM_0B = EVT_SAVE_VAR(0x113),
GB_Unused_SAM_0C = EVT_SAVE_VAR(0x114),
GB_Unused_SAM_0D = EVT_SAVE_VAR(0x115),
GB_Unused_SAM_0E = EVT_SAVE_VAR(0x116),
GB_Unused_SAM_0F = EVT_SAVE_VAR(0x117),
GB_Unused_SAM_10 = EVT_SAVE_VAR(0x118),
GB_Unused_SAM_11 = EVT_SAVE_VAR(0x119),
GB_Unused_SAM_12 = EVT_SAVE_VAR(0x11A),
GB_Unused_PRA_00 = EVT_SAVE_VAR(0x11B),
GB_PRA18_ClubbasDefeated = EVT_SAVE_VAR(0x11C),
GB_PRA19_TutorialState = EVT_SAVE_VAR(0x11D), ///< 0/1/2 for the action performed by the reflection
GB_PRA_TwinStatueState = EVT_SAVE_VAR(0x11E), ///< 0/1/2
GB_Unused_PRA_04 = EVT_SAVE_VAR(0x11F),
GB_Unused_PRA_05 = EVT_SAVE_VAR(0x120),
GB_Unused_PRA_06 = EVT_SAVE_VAR(0x121),
GB_Unused_PRA_07 = EVT_SAVE_VAR(0x122),
GB_Unused_PRA_08 = EVT_SAVE_VAR(0x123),
GB_Unused_PRA_09 = EVT_SAVE_VAR(0x124),
GB_Unused_PRA_0A = EVT_SAVE_VAR(0x125),
GB_Unused_PRA_0B = EVT_SAVE_VAR(0x126),
GB_Unused_PRA_0C = EVT_SAVE_VAR(0x127),
GB_Unused_PRA_0D = EVT_SAVE_VAR(0x128),
GB_KPA_WaterLevel = EVT_SAVE_VAR(0x129),
GB_KPA81_BowserDoorState = EVT_SAVE_VAR(0x12A), ///< 0/1/2
GB_KPA82_BowserDoorState = EVT_SAVE_VAR(0x12B), ///< 0/1
GB_KPA83_BowserDoorState = EVT_SAVE_VAR(0x12C), ///< 0/1
GB_KPA111_StatuePosition = EVT_SAVE_VAR(0x12D),
GB_KPA113_StatuePosition = EVT_SAVE_VAR(0x12E),
GB_KPA115_StatuePosition = EVT_SAVE_VAR(0x12F),
GB_KPA04_StatuePosition = EVT_SAVE_VAR(0x130),
GB_Unused_KPA_08 = EVT_SAVE_VAR(0x131),
GB_Unused_KPA_09 = EVT_SAVE_VAR(0x132),
GB_Unused_KPA_0A = EVT_SAVE_VAR(0x133),
GB_Unused_KPA_0B = EVT_SAVE_VAR(0x134),
GB_Unused_KPA_0C = EVT_SAVE_VAR(0x135),
GB_Unused_KPA_0D = EVT_SAVE_VAR(0x136),
GB_Unused_KPA_0E = EVT_SAVE_VAR(0x137),
GB_Unused_KPA_0F = EVT_SAVE_VAR(0x138),
GB_Unused_KPA_10 = EVT_SAVE_VAR(0x139),
GB_Unused_KPA_11 = EVT_SAVE_VAR(0x13A),
GB_Unused_END_00 = EVT_SAVE_VAR(0x13B),
GB_Unused_END_01 = EVT_SAVE_VAR(0x13C),
GB_Unused_END_02 = EVT_SAVE_VAR(0x13D),
GB_Unused_END_03 = EVT_SAVE_VAR(0x13E),
GB_Unused_END_04 = EVT_SAVE_VAR(0x13F),
GB_Unused_END_05 = EVT_SAVE_VAR(0x140),
GB_Unused_END_06 = EVT_SAVE_VAR(0x141),
GB_Unused_END_07 = EVT_SAVE_VAR(0x142),
GB_Unused_END_08 = EVT_SAVE_VAR(0x143),
GB_Unused_END_09 = EVT_SAVE_VAR(0x144),
GB_Unused_END_0A = EVT_SAVE_VAR(0x145),
GB_Unused_END_0B = EVT_SAVE_VAR(0x146),
GB_Unused_END_0C = EVT_SAVE_VAR(0x147),
GB_Unused_END_0D = EVT_SAVE_VAR(0x148),
GB_Unused_END_0E = EVT_SAVE_VAR(0x149),
GB_Unused_END_0F = EVT_SAVE_VAR(0x14A),
GB_Unused_END_10 = EVT_SAVE_VAR(0x14B),
GB_Unused_END_11 = EVT_SAVE_VAR(0x14C),
GB_Unused_END_12 = EVT_SAVE_VAR(0x14D),
GB_Unused_END_13 = EVT_SAVE_VAR(0x14E),
GB_Unused_END_14 = EVT_SAVE_VAR(0x14F),
GB_Unused_OSR_00 = EVT_SAVE_VAR(0x150),
GB_Unused_BAT_00 = EVT_SAVE_VAR(0x151),
GB_Unused_BAT_01 = EVT_SAVE_VAR(0x152),
GB_Unused_BAT_02 = EVT_SAVE_VAR(0x153),
GB_Unused_BAT_03 = EVT_SAVE_VAR(0x154),
GB_Unused_BAT_04 = EVT_SAVE_VAR(0x155),
GB_Unused_BAT_05 = EVT_SAVE_VAR(0x156),
GB_Unused_BAT_06 = EVT_SAVE_VAR(0x157),
GB_Unused_BAT_07 = EVT_SAVE_VAR(0x158),
GB_Unused_BAT_08 = EVT_SAVE_VAR(0x159),
GB_KootFavor_State = EVT_SAVE_VAR(0x15A), ///< 0 = none, 1 = rejected, 2 = accepted
GB_KootFavor_Completed = EVT_SAVE_VAR(0x15B),
GB_KootFavor_Current = EVT_SAVE_VAR(0x15C), ///< 0 if none active
GB_MAC02_CurrentBulletin = EVT_SAVE_VAR(0x15D),
GB_ChuckQuizmo_Town = EVT_SAVE_VAR(0x15E), ///< 0-6, doesnt correspond to areaID
GB_ChuckQuizmo_Map = EVT_SAVE_VAR(0x15F), ///< doesnt correspond to mapID
GB_CompletedQuizzes = EVT_SAVE_VAR(0x160),
GB_HOS06_Merlow_PurchaseCount = EVT_SAVE_VAR(0x161),
GB_TradingEvent_Count = EVT_SAVE_VAR(0x162),
GB_Unused_NPC_09 = EVT_SAVE_VAR(0x163),
GB_Unused_NPC_0A = EVT_SAVE_VAR(0x164),
GB_Unused_NPC_0B = EVT_SAVE_VAR(0x165),
GB_Unused_NPC_0C = EVT_SAVE_VAR(0x166),
GB_Unused_NPC_0D = EVT_SAVE_VAR(0x167),
GB_Unused_NPC_0E = EVT_SAVE_VAR(0x168),
GB_Unused_NPC_0F = EVT_SAVE_VAR(0x169),
GB_Unused_NPC_10 = EVT_SAVE_VAR(0x16A),
GB_Unused_NPC_11 = EVT_SAVE_VAR(0x16B),
GB_Unused_NPC_12 = EVT_SAVE_VAR(0x16C),
GB_Tattles_00 = EVT_SAVE_VAR(0x16D),
GB_Tattles_01 = EVT_SAVE_VAR(0x16E),
GB_Tattles_02 = EVT_SAVE_VAR(0x16F),
GB_Tattles_03 = EVT_SAVE_VAR(0x170),
GB_Tattles_04 = EVT_SAVE_VAR(0x171),
GB_Tattles_05 = EVT_SAVE_VAR(0x172),
GB_Tattles_06 = EVT_SAVE_VAR(0x173),
GB_Tattles_07 = EVT_SAVE_VAR(0x174),
GB_Tattles_08 = EVT_SAVE_VAR(0x175),
GB_Tattles_09 = EVT_SAVE_VAR(0x176),
GB_Tattles_0A = EVT_SAVE_VAR(0x177),
GB_Tattles_0B = EVT_SAVE_VAR(0x178),
GB_Tattles_0C = EVT_SAVE_VAR(0x179),
GB_Tattles_0D = EVT_SAVE_VAR(0x17A),
GB_Tattles_0E = EVT_SAVE_VAR(0x17B),
GB_Tattles_0F = EVT_SAVE_VAR(0x17C),
GB_Tattles_10 = EVT_SAVE_VAR(0x17D),
GB_Tattles_11 = EVT_SAVE_VAR(0x17E),
GB_Tattles_12 = EVT_SAVE_VAR(0x17F),
GB_Tattles_13 = EVT_SAVE_VAR(0x180),
GB_Tattles_14 = EVT_SAVE_VAR(0x181),
GB_Tattles_15 = EVT_SAVE_VAR(0x182),
GB_Tattles_16 = EVT_SAVE_VAR(0x183),
GB_Tattles_17 = EVT_SAVE_VAR(0x184),
GB_Tattles_18 = EVT_SAVE_VAR(0x185),
GB_Tattles_19 = EVT_SAVE_VAR(0x186),
GB_Tattles_1A = EVT_SAVE_VAR(0x187),
GB_Tattles_1B = EVT_SAVE_VAR(0x188),
GB_Tattles_1C = EVT_SAVE_VAR(0x189),
GB_FinalBowserHP = EVT_SAVE_VAR(0x18A), ///< Used by final bowser to remember HP between first and second phase
GB_Unused_BTL_1E = EVT_SAVE_VAR(0x18B),
GB_Unused_BTL_1F = EVT_SAVE_VAR(0x18C),
GB_Unused_BTL_20 = EVT_SAVE_VAR(0x18D),
GB_Unused_BTL_21 = EVT_SAVE_VAR(0x18E),
GB_Unused_BTL_22 = EVT_SAVE_VAR(0x18F),
GB_Unused_BTL_23 = EVT_SAVE_VAR(0x190),
GB_Unused_BTL_24 = EVT_SAVE_VAR(0x191),
GB_Unused_BTL_25 = EVT_SAVE_VAR(0x192),
GB_Unused_BTL_26 = EVT_SAVE_VAR(0x193),
GB_Unused_BTL_27 = EVT_SAVE_VAR(0x194),
GB_Unused_FBTL_00 = EVT_SAVE_VAR(0x195),
GB_Unused_FBTL_01 = EVT_SAVE_VAR(0x196),
GB_Unused_FBTL_02 = EVT_SAVE_VAR(0x197),
GB_Unused_FBTL_03 = EVT_SAVE_VAR(0x198),
GB_Unused_FBTL_04 = EVT_SAVE_VAR(0x199),
GB_Unused_FBTL_05 = EVT_SAVE_VAR(0x19A),
GB_Unused_FBTL_06 = EVT_SAVE_VAR(0x19B),
GB_Unused_FBTL_07 = EVT_SAVE_VAR(0x19C),
GB_Unused_FBTL_08 = EVT_SAVE_VAR(0x19D),
GB_Unused_FBTL_09 = EVT_SAVE_VAR(0x19E),
GB_Unused_DOKAN_00 = EVT_SAVE_VAR(0x19F),
GB_Unused_DOKAN_01 = EVT_SAVE_VAR(0x1A0),
GB_Unused_DOKAN_02 = EVT_SAVE_VAR(0x1A1),
GB_Unused_DOKAN_03 = EVT_SAVE_VAR(0x1A2),
GB_Unused_DOKAN_04 = EVT_SAVE_VAR(0x1A3),
GB_Unused_DOKAN_05 = EVT_SAVE_VAR(0x1A4),
GB_Unused_DOKAN_06 = EVT_SAVE_VAR(0x1A5),
GB_Unused_DOKAN_07 = EVT_SAVE_VAR(0x1A6),
GB_Unused_DOKAN_08 = EVT_SAVE_VAR(0x1A7),
GB_Unused_DOKAN_09 = EVT_SAVE_VAR(0x1A8),
GB_WorldLocation = EVT_SAVE_VAR(0x1A9),
GB_Unused_MAP_01 = EVT_SAVE_VAR(0x1AA),
GB_Unused_MAP_02 = EVT_SAVE_VAR(0x1AB),
GB_Unused_MAP_03 = EVT_SAVE_VAR(0x1AC),
GB_Unused_MAP_04 = EVT_SAVE_VAR(0x1AD),
GB_Unused_MAP_05 = EVT_SAVE_VAR(0x1AE),
GB_Unused_MAP_06 = EVT_SAVE_VAR(0x1AF),
GB_Unused_MAP_07 = EVT_SAVE_VAR(0x1B0),
GB_Unused_MAP_08 = EVT_SAVE_VAR(0x1B1),
GB_Unused_MAP_09 = EVT_SAVE_VAR(0x1B2),
GB_Unused_MAP_0A = EVT_SAVE_VAR(0x1B3),
GB_Unused_1B4 = EVT_SAVE_VAR(0x1B4),
GB_Unused_1B5 = EVT_SAVE_VAR(0x1B5),
GB_Unused_1B6 = EVT_SAVE_VAR(0x1B6),
GB_Unused_1B7 = EVT_SAVE_VAR(0x1B7),
GB_Unused_1B8 = EVT_SAVE_VAR(0x1B8),
GB_Unused_1B9 = EVT_SAVE_VAR(0x1B9),
GB_Unused_1BA = EVT_SAVE_VAR(0x1BA),
GB_Unused_1BB = EVT_SAVE_VAR(0x1BB),
GB_Unused_1BC = EVT_SAVE_VAR(0x1BC),
GB_Unused_1BD = EVT_SAVE_VAR(0x1BD),
GB_Unused_1BE = EVT_SAVE_VAR(0x1BE),
GB_Unused_1BF = EVT_SAVE_VAR(0x1BF),
GB_Unused_1C0 = EVT_SAVE_VAR(0x1C0),
GB_Unused_1C1 = EVT_SAVE_VAR(0x1C1),
GB_Unused_1C2 = EVT_SAVE_VAR(0x1C2),
GB_Unused_1C3 = EVT_SAVE_VAR(0x1C3),
GB_Unused_1C4 = EVT_SAVE_VAR(0x1C4),
GB_Unused_1C5 = EVT_SAVE_VAR(0x1C5),
GB_Unused_1C6 = EVT_SAVE_VAR(0x1C6),
GB_Unused_1C7 = EVT_SAVE_VAR(0x1C7),
GB_Unused_1C8 = EVT_SAVE_VAR(0x1C8),
GB_Unused_1C9 = EVT_SAVE_VAR(0x1C9),
GB_Unused_1CA = EVT_SAVE_VAR(0x1CA),
GB_Unused_1CB = EVT_SAVE_VAR(0x1CB),
GB_Unused_1CC = EVT_SAVE_VAR(0x1CC),
GB_Unused_1CD = EVT_SAVE_VAR(0x1CD),
GB_Unused_1CE = EVT_SAVE_VAR(0x1CE),
GB_Unused_1CF = EVT_SAVE_VAR(0x1CF),
GB_Unused_1D0 = EVT_SAVE_VAR(0x1D0),
GB_Unused_1D1 = EVT_SAVE_VAR(0x1D1),
GB_Unused_1D2 = EVT_SAVE_VAR(0x1D2),
GB_Unused_1D3 = EVT_SAVE_VAR(0x1D3),
GB_Unused_1D4 = EVT_SAVE_VAR(0x1D4),
GB_Unused_1D5 = EVT_SAVE_VAR(0x1D5),
GB_Unused_1D6 = EVT_SAVE_VAR(0x1D6),
GB_Unused_1D7 = EVT_SAVE_VAR(0x1D7),
GB_Unused_1D8 = EVT_SAVE_VAR(0x1D8),
GB_Unused_1D9 = EVT_SAVE_VAR(0x1D9),
GB_Unused_1DA = EVT_SAVE_VAR(0x1DA),
GB_Unused_1DB = EVT_SAVE_VAR(0x1DB),
GB_Unused_1DC = EVT_SAVE_VAR(0x1DC),
GB_Unused_1DD = EVT_SAVE_VAR(0x1DD),
GB_Unused_1DE = EVT_SAVE_VAR(0x1DE),
GB_Unused_1DF = EVT_SAVE_VAR(0x1DF),
GB_Unused_1E0 = EVT_SAVE_VAR(0x1E0),
GB_Unused_1E1 = EVT_SAVE_VAR(0x1E1),
GB_Unused_1E2 = EVT_SAVE_VAR(0x1E2),
GB_Unused_1E3 = EVT_SAVE_VAR(0x1E3),
GB_Unused_1E4 = EVT_SAVE_VAR(0x1E4),
GB_Unused_1E5 = EVT_SAVE_VAR(0x1E5),
GB_Unused_1E6 = EVT_SAVE_VAR(0x1E6),
GB_Unused_1E7 = EVT_SAVE_VAR(0x1E7),
GB_Unused_1E8 = EVT_SAVE_VAR(0x1E8),
GB_Unused_1E9 = EVT_SAVE_VAR(0x1E9),
GB_Unused_1EA = EVT_SAVE_VAR(0x1EA),
GB_Unused_1EB = EVT_SAVE_VAR(0x1EB),
GB_Unused_1EC = EVT_SAVE_VAR(0x1EC),
GB_Unused_1ED = EVT_SAVE_VAR(0x1ED),
GB_Unused_1EE = EVT_SAVE_VAR(0x1EE),
GB_Unused_1EF = EVT_SAVE_VAR(0x1EF),
GB_Unused_1F0 = EVT_SAVE_VAR(0x1F0),
GB_Unused_1F1 = EVT_SAVE_VAR(0x1F1),
GB_Unused_1F2 = EVT_SAVE_VAR(0x1F2),
GB_Unused_1F3 = EVT_SAVE_VAR(0x1F3),
GB_Unused_1F4 = EVT_SAVE_VAR(0x1F4),
GB_Unused_1F5 = EVT_SAVE_VAR(0x1F5),
GB_Unused_1F6 = EVT_SAVE_VAR(0x1F6),
GB_Unused_1F7 = EVT_SAVE_VAR(0x1F7),
GB_Unused_1F8 = EVT_SAVE_VAR(0x1F8),
GB_Unused_1F9 = EVT_SAVE_VAR(0x1F9),
GB_Unused_1FA = EVT_SAVE_VAR(0x1FA),
GB_Unused_1FB = EVT_SAVE_VAR(0x1FB),
GB_Unused_1FC = EVT_SAVE_VAR(0x1FC),
GB_Unused_1FD = EVT_SAVE_VAR(0x1FD),
GB_Unused_1FE = EVT_SAVE_VAR(0x1FE),
GB_Unused_1FF = EVT_SAVE_VAR(0x1FF),
};

2052
include/saved_flag_names.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -196,6 +196,8 @@
/// Blocks for the given number of frames.
#define EVT_WAIT_FRAMES(NUM_FRAMES) EVT_CMD(EVT_OP_WAIT_FRAMES, NUM_FRAMES),
#define EVT_WAIT(NUM_FRAMES) EVT_CMD(EVT_OP_WAIT_FRAMES, NUM_FRAMES),
/// Blocks for the given number of seconds.
#define EVT_WAIT_SECS(NUM_SECONDS) EVT_CMD(EVT_OP_WAIT_SECS, NUM_SECONDS),

View File

@ -203,14 +203,11 @@ extern f32 D_8010C990;
extern s32 D_8010C978;
extern Vec3s btl_actorHomePositions[];
extern SaveData gCurrentSaveFile;
extern u32* gMapFlags;
extern s32* gMapVars;
extern f32 D_80286540;
extern u32 gWorldMapVars[MAX_MAPVARS];
extern u32 gBattleMapVars[MAX_MAPVARS];

View File

@ -178,12 +178,12 @@ void func_80263300(void) {
s16 itemID = playerData->invItems[i];
if (itemID != 0) {
ItemData* ItemData = &gItemTable[itemID];
ItemData* itemData = &gItemTable[itemID];
if (ItemData->typeFlags & 2) {
if (itemData->typeFlags & 2) {
battleStatus->moveCategory = 2;
battleStatus->selectedItemID = playerData->invItems[i];
battleStatus->currentTargetListFlags = ItemData->targetFlags;
battleStatus->currentTargetListFlags = itemData->targetFlags;
player_create_target_list(player);
if (player->targetListLength != 0) {

View File

@ -824,7 +824,7 @@ s32 get_overriding_player_anim(s32 anim) {
}
} else if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_USING_PEACH_PHYSICS) {
if (playerStatus->unk_C4 && (anim == ANIM_C0000 || anim == ANIM_C0001 || anim == ANIM_C0002)) {
anim = ANIM_D0000;
anim = ANIM_Peach_D0000;
}
}

View File

@ -9,7 +9,7 @@ extern f32 screen_overlay_backZoom;
extern s32 D_80156910;
extern ScreenOverlay D_8015C790[2];
s32 D_8014C6F0 = 2;
ScreenTransition D_8014C6F0 = TRANSITION_2;
// padding?
s32 D_8014C6F4[] = { 0x00000000, 0x00000000, 0x00000000, };
@ -488,8 +488,8 @@ void render_screen_overlay_backUI(void) {
}
}
void set_map_transition_effect(s32 arg0) {
D_8014C6F0 = arg0;
void set_map_transition_effect(ScreenTransition transition) {
D_8014C6F0 = transition;
}
s32 update_exit_map_screen_overlay(s16* progress) {
@ -502,10 +502,10 @@ s32 update_exit_map_screen_overlay(s16* progress) {
s32 amt = 20;
switch (D_8014C6F0) {
case 1:
case TRANSITION_1:
type = 0;
break;
case 3:
case TRANSITION_3:
r = g = b = 208;
type = 1;
amt = 10;
@ -513,14 +513,14 @@ s32 update_exit_map_screen_overlay(s16* progress) {
gGameStatusPtr->nextDemoScene = 18;
}
break;
case 6:
case TRANSITION_6:
r = g = b = 208;
type = 1;
break;
case 0:
case TRANSITION_0:
type = 1;
break;
case 7:
case TRANSITION_7:
if (gGameStatusPtr->demoState == 2) {
gGameStatusPtr->nextDemoScene = 18;
}
@ -528,53 +528,53 @@ s32 update_exit_map_screen_overlay(s16* progress) {
type = 1;
amt = 7;
break;
case 11:
case 15:
case TRANSITION_11:
case TRANSITION_15:
r = g = b = 208;
type = 1;
amt = 7;
break;
case 4:
case 5:
case TRANSITION_4:
case TRANSITION_5:
type = 1;
amt = 7;
break;
case 14:
case TRANSITION_14:
r = g = b = 208;
type = 1;
amt = 50;
break;
case 2:
case TRANSITION_2:
type = 1;
amt = 50;
break;
case 8:
case TRANSITION_8:
set_screen_overlay_alpha(0, 0.0f);
type = 4;
break;
case 9:
case TRANSITION_9:
r = g = b = 208;
set_screen_overlay_alpha(0, 0.0f);
type = 4;
amt = 7;
break;
case 10:
case TRANSITION_10:
set_screen_overlay_alpha(0, 0.0f);
type = 4;
amt = 7;
break;
case 12:
case TRANSITION_12:
set_screen_overlay_alpha(0, 160.0f);
r = g = b = 208;
type = 5;
amt = 7;
break;
case 13:
case TRANSITION_13:
set_screen_overlay_alpha(0, 0.0f);
type = 5;
amt = 7;
break;
case 16:
case TRANSITION_16:
set_screen_overlay_center(0, 0, 15, 28);
set_screen_overlay_center(0, 1, 305, 156);
set_screen_overlay_params_front(12, 255.0f);
@ -582,7 +582,7 @@ s32 update_exit_map_screen_overlay(s16* progress) {
return 1;
}
if (D_8014C6F0 == 5) {
if (D_8014C6F0 == TRANSITION_5) {
overlayColor = ((255 - *progress) * 208) / 255;
set_screen_overlay_color(0, overlayColor, overlayColor, overlayColor);
set_screen_overlay_params_front(type, 255.0f);
@ -621,42 +621,42 @@ u8 update_enter_map_screen_overlay(s16* progress) {
u8 ret = FALSE;
switch (D_8014C6F0) {
case 3:
case TRANSITION_3:
set_screen_overlay_color(0, 208, 208, 208);
amt = 50;
break;
case 2:
case TRANSITION_2:
frontType = 1;
amt = 50;
break;
case 4:
case 5:
case 7:
case 9:
case 10:
case TRANSITION_4:
case TRANSITION_5:
case TRANSITION_7:
case TRANSITION_9:
case TRANSITION_10:
frontType = 1;
amt = 7;
break;
case 0:
case 1:
case 6:
case 13:
case 14:
case TRANSITION_0:
case TRANSITION_1:
case TRANSITION_6:
case TRANSITION_13:
case TRANSITION_14:
frontType = 1;
break;
case 8:
case 15:
case TRANSITION_8:
case TRANSITION_15:
frontType = 4;
break;
case 11:
case TRANSITION_11:
frontType = 5;
amt = 7;
break;
case 12:
case TRANSITION_12:
frontType = 4;
amt = 7;
break;
case 16:
case TRANSITION_16:
set_screen_overlay_center(0, 0, 15, 28);
set_screen_overlay_center(0, 1, 305, 156);
set_screen_overlay_params_front(12, *progress);
@ -664,7 +664,7 @@ u8 update_enter_map_screen_overlay(s16* progress) {
break;
}
if (D_8014C6F0 != 0x10) {
if (D_8014C6F0 != TRANSITION_16) {
set_screen_overlay_params_front(frontType, *progress);
}

View File

@ -11,9 +11,9 @@ extern IMG_BIN D_802EF0D0;
s32 D_8014C280[] = { 0x028001E0, 0x01FF0000, 0x028001E0, 0x01FF0000, };
s32 MessagePlural = 0x53FD0000;
u8 MessagePlural[] = { MSG_CHAR_LOWER_S, MSG_CHAR_READ_END };
s16 MessageSingular = 0xF0FD;
u8 MessageSingular[] = { MSG_CHAR_READ_ENDL, MSG_CHAR_READ_END };
s16 gNextMessageBuffer = 0;

View File

@ -1,4 +1,25 @@
#include "kzn_06.h"
// push block gravity
#ifdef NON_NATCHING
extern f32 D_80241120_C6DA40[27];
s32 func_80240310_C6CC30(Entity* block, Evt* source) {
block->position.y = source->varTable[0] - (D_80241120_C6DA40[source->functionTemp[0]] * 25.0f);
if (source->functionTemp[0] == 0) {
sfx_play_sound_at_position(SOUND_1DA, 0, block->position.x, block->position.y, block->position.z);
}
if (source->functionTemp[0] >= 5) {
if (source->functionTemp[0] & 1) {
fx_smoke_burst(1, block->position.x, block->position.y, block->position.z, 1.0f, 20);
}
}
source->functionTemp[0]++;
if (source->functionTemp[0] == 0x1C)
return 1;
else
return 0;
}
#else
INCLUDE_ASM(s32, "world/area_kzn/kzn_06/C6CC30", func_80240310_C6CC30);
#endif

1326
src/world/entrances.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,16 +2,8 @@
#include "hud_element.h"
#include "model.h"
extern s32 MessagePlural;
extern s32 MessageSingular;
extern MessagePrintState* D_80286528;
extern MessagePrintState* D_80286538;
extern s32 D_80286520;
extern s32 D_80286524;
extern s32 D_80286530;
extern s32 D_80286534;
extern Evt* D_8028652C;
extern u8 MessagePlural[];
extern u8 MessageSingular[];
extern HudScript* HES_Item_Coin;
ApiStatus func_802803C8(Evt* script, s32 isInitialCall);
@ -20,54 +12,54 @@ ApiStatus ShowShopPurchaseDialog(Evt* script, s32 isInitialCall);
ApiStatus ShowShopOwnerDialog(Evt* script, s32 isInitialCall);
EvtScript ShopBeginSpeech = {
EVT_CALL(SpeakToPlayer, LW(1), LW(2), LW(3), 0, LW(0))
EVT_CALL(SpeakToPlayer, VAR1, VAR2, VAR3, 0, VAR0)
EVT_RETURN
EVT_END
};
EvtScript ShopContinueSpeech = {
EVT_CALL(ContinueSpeech, LW(1), LW(2), LW(3), 0, LW(0))
EVT_CALL(ContinueSpeech, VAR1, VAR2, VAR3, 0, VAR0)
EVT_RETURN
EVT_END
};
EvtScript ShopResetSpeech = {
EVT_CALL(EndSpeech, LW(1), LW(2), LW(3), 0)
EVT_CALL(SpeakToPlayer, LW(1), LW(2), LW(3), 0, LW(0))
EVT_CALL(EndSpeech, VAR1, VAR2, VAR3, 0)
EVT_CALL(SpeakToPlayer, VAR1, VAR2, VAR3, 0, VAR0)
EVT_RETURN
EVT_END
};
EvtScript ShopEndSpeech = {
EVT_CALL(EndSpeech, LW(0), LW(1), LW(2), 0)
EVT_CALL(EndSpeech, VAR0, VAR1, VAR2, 0)
EVT_RETURN
EVT_END
};
EvtScript D_80283F58_7E4DD8 = {
EVT_CALL(GetCurrentPartner, LW(1))
EVT_IF_EQ(LW(1), 0)
EVT_CALL(GetCurrentPartner, VAR1)
EVT_IF_EQ(VAR1, 0)
EVT_GOTO(10)
EVT_END_IF
EVT_IF_EQ(LW(1), 2)
EVT_IF_EQ(VAR1, 2)
EVT_GOTO(10)
EVT_END_IF
EVT_IF_EQ(LW(1), 3)
EVT_IF_EQ(VAR1, 3)
EVT_GOTO(10)
EVT_END_IF
EVT_RETURN
EVT_LABEL(10)
EVT_CALL(func_802803C8)
EVT_IF_EQ(LW(2), 0)
EVT_IF_EQ(VAR2, 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(func_80280410, LW(0))
EVT_CALL(func_80280410, VAR0)
EVT_RETURN
EVT_END
};
EvtScript BadgeShopInteract = {
EVT_CALL(ShowShopPurchaseDialog, LW(0))
EVT_CALL(ShowShopPurchaseDialog, VAR0)
EVT_RETURN
EVT_END
};
@ -95,7 +87,7 @@ s32 shop_owner_buy_dialog(s32 messageIndex, s32 itemName, s32 coinCost, s32 bpCo
Shop* shop = gGameStatusPtr->mapShop;
s32 shopMsgID = shop->owner->shopMsgIDs[messageIndex];
Evt* script;
s32 phi_a0;
u8* suffix;
set_message_msg(itemName, 0);
set_message_value(coinCost, 1);
@ -104,11 +96,11 @@ s32 shop_owner_buy_dialog(s32 messageIndex, s32 itemName, s32 coinCost, s32 bpCo
set_message_value(bpCost, 2);
} else {
if (coinCost == 1) {
phi_a0 = &MessageSingular;
suffix = MessageSingular;
} else {
phi_a0 = &MessagePlural;
suffix = MessagePlural;
}
set_message_msg(phi_a0, 2);
set_message_msg((s32) suffix, 2);
}
script = start_script(&ShopBeginSpeech, EVT_PRIORITY_1, 0);
@ -136,18 +128,18 @@ s32 shop_owner_continue_speech(s32 messageIndex) {
s32 shop_owner_continue_speech_with_quantity(s32 messageIndex, s32 amount) {
Shop* shop = gGameStatusPtr->mapShop;
s32 shopMsgID = shop->owner->shopMsgIDs[messageIndex];
s32 phi_a0;
u8* suffixMsg;
Evt* script;
set_message_value(amount, 0);
if (amount == 1) {
phi_a0 = &MessageSingular;
suffixMsg = MessageSingular;
} else {
phi_a0 = &MessagePlural;
suffixMsg = MessagePlural;
}
set_message_msg(phi_a0, 1);
set_message_msg((s32) suffixMsg, 1);
script = start_script(&ShopContinueSpeech, EVT_PRIORITY_1, 0);
script->varTable[0] = shopMsgID;
@ -252,6 +244,11 @@ ApiStatus ShowShopPurchaseDialog(Evt* script, s32 isInitialCall) {
s32 bpCost;
s32 args;
static MessagePrintState* D_80286528;
static Evt* D_8028652C;
static s32 D_80286530;
static s32 D_80286534;
shop->flags &= ~SHOP_FLAGS_1;
func_800E9900();
if (isInitialCall) {
@ -273,7 +270,7 @@ ApiStatus ShowShopPurchaseDialog(Evt* script, s32 isInitialCall) {
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 100;
script->functionTemp[2] = 0;
D_80286528 = msg_get_printer_for_msg(0x1E0001, &script->functionTemp[2]);
D_80286528 = msg_get_printer_for_msg(MESSAGE_ID(0x1E, 0x01), &script->functionTemp[2]);
}
break;
case 100:
@ -470,161 +467,187 @@ ApiStatus ShowShopOwnerDialog(Evt* script, s32 isInitialCall) {
GameStatus* gameStatus = gGameStatusPtr;
PlayerData* playerData = &gPlayerData;
Shop* shop = gameStatus->mapShop;
ItemData* item;
s32 temp_v1_2;
static MessagePrintState* D_80286538;
enum {
DIALOG_STATE_0 = 0,
DIALOG_STATE_10 = 10,
DIALOG_STATE_12 = 12,
DIALOG_STATE_2 = 2,
DIALOG_STATE_21 = 21,
DIALOG_STATE_201 = 201,
DIALOG_STATE_3 = 3,
DIALOG_STATE_31 = 31,
DIALOG_STATE_32 = 32,
DIALOG_STATE_4 = 4,
DIALOG_STATE_41 = 41,
DIALOG_STATE_42 = 42,
DIALOG_STATE_9 = 9,
DIALOG_STATE_5 = 5,
DIALOG_STATE_51 = 51,
DIALOG_STATE_52 = 52,
DIALOG_STATE_53 = 53,
DIALOG_STATE_501 = 501,
DIALOG_STATE_7 = 7,
DIALOG_STATE_71 = 71,
DIALOG_STATE_72 = 72,
DIALOG_STATE_73 = 73,
DIALOG_STATE_701 = 701,
};
if (isInitialCall) {
script->functionTemp[1] = shop_owner_begin_speech(4);
script->functionTemp[0] = 4;
script->functionTemp[0] = DIALOG_STATE_4;
}
switch (script->functionTemp[0]) {
case 4:
case DIALOG_STATE_4:
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 41;
script->functionTemp[0] = DIALOG_STATE_41;
script->functionTemp[2] = 0;
D_80286538 = msg_get_printer_for_msg(0x1E0003, &script->functionTemp[2]);
D_80286538 = msg_get_printer_for_msg(MESSAGE_ID(0x1E, 0x3), &script->functionTemp[2]);
}
break;
case 41:
case DIALOG_STATE_41:
if (script->functionTemp[2] == 1) {
switch (D_80286538->currentOption) {
case 0:
script->functionTemp[1] = shop_owner_continue_speech(5);
script->functionTemp[0] = 0;
script->functionTemp[0] = DIALOG_STATE_0;
break;
case 1:
if (get_item_count() == 0) {
script->functionTemp[1] = shop_owner_continue_speech(6);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
} else {
script->functionTemp[1] = shop_owner_continue_speech(7);
script->functionTemp[0] = 201;
script->functionTemp[0] = DIALOG_STATE_201;
}
break;
case 2:
if (get_item_count() == 0) {
script->functionTemp[1] = shop_owner_continue_speech(12);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
break;
}
if (get_stored_empty_count() == 0) {
script->functionTemp[1] = shop_owner_continue_speech(13);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
break;
}
script->functionTemp[1] = shop_owner_continue_speech_with_quantity(14, get_stored_empty_count());
script->functionTemp[0] = 501;
script->functionTemp[0] = DIALOG_STATE_501;
break;
case 3:
if (get_stored_count() == 0) {
script->functionTemp[1] = shop_owner_continue_speech(17);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
break;
}
if (get_item_empty_count() == 0) {
script->functionTemp[1] = shop_owner_continue_speech(18);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
break;
}
script->functionTemp[1] = shop_owner_continue_speech(19);
script->functionTemp[0] = 701;
script->functionTemp[0] = DIALOG_STATE_701;
break;
default:
script->functionTemp[1] = shop_owner_end_speech();
script->functionTemp[0] = 42;
script->functionTemp[0] = DIALOG_STATE_42;
break;
}
}
break;
case 201:
case DIALOG_STATE_201:
if (!does_script_exist(script->functionTemp[1])) {
shop_open_item_select_popup(0);
script->functionTemp[0] = 2;
}
break;
case 2:
case DIALOG_STATE_2:
if (shop_update_item_select_popup(&shop->selectedStoreItemSlot) == 1) {
script->functionTemp[0] = 21;
script->functionTemp[1] = 15;
}
break;
case 21:
case DIALOG_STATE_21:
if (script->functionTemp[1] <= 0) {
shop_close_item_select_popup();
if (shop->selectedStoreItemSlot >= 0) {
item = &gItemTable[playerData->invItems[shop->selectedStoreItemSlot]];
script->functionTemp[1] = shop_owner_buy_dialog(8, item->nameMsg, shop_get_sell_price(playerData->invItems[shop->selectedStoreItemSlot]), -1);
ItemData* itemData = &gItemTable[playerData->invItems[shop->selectedStoreItemSlot]];
script->functionTemp[1] = shop_owner_buy_dialog(8, itemData->nameMsg, shop_get_sell_price(playerData->invItems[shop->selectedStoreItemSlot]), -1);
show_coin_counter();
script->functionTemp[0] = 3;
script->functionTemp[0] = DIALOG_STATE_3;
} else {
script->functionTemp[1] = shop_owner_begin_speech(22);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
}
} else {
script->functionTemp[1]--;
}
break;
case 3:
case DIALOG_STATE_3:
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 31;
script->functionTemp[0] = DIALOG_STATE_31;
script->functionTemp[2] = 0;
D_80286538 = msg_get_printer_for_msg(0x1E0002, &script->functionTemp[2]);
}
break;
case 31:
case DIALOG_STATE_31:
if (script->functionTemp[2] == 1) {
if (D_80286538->currentOption == 0) {
add_coins(shop_get_sell_price(playerData->invItems[shop->selectedStoreItemSlot]));
playerData->invItems[shop->selectedStoreItemSlot] = 0;
if (get_item_count() == 0) {
script->functionTemp[1] = shop_owner_reset_speech(11);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
hide_coin_counter();
} else {
script->functionTemp[1] = shop_owner_reset_speech(10);
script->functionTemp[0] = 32;
script->functionTemp[0] = DIALOG_STATE_32;
}
} else {
script->functionTemp[1] = shop_owner_reset_speech(9);
script->functionTemp[0] = 32;
script->functionTemp[0] = DIALOG_STATE_32;
hide_coin_counter();
}
}
break;
case 32:
case DIALOG_STATE_32:
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 12;
script->functionTemp[0] = DIALOG_STATE_12;
script->functionTemp[2] = 0;
D_80286538 = msg_get_printer_for_msg(0x1E0004, &script->functionTemp[2]);
}
break;
case 12:
case DIALOG_STATE_12:
if (script->functionTemp[2] == 1) {
if (D_80286538->currentOption == 0) {
script->functionTemp[1] = shop_owner_end_speech();
script->functionTemp[0] = 201;
script->functionTemp[0] = DIALOG_STATE_201;
hide_coin_counter_immediately();
} else {
hide_coin_counter_immediately();
script->functionTemp[1] = shop_owner_reset_speech(22);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
}
}
break;
case 501:
case DIALOG_STATE_501:
if (does_script_exist(script->functionTemp[1]) == 0) {
shop_open_item_select_popup(1);
script->functionTemp[0] = 5;
script->functionTemp[0] = DIALOG_STATE_5;
}
break;
case 5:
case DIALOG_STATE_5:
if (shop_update_item_select_popup(&shop->selectedStoreItemSlot) == 1) {
script->functionTemp[0] = 51;
script->functionTemp[0] = DIALOG_STATE_51;
script->functionTemp[1] = 15;
}
break;
case 51:
case DIALOG_STATE_51:
if (script->functionTemp[1] <= 0) {
shop_close_item_select_popup();
if (shop->selectedStoreItemSlot >= 0) {
@ -634,50 +657,50 @@ ApiStatus ShowShopOwnerDialog(Evt* script, s32 isInitialCall) {
if ((get_item_count() == 0) || (get_stored_empty_count() == 0)) {
script->functionTemp[1] = shop_owner_begin_speech(15);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
} else {
script->functionTemp[1] = shop_owner_begin_speech(16);
script->functionTemp[0] = 52;
script->functionTemp[0] = DIALOG_STATE_52;
}
} else {
script->functionTemp[1] = shop_owner_begin_speech(22);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
}
} else {
script->functionTemp[1]--;
}
break;
case 52:
case DIALOG_STATE_52:
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 53;
script->functionTemp[0] = DIALOG_STATE_53;
script->functionTemp[2] = 0;
D_80286538 = msg_get_printer_for_msg(0x1E0005, &script->functionTemp[2]);
}
break;
case 53:
case DIALOG_STATE_53:
if (script->functionTemp[2] == 1) {
if (D_80286538->currentOption == 0) {
script->functionTemp[1] = shop_owner_end_speech();
script->functionTemp[0] = 501;
script->functionTemp[0] = DIALOG_STATE_501;
} else {
script->functionTemp[1] = shop_owner_reset_speech(22);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
}
}
break;
case 701:
case DIALOG_STATE_701:
if (!does_script_exist(script->functionTemp[1])) {
shop_open_item_select_popup(2);
script->functionTemp[0] = 7;
script->functionTemp[0] = DIALOG_STATE_7;
}
break;
case 7:
case DIALOG_STATE_7:
if (shop_update_item_select_popup(&shop->selectedStoreItemSlot) == 1) {
script->functionTemp[0] = 71;
script->functionTemp[0] = DIALOG_STATE_71;
script->functionTemp[1] = 15;
}
break;
case 71:
case DIALOG_STATE_71:
if (script->functionTemp[1] > 0) {
script->functionTemp[1]--;
} else {
@ -689,44 +712,44 @@ ApiStatus ShowShopOwnerDialog(Evt* script, s32 isInitialCall) {
if (get_item_empty_count() == 0 || get_stored_count() == 0) {
script->functionTemp[1] = shop_owner_begin_speech(20);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
} else {
script->functionTemp[1] = shop_owner_begin_speech(21);
script->functionTemp[0] = 72;
script->functionTemp[0] = DIALOG_STATE_72;
}
} else {
script->functionTemp[1] = shop_owner_begin_speech(22);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
}
}
break;
case 72:
case DIALOG_STATE_72:
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 73;
script->functionTemp[0] = DIALOG_STATE_73;
script->functionTemp[2] = 0;
D_80286538 = msg_get_printer_for_msg(0x1E0005, &script->functionTemp[2]);
}
break;
case 73:
case DIALOG_STATE_73:
if (script->functionTemp[2] == 1) {
if (D_80286538->currentOption == 0) {
script->functionTemp[1] = shop_owner_end_speech();
script->functionTemp[0] = 701;
script->functionTemp[0] = DIALOG_STATE_701;
} else {
script->functionTemp[1] = shop_owner_reset_speech(22);
script->functionTemp[0] = 9;
script->functionTemp[0] = DIALOG_STATE_9;
}
}
break;
case 0:
case 9:
case 42:
case DIALOG_STATE_0:
case DIALOG_STATE_9:
case DIALOG_STATE_42:
if (!does_script_exist(script->functionTemp[1])) {
script->functionTemp[0] = 0;
script->functionTemp[0] = 10;
script->functionTemp[0] = DIALOG_STATE_0;
script->functionTemp[0] = DIALOG_STATE_10;
}
break;
case 10:
case DIALOG_STATE_10:
if (shop->owner != NULL) {
if (shop->owner->onTalkEvt != 0) {
start_script(shop->owner->onTalkEvt, EVT_PRIORITY_1, 0);

View File

@ -1,31 +1,45 @@
#include "common.h"
typedef struct {
/* 0x00 */ s32 unk_00; // door state? 01 = using door
void set_current_item_entity_render_group(s32);
s32 get_current_item_entity_render_group(void);
void func_800EF414(s32, s32);
void get_flat_collider_normal(s32, f32*, f32*, f32*);
extern EvtScript D_802847D4_7E5654;
extern EvtScript D_80284F80_7E5E00;
enum DoorScriptType {
DOOR_SCRIPT_OPEN_DOOR = 0,
DOOR_SCRIPT_MOVE_WALLS = 1,
DOOR_SCRIPT_DROP_DOOR = 2,
DOOR_SCRIPT_TOGGLE_VIS = 3,
};
typedef enum DoorState {
DOOR_STATE_0 = 0,
} DoorState;
typedef struct AdvancedDoor {
/* 0x00 */ DoorState state;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s16 unk_08;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ f32 unk_0C; // x pos entry ?
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18; // rotation entry
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24; // x pos exit ?
/* 0x28 */ f32 unk_28; // rotation exit
/* 0x2C */ s32* unk_2C; // ptr to script
/* 0x30 */ s32* unk_30; // ptr to script
/* 0x34 */ s32* unk_34; // ptr to ??? (usually null?)
/* 0x38 */ s32* unk_38; // ptr to script
/* 0x3C */ s32 unk_3C; //flags (has to do with hiding certain objects)
/* 0x40 */ char unk_40[12];
/* 0x4C */ s32* unk_4C;
} DoorStuff;
/* 0x08 */ s16 newItemVisGroup;
/* 0x0A */ s16 prevItemVisGroup;
/* 0x0C */ Vec2XZf unk_0C;
/* 0x14 */ Vec2XZf unk_14;
/* 0x1C */ Vec2XZf unk_1C;
/* 0x24 */ Vec2XZf unk_24;
/* 0x2C */ EvtScript* scripts[4];
/* 0x3C */ s32 modelID;
/* 0x40 */ s32 bgColor[3];
/* 0x4C */ s32 scriptIDs[4];
/* 0x5C */ s32* npcList;
/* 0x60 */ s32 colliderID;
} AdvancedDoor; // size = 0x64
ApiStatus func_80281C20(Evt* script, s32 isInitialCall) {
Bytecode* thisPos = script->ptrReadPos;
Bytecode* args = script->ptrReadPos;
func_800EF414(evt_get_variable(script, *thisPos++), evt_get_variable(script, *thisPos++));
func_800EF414(evt_get_variable(script, *args++), evt_get_variable(script, *args++));
partner_set_tether_distance(0.0f);
return ApiStatus_DONE2;
}
@ -36,54 +50,219 @@ ApiStatus func_80281C84(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(ApiStatus, "world/script_api/7E2AA0", MakeDoorAdvanced, Evt* script, s32 isInitialCall);
ApiStatus MakeDoorAdvanced(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
AdvancedDoor* door = heap_malloc(sizeof(*door));
EvtScript* openDoorScript;
EvtScript* moveWallsScript;
EvtScript* dropDoorScript;
EvtScript* toggleVisScript;
s32 colliderID;
s32 triggerColliderID;
s32 visGroups;
s32 orientation;
f32 centerX, centerZ;
f32 nX, nZ;
f32 tempY;
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_802822A8);
door->state = DOOR_STATE_0;
visGroups = evt_get_variable(script, *args++);
door->unk_04 = visGroups & 0xFFF;
door->newItemVisGroup = (visGroups & 0xF000) >> 0xC;
door->prevItemVisGroup = 0;
openDoorScript = (EvtScript*) evt_get_variable(script, *args++);
moveWallsScript = (EvtScript*) evt_get_variable(script, *args++);
dropDoorScript = (EvtScript*) evt_get_variable(script, *args++);
toggleVisScript = (EvtScript*) evt_get_variable(script, *args++);
colliderID = evt_get_variable(script, *args++);
door->colliderID = colliderID;
triggerColliderID = evt_get_variable(script, *args++);
door->modelID = evt_get_variable(script, *args++);
door->npcList = (s32*) evt_get_variable(script, *args++);
if (dropDoorScript != 0) {
visGroups |= 0x800;
door->unk_04 = visGroups;
}
get_collider_center(colliderID, &centerX, &tempY, &centerZ);
get_flat_collider_normal(colliderID, &nX, &tempY, &nZ);
orientation = visGroups & 0xFF;
switch (orientation) {
case 0:
door->unk_0C.x = centerX + (nX * 30.0f) - (nZ * 20.0f);
door->unk_0C.z = centerZ + (nZ * 30.0f) + (nX * 20.0f);
door->unk_14.x = centerX - (nX * 30.0f);
door->unk_14.z = centerZ - (nZ * 30.0f);
break;
case 5:
door->unk_0C.x = centerX + (nX * 60.0f) - (nZ * 20.0f);
door->unk_0C.z = centerZ + (nZ * 60.0f) + (nX * 20.0f);
door->unk_14.x = centerX - (nX * 30.0f);
door->unk_14.z = centerZ - (nZ * 30.0f);
break;
case 1:
door->unk_0C.x = centerX + (nX * 30.0f);
door->unk_0C.z = centerZ + (nZ * 30.0f);
door->unk_14.x = centerX - (nX * 30.0f) - (nZ * 20.0f);
door->unk_14.z = centerZ - (nZ * 30.0f) - (nX * 20.0f);
break;
case 6:
door->unk_0C.x = centerX + (nX * 30.0f);
door->unk_0C.z = centerZ + (nZ * 30.0f);
door->unk_14.x = centerX - (nX * 60.0f) - (nZ * 20.0f);
door->unk_14.z = centerZ - (nZ * 60.0f) - (nX * 20.0f);
break;
case 2:
door->unk_0C.x = centerX + (nX * 30.0f) + (nZ * 20.0f);
door->unk_0C.z = centerZ + (nZ * 30.0f) - (nX * 20.0f);
door->unk_14.x = centerX - (nX * 30.0f);
door->unk_14.z = centerZ - (nZ * 30.0f);
break;
case 7:
door->unk_0C.x = centerX + (nX * 60.0f) + (nZ * 20.0f);
door->unk_0C.z = centerZ + (nZ * 60.0f) - (nX * 20.0f);
door->unk_14.x = centerX - (nX * 30.0f);
door->unk_14.z = centerZ - (nZ * 30.0f);
break;
case 3:
door->unk_0C.x = centerX + (nX * 30.0f);
door->unk_0C.z = centerZ + (nZ * 30.0f);
door->unk_14.x = centerX - (nX * 30.0f) + (nZ * 20.0f);
door->unk_14.z = centerZ - (nZ * 30.0f) + (nX * 20.0f);
break;
case 4:
door->unk_0C.x = centerX + (nX * 30.0f);
door->unk_0C.z = centerZ + (nZ * 30.0f);
door->unk_14.x = centerX - (nX * 30.0f);
door->unk_14.z = centerZ - (nZ * 30.0f);
break;
}
door->scripts[0] = openDoorScript;
door->scripts[1] = moveWallsScript;
door->scripts[2] = dropDoorScript;
door->scripts[3] = toggleVisScript;
door->unk_1C.x = door->unk_14.x;
door->unk_1C.z = door->unk_14.z;
door->unk_24.x = door->unk_0C.x;
door->unk_24.z = door->unk_0C.z;
door->bgColor[0] = gCameras[CAM_DEFAULT].bgColor[0];
door->bgColor[1] = gCameras[CAM_DEFAULT].bgColor[1];
door->bgColor[2] = gCameras[CAM_DEFAULT].bgColor[2];
bind_trigger_1(&D_802847D4_7E5654, 0x100, colliderID, 0, (s32) door, 3);
if (visGroups & 0x800) {
bind_trigger_1(&D_80284F80_7E5E00, 0x40, triggerColliderID, 1, (s32) door, 3);
} else {
bind_trigger_1(&D_80284F80_7E5E00, 0x100, triggerColliderID, 1, (s32) door, 3);
}
return ApiStatus_DONE2;
}
ApiStatus func_802822A8(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
AdvancedDoor* door = script->functionTempPtr[1];
s32 sound = evt_get_variable(script, *args++);
f32 posX, posY, posZ;
get_collider_center(door->colliderID, &posX, &posY, &posZ);
sfx_play_sound_at_position(sound, 0, posX, posY, posZ);
return ApiStatus_DONE2;
}
ApiStatus func_80282314(Evt* script, s32 isInitialCall) {
script->functionTemp[1] = script->varTable[1];
return ApiStatus_DONE2;
}
ApiStatus func_80282324(Evt* script, s32 isInitialCall) {
script->varTable[0] = *(UNK_TYPE*)script->functionTemp[1];
ApiStatus GetDoorState(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
script->varTable[0] = door->state;
return ApiStatus_DONE2;
}
ApiStatus func_80282338(Evt* script, s32 isInitialCall) {
UNK_TYPE* temp_s0 = script->functionTemp[1];
ApiStatus SetDoorState(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
*temp_s0 = evt_get_variable(script, *script->ptrReadPos);
door->state = evt_get_variable(script, *script->ptrReadPos);
return ApiStatus_DONE2;
}
ApiStatus func_8028236C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
AdvancedDoor* door = script->functionTempPtr[1];
s32 index = evt_get_variable(script, *args++);
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_8028236C);
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_802823B0);
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_80282414);
// D_80286540 needs to be defined wherever it's meant to be, and this matches
#ifdef NON_MATCHING
ApiStatus func_80282594(Evt* script, s32 isInitialCall) {
Camera* camera;
f32 temp_f0;
temp_f0 = evt_get_float_variable(script, *script->ptrReadPos);
camera = &gCameras[CAM_DEFAULT];
if (temp_f0 >= 0.0f) {
D_80286540 = camera->moveSpeed;
camera->moveSpeed = temp_f0;
if (does_script_exist(door->scriptIDs[index])) {
return ApiStatus_BLOCK;
} else {
camera->moveSpeed = D_80286540;
return ApiStatus_DONE2;
}
}
ApiStatus func_802823B0(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
AdvancedDoor* door = script->functionTempPtr[1];
s32 index = evt_get_variable(script, *args++);
s32 scriptID = evt_get_variable(script, *args++);
door->scriptIDs[index] = scriptID;
return ApiStatus_DONE2;
}
ApiStatus func_80282414(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->varTablePtr[1];
s32 alpha, r, g, b;
if (isInitialCall) {
if (script->varTable[0] == 0) {
func_8011B950(script->varTable[15], -1, 1, 1);
}
script->functionTemp[1] = 0;
}
script->functionTemp[1] += 32;
if (script->functionTemp[1] > 255) {
script->functionTemp[1] = 255;
}
if (script->varTable[0] == 0) {
alpha = script->functionTemp[1];
} else {
alpha = 255 - script->functionTemp[1];
}
set_background_color_blend(0, 0, 0, alpha);
r = door->bgColor[0] * (255 - alpha) / 255;
g = door->bgColor[1] * (255 - alpha) / 255;
b = door->bgColor[2] * (255 - alpha) / 255;
gCameras[CAM_DEFAULT].bgColor[0] = r;
gCameras[CAM_DEFAULT].bgColor[1] = g;
gCameras[CAM_DEFAULT].bgColor[2] = b;
if (script->functionTemp[1] >= 255) {
if (script->varTable[0] == 3) {
func_8011B950(script->varTable[15], -1, 0, 1);
}
return ApiStatus_DONE2;
} else {
return ApiStatus_BLOCK;
}
}
ApiStatus func_80282594(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
f32 newMoveSpeed = evt_get_float_variable(script, *args++);
Camera* camera = &gCameras[CAM_DEFAULT];
static f32 savedCamMoveSpeed;
if (newMoveSpeed >= 0.0f) {
savedCamMoveSpeed = camera->moveSpeed;
camera->moveSpeed = newMoveSpeed;
} else {
camera->moveSpeed = savedCamMoveSpeed;
}
return ApiStatus_DONE2;
}
#else
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_80282594);
#endif
ApiStatus SetEntityHideMode1(Evt* script, s32 isInitialCall) {
gEntityHideMode = 1;
@ -95,50 +274,104 @@ ApiStatus SetEntityHideMode2(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
// common probably
ApiStatus SetEntityHideMode0(Evt* script, s32 isInitialCall) {
gEntityHideMode = 0;
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_80282634);
ApiStatus func_80282634(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
s32* npcList = door->npcList;
s32 endOfList;
s32 mask;
s32 i;
if (npcList == NULL) {
return ApiStatus_DONE2;
}
for (i = 0; i < MAX_NPCS; i++) {
Npc* npc = get_npc_by_index(i);
if (npc != NULL) {
if ((npc->flags != 0) && (npc->npcID != NPC_PARTNER)) {
npc->flags |= NPC_FLAG_NO_DROPS;
}
}
}
INCLUDE_ASM(s32, "world/script_api/7E2AA0", func_80282700);
endOfList = -1;
mask = ~NPC_FLAG_NO_DROPS;
ApiStatus func_80282774(Evt* script, s32 isInitialCall) {
DoorStuff* doorStuff = (DoorStuff*)script->functionTemp[1];
doorStuff->unk_0A = get_current_item_entity_render_group();
set_current_item_entity_render_group(doorStuff->unk_08);
do {
Npc* npc;
if (*npcList == endOfList) {
return ApiStatus_DONE2;
}
npc = get_npc_safe(*npcList++);
if (npc != NULL) {
npc->flags &= mask;
}
} while (TRUE);
return ApiStatus_DONE2;
}
ApiStatus func_802827A8(Evt* script, s32 isInitialCall) {
set_current_item_entity_render_group(((DoorStuff*)script->functionTemp[1])->unk_0A);
ApiStatus func_80282700(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
s32 i;
if (door->npcList == NULL) {
return ApiStatus_DONE2;
}
for (i = 0; i < MAX_NPCS; i++) {
Npc* npc = get_npc_by_index(i);
if (npc != NULL) {
if (npc->flags != 0) {
npc->flags &= ~NPC_FLAG_NO_DROPS;
}
}
}
return ApiStatus_DONE2;
}
ApiStatus func_802827CC(Evt* script, s32 isInitialCall) {
DoorStuff* temp = script->functionTemp[1];
ApiStatus SetNewItemVisGroup(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
script->varTable[2] = temp->unk_04;
script->varTable[3] = temp->unk_0C;
script->varTable[4] = temp->unk_10;
script->varTable[5] = temp->unk_14;
script->varTable[6] = temp->unk_18;
script->varTable[7] = temp->unk_1C;
script->varTable[8] = temp->unk_20;
script->varTable[9] = temp->unk_24;
script->varTable[10] = temp->unk_28;
script->varTable[11] = temp->unk_2C;
script->varTable[12] = temp->unk_30;
script->varTable[13] = temp->unk_34;
script->varTable[14] = temp->unk_38;
script->varTable[15] = temp->unk_3C;
door->prevItemVisGroup = get_current_item_entity_render_group();
set_current_item_entity_render_group(door->newItemVisGroup);
return ApiStatus_DONE2;
}
ApiStatus func_80282868(Evt* script, s32 isInitialCall) {
ApiStatus RestorePrevItemVisGroup(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
set_current_item_entity_render_group(door->prevItemVisGroup);
return ApiStatus_DONE2;
}
ApiStatus GetDoorData(Evt* script, s32 isInitialCall) {
AdvancedDoor* door = script->functionTempPtr[1];
script->varTable[2] = door->unk_04;
script->varTable[3] = door->unk_0C.x;
script->varTable[4] = door->unk_0C.z;
script->varTable[5] = door->unk_14.x;
script->varTable[6] = door->unk_14.z;
script->varTable[7] = door->unk_1C.x;
script->varTable[8] = door->unk_1C.z;
script->varTable[9] = door->unk_24.x;
script->varTable[10] = door->unk_24.z;
script->varTablePtr[11] = door->scripts[0];
script->varTablePtr[12] = door->scripts[1];
script->varTablePtr[13] = door->scripts[2];
script->varTablePtr[14] = door->scripts[3];
script->varTable[15] = door->modelID;
return ApiStatus_DONE2;
}
ApiStatus GetDoorPtr(Evt* script, s32 isInitialCall) {
script->varTable[1] = script->functionTemp[1];
return ApiStatus_DONE2;
}

View File

@ -1,8 +1,8 @@
#include "common.h"
#include "entity.h"
extern PushBlockGrid* D_802DBC88[]; //TODO determine length
extern f32 D_80285640_7E64C0[];
extern PushBlockGrid* D_802DBC88[8];
extern f32 D_80285640_7E64C0[13];
extern EvtScript D_80285674_7E64F4;
#define BLOCK_GRID_SIZE 25
@ -56,21 +56,100 @@ ApiStatus func_802828DC(Evt* script, s32 isInitialCall) {
gCameras[CAM_DEFAULT].targetPos.z = playerStatus->position.z;
script->functionTemp[0]++;
if (script->functionTemp[0] == 13) {
if (script->functionTemp[0] == ARRAY_COUNT(D_80285640_7E64C0)) {
return ApiStatus_DONE1;
}
return ApiStatus_BLOCK;
}
INCLUDE_ASM(s32, "world/script_api/7E3700", func_80282C40);
ApiStatus func_80282C40(Evt* script, s32 isInitialCall) {
PushBlockGrid* grid = script->varTablePtr[0xA];
Entity* block = get_entity_by_index(script->varTable[0xB]);
f32 hitX, hitY, hitZ, hitDepth;
s32 hitResult;
s32 i, j;
if (isInitialCall) {
script->functionTemp[0] = 0;
script->varTable[0] = block->position.y;
hitX = block->position.x;
hitZ = block->position.z;
hitY = block->position.y + 5.0f;
hitDepth = 35.0f;
hitResult = npc_raycast_down_sides(0, &hitX, &hitY, &hitZ, &hitDepth);
script->functionTemp[1] = hitDepth;
if (hitResult != 0 && hitDepth <= 6.0f) {
return ApiStatus_DONE2;
}
}
if (grid->dropCallback != NULL) {
if (grid->dropCallback(block, script)) {
i = (block->position.x - grid->centerPos.x) / 25.0f;
j = (block->position.z - grid->centerPos.z) / 25.0f;
grid->cells[i + (j * grid->numCellsX)] = 0;
return ApiStatus_DONE1;
} else {
return ApiStatus_BLOCK;
}
} else {
block->position.y = script->varTable[0] - (D_80285640_7E64C0[script->functionTemp[0]] * 25.0f);
script->functionTemp[0]++;
if (script->functionTemp[0] != ARRAY_COUNT(D_80285640_7E64C0)) {
return ApiStatus_BLOCK;
}
i = (block->position.x - grid->centerPos.x) / 25.0f;
j = (block->position.z - grid->centerPos.z) / 25.0f;
grid->cells[i + (j * grid->numCellsX)] = PUSH_GRID_EMPTY;
}
return ApiStatus_DONE1;
}
ApiStatus func_80282E30(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "world/script_api/7E3700", func_80282E30);
INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283080);
ApiStatus func_80283080(Evt* script, s32 isInitialCall) {
PushBlockGrid* grid = script->varTablePtr[0xA];
Entity* block = get_entity_by_index(script->varTable[0xB]);
s32 ip, jp;
s32 in, jn;
ApiStatus func_80283174(Evt* script, s32 isInitialCall);
INCLUDE_ASM(s32, "world/script_api/7E3700", func_80283174);
ip = ((s32)block->position.x - grid->centerPos.x) / 25;
jp = ((s32)block->position.z - grid->centerPos.z) / 25;
in = ip + script->varTable[6];
jn = jp + script->varTable[8];
grid->cells[in + (jn * grid->numCellsX)] = grid->cells[ip + (jp * grid->numCellsX)];
grid->cells[ip + (jp * grid->numCellsX)] = PUSH_GRID_EMPTY;
return ApiStatus_DONE2;
}
ApiStatus func_80283174(Evt* script, s32 isInitialCall) {
PlayerStatus* playerStatus = &gPlayerStatus;
s32 collider = script->varTable[0xB] + COLLISION_WITH_ENTITY_BIT;
if (gCollisionStatus.pushingAgainstWall == collider) {
if (playerStatus->actionState == ACTION_STATE_14
|| playerStatus->actionState == ACTION_STATE_WALK
|| playerStatus->actionState == ACTION_STATE_RUN) {
if (playerStatus->animFlags & PLAYER_STATUS_ANIM_FLAGS_HOLDING_WATT) {
script->varTable[0xD] = FALSE;
} else {
script->varTable[0xD] = TRUE;
}
} else {
script->varTable[0xD] = FALSE;
}
} else {
script->varTable[0xD] = FALSE;
}
return ApiStatus_DONE2;
}
ApiStatus CheckActionState(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
@ -134,9 +213,9 @@ ApiStatus CreatePushBlockGrid(Evt* script, s32 isInitialCall) {
blockGrid->numCellsX = sizeNx;
blockGrid->numCellsZ = sizeNz;
blockGrid->centerPos[0] = centerX;
blockGrid->centerPos[1] = centerY;
blockGrid->centerPos[2] = centerZ;
blockGrid->centerPos.x = centerX;
blockGrid->centerPos.y = centerY;
blockGrid->centerPos.z = centerZ;
blockGrid->dropCallback = NULL;
return ApiStatus_DONE2;
@ -157,9 +236,9 @@ ApiStatus SetPushBlock(Evt* script, s32 isInitialCall) {
blockGrid->cells[cellIndex] = occupant;
if (occupant == PUSH_GRID_BLOCK) {
s32 posX = blockGrid->centerPos[0] + (gridX * BLOCK_GRID_SIZE) + (BLOCK_GRID_SIZE / 2);
s32 posY = blockGrid->centerPos[1];
s32 posZ = blockGrid->centerPos[2] + (gridZ * BLOCK_GRID_SIZE) + (BLOCK_GRID_SIZE / 2);
s32 posX = blockGrid->centerPos.x + (gridX * BLOCK_GRID_SIZE) + (BLOCK_GRID_SIZE / 2);
s32 posY = blockGrid->centerPos.y;
s32 posZ = blockGrid->centerPos.z + (gridZ * BLOCK_GRID_SIZE) + (BLOCK_GRID_SIZE / 2);
blockEntityID = create_entity(&Entity_PushBlock, posX, posY, posZ, 0, 0, 0, 0, MAKE_ENTITY_END);
bind_trigger_1(&D_80285674_7E64F4, TRIGGER_WALL_PUSH, blockEntityID + EVT_ENTITY_ID_BIT, (s32)blockGrid, blockEntityID, 3);
script->varTable[0] = blockEntityID;
@ -179,7 +258,7 @@ ApiStatus GetPushBlock(Evt* script, s32 isInitialCall) {
s32 cellIndex;
if (gridX >= blockGrid->numCellsX || gridX < 0 || gridZ >= blockGrid->numCellsZ || gridZ < 0) {
// vanilla bug: sets error value and then performs lookup anyway -- return statement forgotten here
// bug: sets error value and then performs lookup anyway -- return statement forgotten here
evt_set_variable(script, outVar, PUSH_GRID_OUT_OF_BOUNDS);
}
cellIndex = gridX + (gridZ * blockGrid->numCellsX);
@ -201,9 +280,9 @@ ApiStatus GetGridIndexFromPos(Evt* script, s32 isInitialCall) {
s32 gridX;
s32 gridZ;
posX -= blockGrid->centerPos[0];
posX -= blockGrid->centerPos.x;
gridX = posX / BLOCK_GRID_SIZE;
posZ -= blockGrid->centerPos[2];
posZ -= blockGrid->centerPos.z;
gridZ = posZ / BLOCK_GRID_SIZE;
evt_set_variable(script, outVarX, gridX);

View File

@ -1,6 +1,9 @@
#include "common.h"
#include "../partners.h"
extern s32 DoorModelsSwingCCW[3];
extern s32 DoorModelsSwingCW[3];
ApiStatus CheckRideScriptForEnterExit(Evt* script, s32 isInitialCall) {
PlayerStatus* playerStatus = &gPlayerStatus;
@ -127,10 +130,66 @@ ApiStatus GetEntryCoords(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/script_api/7E4690", SetupSingleDoor);
ApiStatus SetupSingleDoor(Evt* script, s32 isInitialCall) {
if (script->varTable[3] >= 0) {
DoorModelsSwingCCW[0] = script->varTable[2];
DoorModelsSwingCCW[1] = -1;
DoorModelsSwingCW[0] = -1;
} else {
DoorModelsSwingCW[0] = script->varTable[2];
DoorModelsSwingCW[1] = -1;
DoorModelsSwingCCW[0] = -1;
}
INCLUDE_ASM(s32, "world/script_api/7E4690", SetupSplitSingleDoor);
script->varTablePtr[2] = &DoorModelsSwingCCW;
script->varTablePtr[3] = &DoorModelsSwingCW;
INCLUDE_ASM(s32, "world/script_api/7E4690", SetupDoubleDoors);
return ApiStatus_DONE2;
}
INCLUDE_ASM(s32, "world/script_api/7E4690", SetupSplitDoubleDoors);
ApiStatus SetupSplitSingleDoor(Evt* script, s32 isInitialCall) {
if (script->varTable[3] >= 0) {
DoorModelsSwingCCW[0] = script->varTable[2];
DoorModelsSwingCCW[1] = script->varTable[4];
DoorModelsSwingCCW[2] = -1;
DoorModelsSwingCW[0] = -1;
} else {
DoorModelsSwingCW[0] = script->varTable[2];
DoorModelsSwingCW[1] = script->varTable[4];
DoorModelsSwingCW[2] = -1;
DoorModelsSwingCCW[0] = -1;
}
script->varTablePtr[2] = &DoorModelsSwingCCW;
script->varTablePtr[3] = &DoorModelsSwingCW;
return ApiStatus_DONE2;
}
ApiStatus SetupDoubleDoors(Evt* script, s32 isInitialCall) {
DoorModelsSwingCCW[0] = script->varTable[2];
DoorModelsSwingCCW[1] = -1;
DoorModelsSwingCW[0] = script->varTable[3];
DoorModelsSwingCW[1] = -1;
script->varTablePtr[3] = &DoorModelsSwingCW;
script->varTablePtr[2] = &DoorModelsSwingCCW;
return ApiStatus_DONE2;
}
ApiStatus SetupSplitDoubleDoors(Evt* script, s32 isInitialCall) {
DoorModelsSwingCCW[0] = script->varTable[2];
DoorModelsSwingCCW[1] = script->varTable[4];
DoorModelsSwingCCW[2] = -1;
DoorModelsSwingCW[0] = script->varTable[3];
DoorModelsSwingCW[1] = script->varTable[5];
DoorModelsSwingCW[2] = -1;
script->varTablePtr[3] = &DoorModelsSwingCW;
script->varTablePtr[2] = &DoorModelsSwingCCW;
return ApiStatus_DONE2;
}

View File

@ -1,60 +1,381 @@
# This file describes what to name messages when splitting.
- [0x19, 0x003B, kmr_03_tattle]
- [0x19, 0x0040, kmr_12_tattle]
- [0x19, 0x0060, sbk_00_tattle]
- [0x19, 0x0061, sbk_01_tattle]
- [0x19, 0x0093, dro_01_tattle]
- [0x19, 0x0094, dro_02_tattle]
- [0x19, 0x00BB, arn_07_tattle]
- [0x19, 0x00BC, arn_03_tattle]
- [0x19, 0x00BD, arn_05_tattle]
- [0x19, 0x00BE, arn_02_tattle]
- [0x19, 0x00BF, arn_04_tattle]
- [0x19, 0x00C0, dgb_00_tattle]
- [0x19, 0x00C1, dgb_01_tattle]
- [0x19, 0x00C2, dgb_02_tattle]
- [0x19, 0x00C3, dgb_03_tattle]
- [0x19, 0x00C4, dgb_04_tattle]
- [0x19, 0x00C5, dgb_05_tattle]
- [0x19, 0x00C6, dgb_06_tattle]
- [0x19, 0x00C7, dgb_07_tattle]
- [0x19, 0x00C8, dgb_08_tattle]
- [0x19, 0x00C9, dgb_09_tattle]
- [0x19, 0x00CA, dgb_10_tattle]
- [0x19, 0x00CB, dgb_11_tattle]
- [0x19, 0x00CC, dgb_12_tattle]
- [0x19, 0x00CD, dgb_13_tattle]
- [0x19, 0x00CE, dgb_14_tattle]
- [0x19, 0x00CF, dgb_15_tattle]
- [0x19, 0x00D0, dgb_16_tattle]
- [0x19, 0x00D1, dgb_17_tattle]
- [0x19, 0x00D2, dgb_18_tattle]
- [0x19, 0x00D3, arn_08_tattle]
- [0x19, 0x00D4, arn_09_tattle]
- [0x19, 0x00D5, arn_10_tattle]
- [0x19, 0x00D6, arn_12_tattle]
- [0x19, 0x00D7, arn_13_tattle]
- [0x19, 0x00D8, arn_11_tattle]
- [0x19, 0x0114, flo_00_tattle]
- [0x19, 0x0115, flo_03_tattle]
- [0x19, 0x0116, flo_07_tattle]
- [0x19, 0x0117, flo_08_tattle]
- [0x19, 0x0118, flo_09_tattle]
- [0x19, 0x011B, flo_11_tattle]
- [0x19, 0x011C, flo_12_tattle]
- [0x19, 0x011D, flo_13_tattle]
- [0x19, 0x011E, flo_14_tattle]
- [0x19, 0x011F, flo_15_tattle]
- [0x19, 0x0120, flo_16_tattle]
- [0x19, 0x0121, flo_17_tattle]
- [0x19, 0x0122, flo_18_tattle]
- [0x19, 0x0123, flo_19_tattle]
- [0x19, 0x0124, flo_21_tattle]
- [0x19, 0x0125, flo_22_tattle]
- [0x19, 0x0126, flo_23_tattle]
- [0x19, 0x0127, flo_24_tattle]
- [0x19, 0x0128, flo_25_tattle]
- [0x19, 0x000, mac_00_tattle]
- [0x19, 0x001, mac_01_tattle]
- [0x19, 0x002, mac_02_tattle]
- [0x19, 0x003, mac_03_tattle]
- [0x19, 0x004, mac_04_tattle]
- [0x19, 0x005, mac_05_tattle]
- [0x19, 0x006, mgm_00_tattle]
- [0x19, 0x007, mgm_01_tattle]
- [0x19, 0x007, mgm_03_tattle]
- [0x19, 0x008, mgm_02_tattle]
- [0x19, 0x009, osr_01_tattle]
- [0x19, 0x00A, osr_02_tattle]
- [0x19, 0x00B, kkj_10_tattle]
- [0x19, 0x00C, kkj_11_tattle]
- [0x19, 0x00D, kkj_12_tattle]
- [0x19, 0x00E, kkj_13_tattle]
- [0x19, 0x00F, kkj_14_tattle]
- [0x19, 0x010, kkj_15_tattle]
- [0x19, 0x011, kkj_16_tattle]
- [0x19, 0x012, kkj_17_tattle]
- [0x19, 0x013, kkj_18_tattle]
- [0x19, 0x014, kkj_19_tattle]
- [0x19, 0x015, kkj_20_tattle]
- [0x19, 0x016, kkj_21_tattle]
- [0x19, 0x017, kkj_22_tattle]
- [0x19, 0x018, kkj_23_tattle]
- [0x19, 0x019, kkj_24_tattle]
- [0x19, 0x01A, kkj_25_tattle]
- [0x19, 0x01B, kkj_26_tattle]
- [0x19, 0x01C, hos_00_tattle]
- [0x19, 0x01D, hos_01_tattle]
- [0x19, 0x01E, hos_02_tattle]
- [0x19, 0x01F, hos_03_tattle]
- [0x19, 0x020, hos_04_tattle]
- [0x19, 0x021, hos_05_tattle]
- [0x19, 0x022, hos_06_tattle]
- [0x19, 0x023, tik_01_tattle]
- [0x19, 0x024, tik_02_tattle]
- [0x19, 0x025, tik_03_tattle]
- [0x19, 0x026, tik_04_tattle]
- [0x19, 0x027, tik_05_tattle]
- [0x19, 0x028, tik_06_tattle]
- [0x19, 0x029, tik_07_tattle]
- [0x19, 0x02A, tik_08_tattle]
- [0x19, 0x02B, tik_09_tattle]
- [0x19, 0x02C, tik_10_tattle]
- [0x19, 0x02D, tik_12_tattle]
- [0x19, 0x02E, tik_14_tattle]
- [0x19, 0x02F, tik_15_tattle]
- [0x19, 0x030, tik_17_tattle]
- [0x19, 0x031, tik_18_tattle]
- [0x19, 0x032, tik_19_tattle]
- [0x19, 0x033, tik_20_tattle]
- [0x19, 0x034, tik_21_tattle]
- [0x19, 0x035, tik_22_tattle]
- [0x19, 0x036, tik_23_tattle]
- [0x19, 0x037, tik_24_tattle]
- [0x19, 0x038, tik_25_tattle]
- [0x19, 0x039, kmr_00_tattle]
- [0x19, 0x03A, kmr_02_tattle]
- [0x19, 0x03B, kmr_03_tattle]
- [0x19, 0x03C, kmr_04_tattle]
- [0x19, 0x03D, kmr_05_tattle]
- [0x19, 0x03E, kmr_06_tattle]
- [0x19, 0x03F, kmr_07_tattle]
- [0x19, 0x040, kmr_12_tattle]
- [0x19, 0x041, kmr_09_tattle]
- [0x19, 0x042, kmr_11_tattle]
- [0x19, 0x043, kmr_10_tattle]
- [0x19, 0x044, kmr_20_tattle]
- [0x19, 0x045, nok_11_tattle]
- [0x19, 0x046, nok_12_tattle]
- [0x19, 0x047, nok_13_tattle]
- [0x19, 0x048, nok_01_tattle]
- [0x19, 0x049, nok_02_tattle]
- [0x19, 0x04A, nok_03_tattle]
- [0x19, 0x04B, nok_04_tattle]
- [0x19, 0x04C, nok_14_tattle]
- [0x19, 0x04D, nok_15_tattle]
- [0x19, 0x04E, trd_00_tattle]
- [0x19, 0x04F, trd_01_tattle]
- [0x19, 0x050, trd_02_tattle]
- [0x19, 0x051, trd_03_tattle]
- [0x19, 0x052, trd_04_tattle]
- [0x19, 0x053, trd_05_tattle]
- [0x19, 0x054, trd_06_tattle]
- [0x19, 0x055, trd_07_tattle]
- [0x19, 0x056, trd_08_tattle]
- [0x19, 0x057, trd_09_tattle]
- [0x19, 0x058, trd_10_tattle]
- [0x19, 0x059, iwa_10_tattle]
- [0x19, 0x05A, iwa_00_tattle]
- [0x19, 0x05B, iwa_01_tattle]
- [0x19, 0x05C, iwa_02_tattle]
- [0x19, 0x05D, iwa_03_tattle]
- [0x19, 0x05E, iwa_04_tattle]
- [0x19, 0x05F, sbk_99_tattle]
- [0x19, 0x060, sbk_00_tattle]
- [0x19, 0x061, sbk_01_tattle]
- [0x19, 0x064, sbk_03_tattle]
- [0x19, 0x065, sbk_04_tattle]
- [0x19, 0x066, sbk_05_tattle]
- [0x19, 0x067, sbk_06_tattle]
- [0x19, 0x068, sbk_10_tattle]
- [0x19, 0x069, sbk_11_tattle]
- [0x19, 0x06A, sbk_12_tattle]
- [0x19, 0x06B, sbk_13_tattle]
- [0x19, 0x06C, sbk_14_tattle]
- [0x19, 0x06D, sbk_15_tattle]
- [0x19, 0x06E, sbk_16_tattle]
- [0x19, 0x06F, sbk_20_tattle]
- [0x19, 0x070, sbk_21_tattle]
- [0x19, 0x071, sbk_22_tattle]
- [0x19, 0x072, sbk_23_tattle]
- [0x19, 0x073, sbk_24_tattle]
- [0x19, 0x074, sbk_25_tattle]
- [0x19, 0x075, sbk_26_tattle]
- [0x19, 0x078, sbk_31_tattle]
- [0x19, 0x079, sbk_32_tattle]
- [0x19, 0x07A, sbk_33_tattle]
- [0x19, 0x07B, sbk_34_tattle]
- [0x19, 0x07C, sbk_35_tattle]
- [0x19, 0x07D, sbk_36_tattle]
- [0x19, 0x07E, sbk_40_tattle]
- [0x19, 0x07F, sbk_41_tattle]
- [0x19, 0x080, sbk_42_tattle]
- [0x19, 0x081, sbk_43_tattle]
- [0x19, 0x082, sbk_44_tattle]
- [0x19, 0x083, sbk_45_tattle]
- [0x19, 0x084, sbk_46_tattle]
- [0x19, 0x085, sbk_50_tattle]
- [0x19, 0x086, sbk_51_tattle]
- [0x19, 0x087, sbk_52_tattle]
- [0x19, 0x088, sbk_53_tattle]
- [0x19, 0x089, sbk_54_tattle]
- [0x19, 0x08A, sbk_55_tattle]
- [0x19, 0x08B, sbk_56_tattle]
- [0x19, 0x08C, sbk_60_tattle]
- [0x19, 0x08D, sbk_61_tattle]
- [0x19, 0x08E, sbk_62_tattle]
- [0x19, 0x08F, sbk_63_tattle]
- [0x19, 0x090, sbk_64_tattle]
- [0x19, 0x091, sbk_65_tattle]
- [0x19, 0x092, sbk_66_tattle]
- [0x19, 0x093, dro_01_tattle]
- [0x19, 0x094, dro_02_tattle]
- [0x19, 0x095, isk_01_tattle]
- [0x19, 0x096, isk_02_tattle]
- [0x19, 0x097, isk_03_tattle]
- [0x19, 0x098, isk_04_tattle]
- [0x19, 0x099, isk_05_tattle]
- [0x19, 0x09A, isk_06_tattle]
- [0x19, 0x09B, isk_07_tattle]
- [0x19, 0x09C, isk_08_tattle]
- [0x19, 0x09D, isk_09_tattle]
- [0x19, 0x09E, isk_10_tattle]
- [0x19, 0x09F, isk_11_tattle]
- [0x19, 0x0A0, isk_12_tattle]
- [0x19, 0x0A1, isk_13_tattle]
- [0x19, 0x0A2, isk_14_tattle]
- [0x19, 0x0A3, isk_16_tattle]
- [0x19, 0x0A4, isk_18_tattle]
- [0x19, 0x0A5, isk_19_tattle]
- [0x19, 0x0A6, mim_10_tattle]
- [0x19, 0x0A7, mim_01_tattle]
- [0x19, 0x0A8, mim_02_tattle]
- [0x19, 0x0A9, mim_03_tattle]
- [0x19, 0x0AA, mim_04_tattle]
- [0x19, 0x0AB, mim_05_tattle]
- [0x19, 0x0AC, mim_06_tattle]
- [0x19, 0x0AD, mim_07_tattle]
- [0x19, 0x0AE, mim_08_tattle]
- [0x19, 0x0AF, mim_09_tattle]
- [0x19, 0x0B0, mim_11_tattle]
- [0x19, 0x0B1, mim_12_tattle]
- [0x19, 0x0B2, obk_01_tattle]
- [0x19, 0x0B3, obk_02_tattle]
- [0x19, 0x0B4, obk_03_tattle]
- [0x19, 0x0B5, obk_04_tattle]
- [0x19, 0x0B6, obk_05_tattle]
- [0x19, 0x0B7, obk_06_tattle]
- [0x19, 0x0B8, obk_07_tattle]
- [0x19, 0x0B9, obk_08_tattle]
- [0x19, 0x0BA, obk_09_tattle]
- [0x19, 0x0BB, arn_07_tattle]
- [0x19, 0x0BC, arn_03_tattle]
- [0x19, 0x0BD, arn_05_tattle]
- [0x19, 0x0BE, arn_02_tattle]
- [0x19, 0x0BF, arn_04_tattle]
- [0x19, 0x0C0, dgb_00_tattle]
- [0x19, 0x0C1, dgb_01_tattle]
- [0x19, 0x0C2, dgb_02_tattle]
- [0x19, 0x0C3, dgb_03_tattle]
- [0x19, 0x0C4, dgb_04_tattle]
- [0x19, 0x0C5, dgb_05_tattle]
- [0x19, 0x0C6, dgb_06_tattle]
- [0x19, 0x0C7, dgb_07_tattle]
- [0x19, 0x0C8, dgb_08_tattle]
- [0x19, 0x0C9, dgb_09_tattle]
- [0x19, 0x0CA, dgb_10_tattle]
- [0x19, 0x0CB, dgb_11_tattle]
- [0x19, 0x0CC, dgb_12_tattle]
- [0x19, 0x0CD, dgb_13_tattle]
- [0x19, 0x0CE, dgb_14_tattle]
- [0x19, 0x0CF, dgb_15_tattle]
- [0x19, 0x0D0, dgb_16_tattle]
- [0x19, 0x0D1, dgb_17_tattle]
- [0x19, 0x0D2, dgb_18_tattle]
- [0x19, 0x0D3, arn_08_tattle]
- [0x19, 0x0D4, arn_09_tattle]
- [0x19, 0x0D5, arn_10_tattle]
- [0x19, 0x0D6, arn_12_tattle]
- [0x19, 0x0D7, arn_13_tattle]
- [0x19, 0x0D8, arn_11_tattle]
- [0x19, 0x0D9, omo_01_tattle]
- [0x19, 0x0DA, omo_02_tattle]
- [0x19, 0x0DB, omo_03_tattle]
- [0x19, 0x0DC, omo_04_tattle]
- [0x19, 0x0DD, omo_05_tattle]
- [0x19, 0x0DE, omo_06_tattle]
- [0x19, 0x0DF, omo_07_tattle]
- [0x19, 0x0E0, omo_08_tattle]
- [0x19, 0x0E1, omo_09_tattle]
- [0x19, 0x0E2, omo_10_tattle]
- [0x19, 0x0E3, omo_11_tattle]
- [0x19, 0x0E4, omo_12_tattle]
- [0x19, 0x0E5, omo_13_tattle]
- [0x19, 0x0E6, omo_14_tattle]
- [0x19, 0x0E7, omo_15_tattle]
- [0x19, 0x0E8, omo_17_tattle]
- [0x19, 0x0E9, kgr_01_tattle]
- [0x19, 0x0EA, kgr_02_tattle]
- [0x19, 0x0EB, jan_00_tattle]
- [0x19, 0x0EC, jan_01_tattle]
- [0x19, 0x0ED, jan_02_tattle]
- [0x19, 0x0EE, jan_03_tattle]
- [0x19, 0x0EF, jan_22_tattle]
- [0x19, 0x0F4, jan_08_tattle]
- [0x19, 0x0F5, jan_09_tattle]
- [0x19, 0x0F6, jan_10_tattle]
- [0x19, 0x0F7, jan_07_tattle]
- [0x19, 0x0F8, jan_06_tattle]
- [0x19, 0x0F9, jan_11_tattle]
- [0x19, 0x0FA, jan_12_tattle]
- [0x19, 0x0FB, jan_13_tattle]
- [0x19, 0x0FC, jan_14_tattle]
- [0x19, 0x0FD, jan_15_tattle]
- [0x19, 0x0FE, jan_16_tattle]
- [0x19, 0x0FF, jan_17_tattle]
- [0x19, 0x100, jan_18_tattle]
- [0x19, 0x101, jan_19_tattle]
- [0x19, 0x102, jan_23_tattle]
- [0x19, 0x103, kzn_01_tattle]
- [0x19, 0x104, kzn_02_tattle]
- [0x19, 0x105, kzn_03_tattle]
- [0x19, 0x106, kzn_04_tattle]
- [0x19, 0x107, kzn_05_tattle]
- [0x19, 0x108, kzn_06_tattle]
- [0x19, 0x109, kzn_07_tattle]
- [0x19, 0x10A, kzn_08_tattle]
- [0x19, 0x10B, kzn_09_tattle]
- [0x19, 0x10C, kzn_10_tattle]
- [0x19, 0x10D, kzn_11_tattle]
- [0x19, 0x10E, kzn_17_tattle]
- [0x19, 0x111, kzn_19_tattle]
- [0x19, 0x112, kzn_20_tattle]
- [0x19, 0x113, kzn_22_tattle]
- [0x19, 0x114, flo_00_tattle]
- [0x19, 0x115, flo_03_tattle]
- [0x19, 0x116, flo_07_tattle]
- [0x19, 0x117, flo_08_tattle]
- [0x19, 0x118, flo_09_tattle]
- [0x19, 0x11B, flo_11_tattle]
- [0x19, 0x11C, flo_12_tattle]
- [0x19, 0x11D, flo_13_tattle]
- [0x19, 0x11E, flo_14_tattle]
- [0x19, 0x11F, flo_15_tattle]
- [0x19, 0x120, flo_16_tattle]
- [0x19, 0x121, flo_17_tattle]
- [0x19, 0x122, flo_18_tattle]
- [0x19, 0x123, flo_19_tattle]
- [0x19, 0x124, flo_21_tattle]
- [0x19, 0x125, flo_22_tattle]
- [0x19, 0x126, flo_23_tattle]
- [0x19, 0x127, flo_24_tattle]
- [0x19, 0x128, flo_25_tattle]
- [0x19, 0x129, sam_01_tattle]
- [0x19, 0x12A, sam_02_tattle]
- [0x19, 0x12D, sam_03_tattle]
- [0x19, 0x12E, sam_04_tattle]
- [0x19, 0x12F, sam_05_tattle]
- [0x19, 0x130, sam_06_tattle]
- [0x19, 0x131, sam_07_tattle]
- [0x19, 0x132, sam_08_tattle]
- [0x19, 0x133, sam_09_tattle]
- [0x19, 0x134, sam_10_tattle]
- [0x19, 0x135, sam_12_tattle]
- [0x19, 0x136, pra_01_tattle]
- [0x19, 0x137, pra_02_tattle]
- [0x19, 0x138, pra_03_tattle]
- [0x19, 0x139, pra_04_tattle]
- [0x19, 0x13A, pra_05_tattle]
- [0x19, 0x13B, pra_06_tattle]
- [0x19, 0x13C, pra_09_tattle]
- [0x19, 0x13D, pra_10_tattle]
- [0x19, 0x13E, pra_11_tattle]
- [0x19, 0x13F, pra_12_tattle]
- [0x19, 0x140, pra_13_tattle]
- [0x19, 0x141, pra_14_tattle]
- [0x19, 0x142, pra_15_tattle]
- [0x19, 0x143, pra_16_tattle]
- [0x19, 0x144, pra_18_tattle]
- [0x19, 0x145, pra_19_tattle]
- [0x19, 0x146, pra_20_tattle]
- [0x19, 0x147, pra_21_tattle]
- [0x19, 0x148, pra_22_tattle]
- [0x19, 0x149, pra_27_tattle]
- [0x19, 0x14A, pra_28_tattle]
- [0x19, 0x14B, pra_29_tattle]
- [0x19, 0x14C, pra_31_tattle]
- [0x19, 0x14D, pra_32_tattle]
- [0x19, 0x14E, pra_33_tattle]
- [0x19, 0x14F, pra_34_tattle]
- [0x19, 0x150, pra_35_tattle]
- [0x19, 0x151, pra_36_tattle]
- [0x19, 0x152, pra_37_tattle]
- [0x19, 0x153, pra_38_tattle]
- [0x19, 0x154, pra_39_tattle]
- [0x19, 0x155, pra_40_tattle]
- [0x19, 0x156, kpa_63_tattle]
- [0x19, 0x157, kpa_60_tattle]
- [0x19, 0x157, kpa_62_tattle]
- [0x19, 0x158, kpa_10_tattle]
- [0x19, 0x158, kpa_11_tattle]
- [0x19, 0x159, kpa_70_tattle]
- [0x19, 0x15A, kpa_50_tattle]
- [0x19, 0x15B, kpa_90_tattle]
- [0x19, 0x15C, kpa_91_tattle]
- [0x19, 0x15D, kpa_51_tattle]
- [0x19, 0x15E, kpa_81_tattle]
- [0x19, 0x15F, kpa_17_tattle]
- [0x19, 0x166, kpa_15_tattle]
- [0x19, 0x167, kpa_16_tattle]
- [0x19, 0x168, kpa_01_tattle]
- [0x19, 0x169, kpa_03_tattle]
- [0x19, 0x16A, kpa_04_tattle]
- [0x19, 0x16B, kpa_32_tattle]
- [0x19, 0x16C, kpa_96_tattle]
- [0x19, 0x16D, kpa_130_tattle]
- [0x19, 0x16E, kpa_133_tattle]
- [0x19, 0x16F, kpa_134_tattle]
- [0x19, 0x170, kpa_83_tattle]
- [0x19, 0x171, kpa_52_tattle]
- [0x19, 0x172, kpa_08_tattle]
- [0x19, 0x173, kpa_100_tattle]
- [0x19, 0x174, kpa_40_tattle]
- [0x19, 0x175, kpa_41_tattle]
- [0x19, 0x176, kpa_82_tattle]
- [0x19, 0x177, kpa_61_tattle]
- [0x19, 0x178, kpa_33_tattle]
- [0x19, 0x179, kpa_94_tattle]
- [0x19, 0x17A, kpa_95_tattle]
- [0x19, 0x17B, kpa_09_tattle]
- [0x19, 0x17C, kpa_101_tattle]
- [0x19, 0x17D, kpa_102_tattle]
- [0x19, 0x17E, kpa_53_tattle]
- [0x19, 0x17F, kpa_111_tattle]
- [0x19, 0x180, kpa_112_tattle]
- [0x19, 0x181, kpa_113_tattle]
- [0x19, 0x182, kpa_114_tattle]
- [0x19, 0x183, kpa_115_tattle]
- [0x19, 0x184, kpa_116_tattle]
- [0x19, 0x185, kpa_117_tattle]
- [0x19, 0x186, kpa_118_tattle]
- [0x19, 0x187, kpa_119_tattle]
- [0x19, 0x188, kpa_121_tattle]
- [0x1C, 0x0000, actor_goomba_tattle]
- [0x1C, 0x0001, actor_spiked_goomba_tattle]

File diff suppressed because one or more lines are too long

View File

@ -1,409 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_80286500_7E7380
.word .L80281E18_7E2C98, .L80281F04_7E2D84, .L80282000_7E2E80, .L80282104_7E2F84, .L80282174_7E2FF4, .L80281E80_7E2D00, .L80281F74_7E2DF4, .L80282074_7E2EF4
.section .text
glabel MakeDoorAdvanced
/* 7E2B2C 80281CAC 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 7E2B30 80281CB0 AFB10034 */ sw $s1, 0x34($sp)
/* 7E2B34 80281CB4 0080882D */ daddu $s1, $a0, $zero
/* 7E2B38 80281CB8 AFBF0054 */ sw $ra, 0x54($sp)
/* 7E2B3C 80281CBC AFBE0050 */ sw $fp, 0x50($sp)
/* 7E2B40 80281CC0 AFB7004C */ sw $s7, 0x4c($sp)
/* 7E2B44 80281CC4 AFB60048 */ sw $s6, 0x48($sp)
/* 7E2B48 80281CC8 AFB50044 */ sw $s5, 0x44($sp)
/* 7E2B4C 80281CCC AFB40040 */ sw $s4, 0x40($sp)
/* 7E2B50 80281CD0 AFB3003C */ sw $s3, 0x3c($sp)
/* 7E2B54 80281CD4 AFB20038 */ sw $s2, 0x38($sp)
/* 7E2B58 80281CD8 AFB00030 */ sw $s0, 0x30($sp)
/* 7E2B5C 80281CDC 8E30000C */ lw $s0, 0xc($s1)
/* 7E2B60 80281CE0 0C00AB39 */ jal heap_malloc
/* 7E2B64 80281CE4 24040064 */ addiu $a0, $zero, 0x64
/* 7E2B68 80281CE8 0220202D */ daddu $a0, $s1, $zero
/* 7E2B6C 80281CEC 0040902D */ daddu $s2, $v0, $zero
/* 7E2B70 80281CF0 AE400000 */ sw $zero, ($s2)
/* 7E2B74 80281CF4 8E050000 */ lw $a1, ($s0)
/* 7E2B78 80281CF8 0C0B1EAF */ jal evt_get_variable
/* 7E2B7C 80281CFC 26100004 */ addiu $s0, $s0, 4
/* 7E2B80 80281D00 0040982D */ daddu $s3, $v0, $zero
/* 7E2B84 80281D04 32620FFF */ andi $v0, $s3, 0xfff
/* 7E2B88 80281D08 AE420004 */ sw $v0, 4($s2)
/* 7E2B8C 80281D0C 3262F000 */ andi $v0, $s3, 0xf000
/* 7E2B90 80281D10 00021303 */ sra $v0, $v0, 0xc
/* 7E2B94 80281D14 A6420008 */ sh $v0, 8($s2)
/* 7E2B98 80281D18 A640000A */ sh $zero, 0xa($s2)
/* 7E2B9C 80281D1C 8E050000 */ lw $a1, ($s0)
/* 7E2BA0 80281D20 26100004 */ addiu $s0, $s0, 4
/* 7E2BA4 80281D24 0C0B1EAF */ jal evt_get_variable
/* 7E2BA8 80281D28 0220202D */ daddu $a0, $s1, $zero
/* 7E2BAC 80281D2C 8E050000 */ lw $a1, ($s0)
/* 7E2BB0 80281D30 26100004 */ addiu $s0, $s0, 4
/* 7E2BB4 80281D34 0220202D */ daddu $a0, $s1, $zero
/* 7E2BB8 80281D38 0C0B1EAF */ jal evt_get_variable
/* 7E2BBC 80281D3C AFA2002C */ sw $v0, 0x2c($sp)
/* 7E2BC0 80281D40 8E050000 */ lw $a1, ($s0)
/* 7E2BC4 80281D44 26100004 */ addiu $s0, $s0, 4
/* 7E2BC8 80281D48 0220202D */ daddu $a0, $s1, $zero
/* 7E2BCC 80281D4C 0C0B1EAF */ jal evt_get_variable
/* 7E2BD0 80281D50 0040F02D */ daddu $fp, $v0, $zero
/* 7E2BD4 80281D54 8E050000 */ lw $a1, ($s0)
/* 7E2BD8 80281D58 26100004 */ addiu $s0, $s0, 4
/* 7E2BDC 80281D5C 0220202D */ daddu $a0, $s1, $zero
/* 7E2BE0 80281D60 0C0B1EAF */ jal evt_get_variable
/* 7E2BE4 80281D64 0040A82D */ daddu $s5, $v0, $zero
/* 7E2BE8 80281D68 8E050000 */ lw $a1, ($s0)
/* 7E2BEC 80281D6C 26100004 */ addiu $s0, $s0, 4
/* 7E2BF0 80281D70 0220202D */ daddu $a0, $s1, $zero
/* 7E2BF4 80281D74 0C0B1EAF */ jal evt_get_variable
/* 7E2BF8 80281D78 0040B82D */ daddu $s7, $v0, $zero
/* 7E2BFC 80281D7C 0040A02D */ daddu $s4, $v0, $zero
/* 7E2C00 80281D80 AE540060 */ sw $s4, 0x60($s2)
/* 7E2C04 80281D84 8E050000 */ lw $a1, ($s0)
/* 7E2C08 80281D88 26100004 */ addiu $s0, $s0, 4
/* 7E2C0C 80281D8C 0C0B1EAF */ jal evt_get_variable
/* 7E2C10 80281D90 0220202D */ daddu $a0, $s1, $zero
/* 7E2C14 80281D94 8E050000 */ lw $a1, ($s0)
/* 7E2C18 80281D98 26100004 */ addiu $s0, $s0, 4
/* 7E2C1C 80281D9C 0220202D */ daddu $a0, $s1, $zero
/* 7E2C20 80281DA0 0C0B1EAF */ jal evt_get_variable
/* 7E2C24 80281DA4 0040B02D */ daddu $s6, $v0, $zero
/* 7E2C28 80281DA8 AE42003C */ sw $v0, 0x3c($s2)
/* 7E2C2C 80281DAC 8E050000 */ lw $a1, ($s0)
/* 7E2C30 80281DB0 0C0B1EAF */ jal evt_get_variable
/* 7E2C34 80281DB4 0220202D */ daddu $a0, $s1, $zero
/* 7E2C38 80281DB8 12A00003 */ beqz $s5, .L80281DC8
/* 7E2C3C 80281DBC AE42005C */ sw $v0, 0x5c($s2)
/* 7E2C40 80281DC0 36730800 */ ori $s3, $s3, 0x800
/* 7E2C44 80281DC4 AE530004 */ sw $s3, 4($s2)
.L80281DC8:
/* 7E2C48 80281DC8 0280202D */ daddu $a0, $s4, $zero
/* 7E2C4C 80281DCC 27A50018 */ addiu $a1, $sp, 0x18
/* 7E2C50 80281DD0 27B0001C */ addiu $s0, $sp, 0x1c
/* 7E2C54 80281DD4 0200302D */ daddu $a2, $s0, $zero
/* 7E2C58 80281DD8 0C016F84 */ jal get_collider_center
/* 7E2C5C 80281DDC 27A70020 */ addiu $a3, $sp, 0x20
/* 7E2C60 80281DE0 0280202D */ daddu $a0, $s4, $zero
/* 7E2C64 80281DE4 27A50024 */ addiu $a1, $sp, 0x24
/* 7E2C68 80281DE8 0200302D */ daddu $a2, $s0, $zero
/* 7E2C6C 80281DEC 0C016F76 */ jal get_flat_collider_normal
/* 7E2C70 80281DF0 27A70028 */ addiu $a3, $sp, 0x28
/* 7E2C74 80281DF4 326300FF */ andi $v1, $s3, 0xff
/* 7E2C78 80281DF8 2C620008 */ sltiu $v0, $v1, 8
/* 7E2C7C 80281DFC 104000F0 */ beqz $v0, .L802821C0
/* 7E2C80 80281E00 00031080 */ sll $v0, $v1, 2
/* 7E2C84 80281E04 3C018028 */ lui $at, %hi(jtbl_80286500_7E7380)
/* 7E2C88 80281E08 00220821 */ addu $at, $at, $v0
/* 7E2C8C 80281E0C 8C226500 */ lw $v0, %lo(jtbl_80286500_7E7380)($at)
/* 7E2C90 80281E10 00400008 */ jr $v0
/* 7E2C94 80281E14 00000000 */ nop
.L80281E18_7E2C98:
/* 7E2C98 80281E18 C7AA0024 */ lwc1 $f10, 0x24($sp)
/* 7E2C9C 80281E1C 3C0141F0 */ lui $at, 0x41f0
/* 7E2CA0 80281E20 44811000 */ mtc1 $at, $f2
/* 7E2CA4 80281E24 00000000 */ nop
/* 7E2CA8 80281E28 46025302 */ mul.s $f12, $f10, $f2
/* 7E2CAC 80281E2C 00000000 */ nop
/* 7E2CB0 80281E30 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 7E2CB4 80281E34 3C0141A0 */ lui $at, 0x41a0
/* 7E2CB8 80281E38 44810000 */ mtc1 $at, $f0
/* 7E2CBC 80281E3C 00000000 */ nop
/* 7E2CC0 80281E40 46003102 */ mul.s $f4, $f6, $f0
/* 7E2CC4 80281E44 00000000 */ nop
/* 7E2CC8 80281E48 46023182 */ mul.s $f6, $f6, $f2
/* 7E2CCC 80281E4C 00000000 */ nop
/* 7E2CD0 80281E50 46005282 */ mul.s $f10, $f10, $f0
/* 7E2CD4 80281E54 00000000 */ nop
/* 7E2CD8 80281E58 C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2CDC 80281E5C 460C1200 */ add.s $f8, $f2, $f12
/* 7E2CE0 80281E60 460C1081 */ sub.s $f2, $f2, $f12
/* 7E2CE4 80281E64 46044201 */ sub.s $f8, $f8, $f4
/* 7E2CE8 80281E68 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2CEC 80281E6C 46060100 */ add.s $f4, $f0, $f6
/* 7E2CF0 80281E70 46060001 */ sub.s $f0, $f0, $f6
/* 7E2CF4 80281E74 E6420014 */ swc1 $f2, 0x14($s2)
/* 7E2CF8 80281E78 080A0819 */ j .L80282064
/* 7E2CFC 80281E7C 460A2100 */ add.s $f4, $f4, $f10
.L80281E80_7E2D00:
/* 7E2D00 80281E80 C7A80024 */ lwc1 $f8, 0x24($sp)
/* 7E2D04 80281E84 3C014270 */ lui $at, 0x4270
/* 7E2D08 80281E88 44812000 */ mtc1 $at, $f4
/* 7E2D0C 80281E8C 00000000 */ nop
/* 7E2D10 80281E90 46044302 */ mul.s $f12, $f8, $f4
/* 7E2D14 80281E94 00000000 */ nop
/* 7E2D18 80281E98 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 7E2D1C 80281E9C 3C0141A0 */ lui $at, 0x41a0
/* 7E2D20 80281EA0 44815000 */ mtc1 $at, $f10
/* 7E2D24 80281EA4 00000000 */ nop
/* 7E2D28 80281EA8 460A3382 */ mul.s $f14, $f6, $f10
/* 7E2D2C 80281EAC 00000000 */ nop
/* 7E2D30 80281EB0 46043102 */ mul.s $f4, $f6, $f4
/* 7E2D34 80281EB4 00000000 */ nop
/* 7E2D38 80281EB8 460A4282 */ mul.s $f10, $f8, $f10
/* 7E2D3C 80281EBC 00000000 */ nop
/* 7E2D40 80281EC0 3C0141F0 */ lui $at, 0x41f0
/* 7E2D44 80281EC4 44810000 */ mtc1 $at, $f0
/* 7E2D48 80281EC8 00000000 */ nop
/* 7E2D4C 80281ECC 46004202 */ mul.s $f8, $f8, $f0
/* 7E2D50 80281ED0 00000000 */ nop
/* 7E2D54 80281ED4 46003182 */ mul.s $f6, $f6, $f0
/* 7E2D58 80281ED8 00000000 */ nop
/* 7E2D5C 80281EDC C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2D60 80281EE0 460C1300 */ add.s $f12, $f2, $f12
/* 7E2D64 80281EE4 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2D68 80281EE8 46040100 */ add.s $f4, $f0, $f4
/* 7E2D6C 80281EEC 46081081 */ sub.s $f2, $f2, $f8
/* 7E2D70 80281EF0 46060001 */ sub.s $f0, $f0, $f6
/* 7E2D74 80281EF4 460E6301 */ sub.s $f12, $f12, $f14
/* 7E2D78 80281EF8 E6420014 */ swc1 $f2, 0x14($s2)
/* 7E2D7C 80281EFC 080A083D */ j .L802820F4
/* 7E2D80 80281F00 460A2100 */ add.s $f4, $f4, $f10
.L80281F04_7E2D84:
/* 7E2D84 80281F04 C7A80024 */ lwc1 $f8, 0x24($sp)
/* 7E2D88 80281F08 3C0141F0 */ lui $at, 0x41f0
/* 7E2D8C 80281F0C 44813000 */ mtc1 $at, $f6
/* 7E2D90 80281F10 00000000 */ nop
/* 7E2D94 80281F14 46064282 */ mul.s $f10, $f8, $f6
/* 7E2D98 80281F18 00000000 */ nop
/* 7E2D9C 80281F1C C7A40028 */ lwc1 $f4, 0x28($sp)
/* 7E2DA0 80281F20 46062182 */ mul.s $f6, $f4, $f6
/* 7E2DA4 80281F24 00000000 */ nop
/* 7E2DA8 80281F28 3C0141A0 */ lui $at, 0x41a0
/* 7E2DAC 80281F2C 44810000 */ mtc1 $at, $f0
/* 7E2DB0 80281F30 00000000 */ nop
/* 7E2DB4 80281F34 46002102 */ mul.s $f4, $f4, $f0
/* 7E2DB8 80281F38 00000000 */ nop
/* 7E2DBC 80281F3C 46004202 */ mul.s $f8, $f8, $f0
/* 7E2DC0 80281F40 00000000 */ nop
/* 7E2DC4 80281F44 C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2DC8 80281F48 460A1300 */ add.s $f12, $f2, $f10
/* 7E2DCC 80281F4C 460A1081 */ sub.s $f2, $f2, $f10
/* 7E2DD0 80281F50 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2DD4 80281F54 46060280 */ add.s $f10, $f0, $f6
/* 7E2DD8 80281F58 46060001 */ sub.s $f0, $f0, $f6
/* 7E2DDC 80281F5C 46041081 */ sub.s $f2, $f2, $f4
/* 7E2DE0 80281F60 E64C000C */ swc1 $f12, 0xc($s2)
/* 7E2DE4 80281F64 46080001 */ sub.s $f0, $f0, $f8
/* 7E2DE8 80281F68 E64A0010 */ swc1 $f10, 0x10($s2)
/* 7E2DEC 80281F6C 080A086F */ j .L802821BC
/* 7E2DF0 80281F70 E6420014 */ swc1 $f2, 0x14($s2)
.L80281F74_7E2DF4:
/* 7E2DF4 80281F74 C7A80024 */ lwc1 $f8, 0x24($sp)
/* 7E2DF8 80281F78 3C0141F0 */ lui $at, 0x41f0
/* 7E2DFC 80281F7C 44813000 */ mtc1 $at, $f6
/* 7E2E00 80281F80 00000000 */ nop
/* 7E2E04 80281F84 46064282 */ mul.s $f10, $f8, $f6
/* 7E2E08 80281F88 00000000 */ nop
/* 7E2E0C 80281F8C C7A40028 */ lwc1 $f4, 0x28($sp)
/* 7E2E10 80281F90 46062182 */ mul.s $f6, $f4, $f6
/* 7E2E14 80281F94 00000000 */ nop
/* 7E2E18 80281F98 3C014270 */ lui $at, 0x4270
/* 7E2E1C 80281F9C 44811000 */ mtc1 $at, $f2
/* 7E2E20 80281FA0 00000000 */ nop
/* 7E2E24 80281FA4 46024302 */ mul.s $f12, $f8, $f2
/* 7E2E28 80281FA8 00000000 */ nop
/* 7E2E2C 80281FAC 3C0141A0 */ lui $at, 0x41a0
/* 7E2E30 80281FB0 44810000 */ mtc1 $at, $f0
/* 7E2E34 80281FB4 00000000 */ nop
/* 7E2E38 80281FB8 46002382 */ mul.s $f14, $f4, $f0
/* 7E2E3C 80281FBC 00000000 */ nop
/* 7E2E40 80281FC0 46022102 */ mul.s $f4, $f4, $f2
/* 7E2E44 80281FC4 00000000 */ nop
/* 7E2E48 80281FC8 46004202 */ mul.s $f8, $f8, $f0
/* 7E2E4C 80281FCC 00000000 */ nop
/* 7E2E50 80281FD0 C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2E54 80281FD4 460A1280 */ add.s $f10, $f2, $f10
/* 7E2E58 80281FD8 460C1081 */ sub.s $f2, $f2, $f12
/* 7E2E5C 80281FDC C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2E60 80281FE0 46060180 */ add.s $f6, $f0, $f6
/* 7E2E64 80281FE4 46040001 */ sub.s $f0, $f0, $f4
/* 7E2E68 80281FE8 460E1081 */ sub.s $f2, $f2, $f14
/* 7E2E6C 80281FEC E64A000C */ swc1 $f10, 0xc($s2)
/* 7E2E70 80281FF0 46080001 */ sub.s $f0, $f0, $f8
/* 7E2E74 80281FF4 E6460010 */ swc1 $f6, 0x10($s2)
/* 7E2E78 80281FF8 080A086F */ j .L802821BC
/* 7E2E7C 80281FFC E6420014 */ swc1 $f2, 0x14($s2)
.L80282000_7E2E80:
/* 7E2E80 80282000 C7AA0024 */ lwc1 $f10, 0x24($sp)
/* 7E2E84 80282004 3C0141F0 */ lui $at, 0x41f0
/* 7E2E88 80282008 44811000 */ mtc1 $at, $f2
/* 7E2E8C 8028200C 00000000 */ nop
/* 7E2E90 80282010 46025302 */ mul.s $f12, $f10, $f2
/* 7E2E94 80282014 00000000 */ nop
/* 7E2E98 80282018 C7A60028 */ lwc1 $f6, 0x28($sp)
/* 7E2E9C 8028201C 3C0141A0 */ lui $at, 0x41a0
/* 7E2EA0 80282020 44810000 */ mtc1 $at, $f0
/* 7E2EA4 80282024 00000000 */ nop
/* 7E2EA8 80282028 46003102 */ mul.s $f4, $f6, $f0
/* 7E2EAC 8028202C 00000000 */ nop
/* 7E2EB0 80282030 46023182 */ mul.s $f6, $f6, $f2
/* 7E2EB4 80282034 00000000 */ nop
/* 7E2EB8 80282038 46005282 */ mul.s $f10, $f10, $f0
/* 7E2EBC 8028203C 00000000 */ nop
/* 7E2EC0 80282040 C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2EC4 80282044 460C1200 */ add.s $f8, $f2, $f12
/* 7E2EC8 80282048 460C1081 */ sub.s $f2, $f2, $f12
/* 7E2ECC 8028204C 46044200 */ add.s $f8, $f8, $f4
/* 7E2ED0 80282050 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2ED4 80282054 46060100 */ add.s $f4, $f0, $f6
/* 7E2ED8 80282058 46060001 */ sub.s $f0, $f0, $f6
/* 7E2EDC 8028205C E6420014 */ swc1 $f2, 0x14($s2)
/* 7E2EE0 80282060 460A2101 */ sub.s $f4, $f4, $f10
.L80282064:
/* 7E2EE4 80282064 E6400018 */ swc1 $f0, 0x18($s2)
/* 7E2EE8 80282068 E648000C */ swc1 $f8, 0xc($s2)
/* 7E2EEC 8028206C 080A0870 */ j .L802821C0
/* 7E2EF0 80282070 E6440010 */ swc1 $f4, 0x10($s2)
.L80282074_7E2EF4:
/* 7E2EF4 80282074 C7A80024 */ lwc1 $f8, 0x24($sp)
/* 7E2EF8 80282078 3C014270 */ lui $at, 0x4270
/* 7E2EFC 8028207C 44812000 */ mtc1 $at, $f4
/* 7E2F00 80282080 00000000 */ nop
/* 7E2F04 80282084 46044302 */ mul.s $f12, $f8, $f4
/* 7E2F08 80282088 00000000 */ nop
/* 7E2F0C 8028208C C7A60028 */ lwc1 $f6, 0x28($sp)
/* 7E2F10 80282090 3C0141A0 */ lui $at, 0x41a0
/* 7E2F14 80282094 44815000 */ mtc1 $at, $f10
/* 7E2F18 80282098 00000000 */ nop
/* 7E2F1C 8028209C 460A3382 */ mul.s $f14, $f6, $f10
/* 7E2F20 802820A0 00000000 */ nop
/* 7E2F24 802820A4 46043102 */ mul.s $f4, $f6, $f4
/* 7E2F28 802820A8 00000000 */ nop
/* 7E2F2C 802820AC 460A4282 */ mul.s $f10, $f8, $f10
/* 7E2F30 802820B0 00000000 */ nop
/* 7E2F34 802820B4 3C0141F0 */ lui $at, 0x41f0
/* 7E2F38 802820B8 44810000 */ mtc1 $at, $f0
/* 7E2F3C 802820BC 00000000 */ nop
/* 7E2F40 802820C0 46004202 */ mul.s $f8, $f8, $f0
/* 7E2F44 802820C4 00000000 */ nop
/* 7E2F48 802820C8 46003182 */ mul.s $f6, $f6, $f0
/* 7E2F4C 802820CC 00000000 */ nop
/* 7E2F50 802820D0 C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2F54 802820D4 460C1300 */ add.s $f12, $f2, $f12
/* 7E2F58 802820D8 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2F5C 802820DC 46040100 */ add.s $f4, $f0, $f4
/* 7E2F60 802820E0 46081081 */ sub.s $f2, $f2, $f8
/* 7E2F64 802820E4 46060001 */ sub.s $f0, $f0, $f6
/* 7E2F68 802820E8 460E6300 */ add.s $f12, $f12, $f14
/* 7E2F6C 802820EC E6420014 */ swc1 $f2, 0x14($s2)
/* 7E2F70 802820F0 460A2101 */ sub.s $f4, $f4, $f10
.L802820F4:
/* 7E2F74 802820F4 E6400018 */ swc1 $f0, 0x18($s2)
/* 7E2F78 802820F8 E64C000C */ swc1 $f12, 0xc($s2)
/* 7E2F7C 802820FC 080A0870 */ j .L802821C0
/* 7E2F80 80282100 E6440010 */ swc1 $f4, 0x10($s2)
.L80282104_7E2F84:
/* 7E2F84 80282104 C7A80024 */ lwc1 $f8, 0x24($sp)
/* 7E2F88 80282108 3C0141F0 */ lui $at, 0x41f0
/* 7E2F8C 8028210C 44813000 */ mtc1 $at, $f6
/* 7E2F90 80282110 00000000 */ nop
/* 7E2F94 80282114 46064282 */ mul.s $f10, $f8, $f6
/* 7E2F98 80282118 00000000 */ nop
/* 7E2F9C 8028211C C7A40028 */ lwc1 $f4, 0x28($sp)
/* 7E2FA0 80282120 46062182 */ mul.s $f6, $f4, $f6
/* 7E2FA4 80282124 00000000 */ nop
/* 7E2FA8 80282128 3C0141A0 */ lui $at, 0x41a0
/* 7E2FAC 8028212C 44810000 */ mtc1 $at, $f0
/* 7E2FB0 80282130 00000000 */ nop
/* 7E2FB4 80282134 46002102 */ mul.s $f4, $f4, $f0
/* 7E2FB8 80282138 00000000 */ nop
/* 7E2FBC 8028213C 46004202 */ mul.s $f8, $f8, $f0
/* 7E2FC0 80282140 00000000 */ nop
/* 7E2FC4 80282144 C7A20018 */ lwc1 $f2, 0x18($sp)
/* 7E2FC8 80282148 460A1300 */ add.s $f12, $f2, $f10
/* 7E2FCC 8028214C 460A1081 */ sub.s $f2, $f2, $f10
/* 7E2FD0 80282150 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E2FD4 80282154 46060280 */ add.s $f10, $f0, $f6
/* 7E2FD8 80282158 46060001 */ sub.s $f0, $f0, $f6
/* 7E2FDC 8028215C 46041080 */ add.s $f2, $f2, $f4
/* 7E2FE0 80282160 E64C000C */ swc1 $f12, 0xc($s2)
/* 7E2FE4 80282164 46080000 */ add.s $f0, $f0, $f8
/* 7E2FE8 80282168 E64A0010 */ swc1 $f10, 0x10($s2)
/* 7E2FEC 8028216C 080A086F */ j .L802821BC
/* 7E2FF0 80282170 E6420014 */ swc1 $f2, 0x14($s2)
.L80282174_7E2FF4:
/* 7E2FF4 80282174 C7A60024 */ lwc1 $f6, 0x24($sp)
/* 7E2FF8 80282178 3C0141F0 */ lui $at, 0x41f0
/* 7E2FFC 8028217C 44810000 */ mtc1 $at, $f0
/* 7E3000 80282180 00000000 */ nop
/* 7E3004 80282184 46003182 */ mul.s $f6, $f6, $f0
/* 7E3008 80282188 00000000 */ nop
/* 7E300C 8028218C C7A20028 */ lwc1 $f2, 0x28($sp)
/* 7E3010 80282190 46001082 */ mul.s $f2, $f2, $f0
/* 7E3014 80282194 00000000 */ nop
/* 7E3018 80282198 C7A40018 */ lwc1 $f4, 0x18($sp)
/* 7E301C 8028219C 46062200 */ add.s $f8, $f4, $f6
/* 7E3020 802821A0 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E3024 802821A4 46020280 */ add.s $f10, $f0, $f2
/* 7E3028 802821A8 46062101 */ sub.s $f4, $f4, $f6
/* 7E302C 802821AC 46020001 */ sub.s $f0, $f0, $f2
/* 7E3030 802821B0 E648000C */ swc1 $f8, 0xc($s2)
/* 7E3034 802821B4 E64A0010 */ swc1 $f10, 0x10($s2)
/* 7E3038 802821B8 E6440014 */ swc1 $f4, 0x14($s2)
.L802821BC:
/* 7E303C 802821BC E6400018 */ swc1 $f0, 0x18($s2)
.L802821C0:
/* 7E3040 802821C0 3C048028 */ lui $a0, %hi(D_802847D4_7E5654)
/* 7E3044 802821C4 248447D4 */ addiu $a0, $a0, %lo(D_802847D4_7E5654)
/* 7E3048 802821C8 3C02800B */ lui $v0, %hi(gCameras)
/* 7E304C 802821CC 24421D80 */ addiu $v0, $v0, %lo(gCameras)
/* 7E3050 802821D0 C6400014 */ lwc1 $f0, 0x14($s2)
/* 7E3054 802821D4 C6420018 */ lwc1 $f2, 0x18($s2)
/* 7E3058 802821D8 C644000C */ lwc1 $f4, 0xc($s2)
/* 7E305C 802821DC C6460010 */ lwc1 $f6, 0x10($s2)
/* 7E3060 802821E0 8FA8002C */ lw $t0, 0x2c($sp)
/* 7E3064 802821E4 24050100 */ addiu $a1, $zero, 0x100
/* 7E3068 802821E8 AE48002C */ sw $t0, 0x2c($s2)
/* 7E306C 802821EC AE5E0030 */ sw $fp, 0x30($s2)
/* 7E3070 802821F0 AE550034 */ sw $s5, 0x34($s2)
/* 7E3074 802821F4 AE570038 */ sw $s7, 0x38($s2)
/* 7E3078 802821F8 E640001C */ swc1 $f0, 0x1c($s2)
/* 7E307C 802821FC E6420020 */ swc1 $f2, 0x20($s2)
/* 7E3080 80282200 E6440024 */ swc1 $f4, 0x24($s2)
/* 7E3084 80282204 E6460028 */ swc1 $f6, 0x28($s2)
/* 7E3088 80282208 8443002C */ lh $v1, 0x2c($v0)
/* 7E308C 8028220C 0280302D */ daddu $a2, $s4, $zero
/* 7E3090 80282210 AE430040 */ sw $v1, 0x40($s2)
/* 7E3094 80282214 8443002E */ lh $v1, 0x2e($v0)
/* 7E3098 80282218 0000382D */ daddu $a3, $zero, $zero
/* 7E309C 8028221C AE430044 */ sw $v1, 0x44($s2)
/* 7E30A0 80282220 84420030 */ lh $v0, 0x30($v0)
/* 7E30A4 80282224 24100003 */ addiu $s0, $zero, 3
/* 7E30A8 80282228 AE420048 */ sw $v0, 0x48($s2)
/* 7E30AC 8028222C AFB20010 */ sw $s2, 0x10($sp)
/* 7E30B0 80282230 0C0B10AA */ jal bind_trigger_1
/* 7E30B4 80282234 AFB00014 */ sw $s0, 0x14($sp)
/* 7E30B8 80282238 32620800 */ andi $v0, $s3, 0x800
/* 7E30BC 8028223C 10400005 */ beqz $v0, .L80282254
/* 7E30C0 80282240 24050040 */ addiu $a1, $zero, 0x40
/* 7E30C4 80282244 3C048028 */ lui $a0, %hi(D_80284F80_7E5E00)
/* 7E30C8 80282248 24844F80 */ addiu $a0, $a0, %lo(D_80284F80_7E5E00)
/* 7E30CC 8028224C 080A0899 */ j .L80282264
/* 7E30D0 80282250 02C0302D */ daddu $a2, $s6, $zero
.L80282254:
/* 7E30D4 80282254 3C048028 */ lui $a0, %hi(D_80284F80_7E5E00)
/* 7E30D8 80282258 24844F80 */ addiu $a0, $a0, %lo(D_80284F80_7E5E00)
/* 7E30DC 8028225C 24050100 */ addiu $a1, $zero, 0x100
/* 7E30E0 80282260 02C0302D */ daddu $a2, $s6, $zero
.L80282264:
/* 7E30E4 80282264 24070001 */ addiu $a3, $zero, 1
/* 7E30E8 80282268 AFB20010 */ sw $s2, 0x10($sp)
/* 7E30EC 8028226C 0C0B10AA */ jal bind_trigger_1
/* 7E30F0 80282270 AFB00014 */ sw $s0, 0x14($sp)
/* 7E30F4 80282274 8FBF0054 */ lw $ra, 0x54($sp)
/* 7E30F8 80282278 8FBE0050 */ lw $fp, 0x50($sp)
/* 7E30FC 8028227C 8FB7004C */ lw $s7, 0x4c($sp)
/* 7E3100 80282280 8FB60048 */ lw $s6, 0x48($sp)
/* 7E3104 80282284 8FB50044 */ lw $s5, 0x44($sp)
/* 7E3108 80282288 8FB40040 */ lw $s4, 0x40($sp)
/* 7E310C 8028228C 8FB3003C */ lw $s3, 0x3c($sp)
/* 7E3110 80282290 8FB20038 */ lw $s2, 0x38($sp)
/* 7E3114 80282294 8FB10034 */ lw $s1, 0x34($sp)
/* 7E3118 80282298 8FB00030 */ lw $s0, 0x30($sp)
/* 7E311C 8028229C 24020002 */ addiu $v0, $zero, 2
/* 7E3120 802822A0 03E00008 */ jr $ra
/* 7E3124 802822A4 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,31 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802822A8
/* 7E3128 802822A8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 7E312C 802822AC AFBF002C */ sw $ra, 0x2c($sp)
/* 7E3130 802822B0 AFB00028 */ sw $s0, 0x28($sp)
/* 7E3134 802822B4 8C82000C */ lw $v0, 0xc($a0)
/* 7E3138 802822B8 8C450000 */ lw $a1, ($v0)
/* 7E313C 802822BC 0C0B1EAF */ jal evt_get_variable
/* 7E3140 802822C0 8C900074 */ lw $s0, 0x74($a0)
/* 7E3144 802822C4 27A50018 */ addiu $a1, $sp, 0x18
/* 7E3148 802822C8 27A6001C */ addiu $a2, $sp, 0x1c
/* 7E314C 802822CC 27A70020 */ addiu $a3, $sp, 0x20
/* 7E3150 802822D0 8E040060 */ lw $a0, 0x60($s0)
/* 7E3154 802822D4 0C016F84 */ jal get_collider_center
/* 7E3158 802822D8 0040802D */ daddu $s0, $v0, $zero
/* 7E315C 802822DC 0200202D */ daddu $a0, $s0, $zero
/* 7E3160 802822E0 C7A00018 */ lwc1 $f0, 0x18($sp)
/* 7E3164 802822E4 C7A2001C */ lwc1 $f2, 0x1c($sp)
/* 7E3168 802822E8 44060000 */ mfc1 $a2, $f0
/* 7E316C 802822EC 44071000 */ mfc1 $a3, $f2
/* 7E3170 802822F0 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 7E3174 802822F4 0000282D */ daddu $a1, $zero, $zero
/* 7E3178 802822F8 0C052757 */ jal sfx_play_sound_at_position
/* 7E317C 802822FC E7A00010 */ swc1 $f0, 0x10($sp)
/* 7E3180 80282300 8FBF002C */ lw $ra, 0x2c($sp)
/* 7E3184 80282304 8FB00028 */ lw $s0, 0x28($sp)
/* 7E3188 80282308 24020002 */ addiu $v0, $zero, 2
/* 7E318C 8028230C 03E00008 */ jr $ra
/* 7E3190 80282310 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,21 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8028236C
/* 7E31EC 8028236C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 7E31F0 80282370 AFBF0014 */ sw $ra, 0x14($sp)
/* 7E31F4 80282374 AFB00010 */ sw $s0, 0x10($sp)
/* 7E31F8 80282378 8C82000C */ lw $v0, 0xc($a0)
/* 7E31FC 8028237C 8C450000 */ lw $a1, ($v0)
/* 7E3200 80282380 0C0B1EAF */ jal evt_get_variable
/* 7E3204 80282384 8C900074 */ lw $s0, 0x74($a0)
/* 7E3208 80282388 00021080 */ sll $v0, $v0, 2
/* 7E320C 8028238C 02028021 */ addu $s0, $s0, $v0
/* 7E3210 80282390 0C0B1059 */ jal does_script_exist
/* 7E3214 80282394 8E04004C */ lw $a0, 0x4c($s0)
/* 7E3218 80282398 2C420001 */ sltiu $v0, $v0, 1
/* 7E321C 8028239C 8FBF0014 */ lw $ra, 0x14($sp)
/* 7E3220 802823A0 8FB00010 */ lw $s0, 0x10($sp)
/* 7E3224 802823A4 00021040 */ sll $v0, $v0, 1
/* 7E3228 802823A8 03E00008 */ jr $ra
/* 7E322C 802823AC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,29 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802823B0
/* 7E3230 802823B0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7E3234 802823B4 AFB00010 */ sw $s0, 0x10($sp)
/* 7E3238 802823B8 0080802D */ daddu $s0, $a0, $zero
/* 7E323C 802823BC AFBF001C */ sw $ra, 0x1c($sp)
/* 7E3240 802823C0 AFB20018 */ sw $s2, 0x18($sp)
/* 7E3244 802823C4 AFB10014 */ sw $s1, 0x14($sp)
/* 7E3248 802823C8 8E11000C */ lw $s1, 0xc($s0)
/* 7E324C 802823CC 8E120074 */ lw $s2, 0x74($s0)
/* 7E3250 802823D0 8E250000 */ lw $a1, ($s1)
/* 7E3254 802823D4 0C0B1EAF */ jal evt_get_variable
/* 7E3258 802823D8 26310004 */ addiu $s1, $s1, 4
/* 7E325C 802823DC 0200202D */ daddu $a0, $s0, $zero
/* 7E3260 802823E0 8E250000 */ lw $a1, ($s1)
/* 7E3264 802823E4 0C0B1EAF */ jal evt_get_variable
/* 7E3268 802823E8 0040802D */ daddu $s0, $v0, $zero
/* 7E326C 802823EC 00108080 */ sll $s0, $s0, 2
/* 7E3270 802823F0 02509021 */ addu $s2, $s2, $s0
/* 7E3274 802823F4 AE42004C */ sw $v0, 0x4c($s2)
/* 7E3278 802823F8 8FBF001C */ lw $ra, 0x1c($sp)
/* 7E327C 802823FC 8FB20018 */ lw $s2, 0x18($sp)
/* 7E3280 80282400 8FB10014 */ lw $s1, 0x14($sp)
/* 7E3284 80282404 8FB00010 */ lw $s0, 0x10($sp)
/* 7E3288 80282408 24020002 */ addiu $v0, $zero, 2
/* 7E328C 8028240C 03E00008 */ jr $ra
/* 7E3290 80282410 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,105 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80282414
/* 7E3294 80282414 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7E3298 80282418 AFB10014 */ sw $s1, 0x14($sp)
/* 7E329C 8028241C 0080882D */ daddu $s1, $a0, $zero
/* 7E32A0 80282420 AFBF001C */ sw $ra, 0x1c($sp)
/* 7E32A4 80282424 AFB20018 */ sw $s2, 0x18($sp)
/* 7E32A8 80282428 AFB00010 */ sw $s0, 0x10($sp)
/* 7E32AC 8028242C 10A0000A */ beqz $a1, .L80282458
/* 7E32B0 80282430 8E320088 */ lw $s2, 0x88($s1)
/* 7E32B4 80282434 8E220084 */ lw $v0, 0x84($s1)
/* 7E32B8 80282438 54400007 */ bnel $v0, $zero, .L80282458
/* 7E32BC 8028243C AE200074 */ sw $zero, 0x74($s1)
/* 7E32C0 80282440 962400C2 */ lhu $a0, 0xc2($s1)
/* 7E32C4 80282444 2405FFFF */ addiu $a1, $zero, -1
/* 7E32C8 80282448 24060001 */ addiu $a2, $zero, 1
/* 7E32CC 8028244C 0C046E54 */ jal func_8011B950
/* 7E32D0 80282450 00C0382D */ daddu $a3, $a2, $zero
/* 7E32D4 80282454 AE200074 */ sw $zero, 0x74($s1)
.L80282458:
/* 7E32D8 80282458 8E220074 */ lw $v0, 0x74($s1)
/* 7E32DC 8028245C 24420020 */ addiu $v0, $v0, 0x20
/* 7E32E0 80282460 AE220074 */ sw $v0, 0x74($s1)
/* 7E32E4 80282464 28420100 */ slti $v0, $v0, 0x100
/* 7E32E8 80282468 14400002 */ bnez $v0, .L80282474
/* 7E32EC 8028246C 240200FF */ addiu $v0, $zero, 0xff
/* 7E32F0 80282470 AE220074 */ sw $v0, 0x74($s1)
.L80282474:
/* 7E32F4 80282474 8E220084 */ lw $v0, 0x84($s1)
/* 7E32F8 80282478 14400004 */ bnez $v0, .L8028248C
/* 7E32FC 8028247C 240200FF */ addiu $v0, $zero, 0xff
/* 7E3300 80282480 8E300074 */ lw $s0, 0x74($s1)
/* 7E3304 80282484 080A0926 */ j .L80282498
/* 7E3308 80282488 0000202D */ daddu $a0, $zero, $zero
.L8028248C:
/* 7E330C 8028248C 8E230074 */ lw $v1, 0x74($s1)
/* 7E3310 80282490 00438023 */ subu $s0, $v0, $v1
/* 7E3314 80282494 0000202D */ daddu $a0, $zero, $zero
.L80282498:
/* 7E3318 80282498 0080282D */ daddu $a1, $a0, $zero
/* 7E331C 8028249C 0080302D */ daddu $a2, $a0, $zero
/* 7E3320 802824A0 0C046F97 */ jal set_background_color_blend
/* 7E3324 802824A4 320700FF */ andi $a3, $s0, 0xff
/* 7E3328 802824A8 240600FF */ addiu $a2, $zero, 0xff
/* 7E332C 802824AC 8E420040 */ lw $v0, 0x40($s2)
/* 7E3330 802824B0 00D03023 */ subu $a2, $a2, $s0
/* 7E3334 802824B4 00460018 */ mult $v0, $a2
/* 7E3338 802824B8 00001012 */ mflo $v0
/* 7E333C 802824BC 8E450044 */ lw $a1, 0x44($s2)
/* 7E3340 802824C0 00000000 */ nop
/* 7E3344 802824C4 00A60018 */ mult $a1, $a2
/* 7E3348 802824C8 00002812 */ mflo $a1
/* 7E334C 802824CC 3C078080 */ lui $a3, 0x8080
/* 7E3350 802824D0 34E78081 */ ori $a3, $a3, 0x8081
/* 7E3354 802824D4 00470018 */ mult $v0, $a3
/* 7E3358 802824D8 00001810 */ mfhi $v1
/* 7E335C 802824DC 00000000 */ nop
/* 7E3360 802824E0 00000000 */ nop
/* 7E3364 802824E4 00A70018 */ mult $a1, $a3
/* 7E3368 802824E8 00004010 */ mfhi $t0
/* 7E336C 802824EC 8E440048 */ lw $a0, 0x48($s2)
/* 7E3370 802824F0 00621821 */ addu $v1, $v1, $v0
/* 7E3374 802824F4 00860018 */ mult $a0, $a2
/* 7E3378 802824F8 000319C3 */ sra $v1, $v1, 7
/* 7E337C 802824FC 000217C3 */ sra $v0, $v0, 0x1f
/* 7E3380 80282500 00621823 */ subu $v1, $v1, $v0
/* 7E3384 80282504 3C06800B */ lui $a2, %hi(gCameras)
/* 7E3388 80282508 24C61D80 */ addiu $a2, $a2, %lo(gCameras)
/* 7E338C 8028250C 00002012 */ mflo $a0
/* 7E3390 80282510 01051021 */ addu $v0, $t0, $a1
/* 7E3394 80282514 000211C3 */ sra $v0, $v0, 7
/* 7E3398 80282518 00870018 */ mult $a0, $a3
/* 7E339C 8028251C 00052FC3 */ sra $a1, $a1, 0x1f
/* 7E33A0 80282520 00451023 */ subu $v0, $v0, $a1
/* 7E33A4 80282524 A4C3002C */ sh $v1, 0x2c($a2)
/* 7E33A8 80282528 A4C2002E */ sh $v0, 0x2e($a2)
/* 7E33AC 8028252C 00001810 */ mfhi $v1
/* 7E33B0 80282530 00641021 */ addu $v0, $v1, $a0
/* 7E33B4 80282534 000211C3 */ sra $v0, $v0, 7
/* 7E33B8 80282538 000427C3 */ sra $a0, $a0, 0x1f
/* 7E33BC 8028253C 00441023 */ subu $v0, $v0, $a0
/* 7E33C0 80282540 A4C20030 */ sh $v0, 0x30($a2)
/* 7E33C4 80282544 8E220074 */ lw $v0, 0x74($s1)
/* 7E33C8 80282548 284200FF */ slti $v0, $v0, 0xff
/* 7E33CC 8028254C 1440000B */ bnez $v0, .L8028257C
/* 7E33D0 80282550 0000102D */ daddu $v0, $zero, $zero
/* 7E33D4 80282554 8E230084 */ lw $v1, 0x84($s1)
/* 7E33D8 80282558 24020003 */ addiu $v0, $zero, 3
/* 7E33DC 8028255C 14620007 */ bne $v1, $v0, .L8028257C
/* 7E33E0 80282560 24020002 */ addiu $v0, $zero, 2
/* 7E33E4 80282564 962400C2 */ lhu $a0, 0xc2($s1)
/* 7E33E8 80282568 2405FFFF */ addiu $a1, $zero, -1
/* 7E33EC 8028256C 0000302D */ daddu $a2, $zero, $zero
/* 7E33F0 80282570 0C046E54 */ jal func_8011B950
/* 7E33F4 80282574 24070001 */ addiu $a3, $zero, 1
/* 7E33F8 80282578 24020002 */ addiu $v0, $zero, 2
.L8028257C:
/* 7E33FC 8028257C 8FBF001C */ lw $ra, 0x1c($sp)
/* 7E3400 80282580 8FB20018 */ lw $s2, 0x18($sp)
/* 7E3404 80282584 8FB10014 */ lw $s1, 0x14($sp)
/* 7E3408 80282588 8FB00010 */ lw $s0, 0x10($sp)
/* 7E340C 8028258C 03E00008 */ jr $ra
/* 7E3410 80282590 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,32 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80282594
/* 7E3414 80282594 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 7E3418 80282598 AFBF0010 */ sw $ra, 0x10($sp)
/* 7E341C 8028259C 8C82000C */ lw $v0, 0xc($a0)
/* 7E3420 802825A0 0C0B210B */ jal evt_get_float_variable
/* 7E3424 802825A4 8C450000 */ lw $a1, ($v0)
/* 7E3428 802825A8 46000086 */ mov.s $f2, $f0
/* 7E342C 802825AC 3C02800B */ lui $v0, %hi(gCameras)
/* 7E3430 802825B0 24421D80 */ addiu $v0, $v0, %lo(gCameras)
/* 7E3434 802825B4 44800000 */ mtc1 $zero, $f0
/* 7E3438 802825B8 00000000 */ nop
/* 7E343C 802825BC 4602003E */ c.le.s $f0, $f2
/* 7E3440 802825C0 00000000 */ nop
/* 7E3444 802825C4 45000006 */ bc1f .L802825E0
/* 7E3448 802825C8 0040182D */ daddu $v1, $v0, $zero
/* 7E344C 802825CC C4400490 */ lwc1 $f0, 0x490($v0)
/* 7E3450 802825D0 E4420490 */ swc1 $f2, 0x490($v0)
/* 7E3454 802825D4 3C018028 */ lui $at, 0x8028
/* 7E3458 802825D8 080A097B */ j .L802825EC
/* 7E345C 802825DC E4206540 */ swc1 $f0, 0x6540($at)
.L802825E0:
/* 7E3460 802825E0 3C018028 */ lui $at, 0x8028
/* 7E3464 802825E4 C4206540 */ lwc1 $f0, 0x6540($at)
/* 7E3468 802825E8 E4600490 */ swc1 $f0, 0x490($v1)
.L802825EC:
/* 7E346C 802825EC 8FBF0010 */ lw $ra, 0x10($sp)
/* 7E3470 802825F0 24020002 */ addiu $v0, $zero, 2
/* 7E3474 802825F4 03E00008 */ jr $ra
/* 7E3478 802825F8 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,60 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80282634
/* 7E34B4 80282634 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 7E34B8 80282638 AFBF0020 */ sw $ra, 0x20($sp)
/* 7E34BC 8028263C AFB3001C */ sw $s3, 0x1c($sp)
/* 7E34C0 80282640 AFB20018 */ sw $s2, 0x18($sp)
/* 7E34C4 80282644 AFB10014 */ sw $s1, 0x14($sp)
/* 7E34C8 80282648 AFB00010 */ sw $s0, 0x10($sp)
/* 7E34CC 8028264C 8C820074 */ lw $v0, 0x74($a0)
/* 7E34D0 80282650 8C51005C */ lw $s1, 0x5c($v0)
/* 7E34D4 80282654 12200022 */ beqz $s1, .L802826E0
/* 7E34D8 80282658 0000802D */ daddu $s0, $zero, $zero
/* 7E34DC 8028265C 2413FFFC */ addiu $s3, $zero, -4
/* 7E34E0 80282660 3C120080 */ lui $s2, 0x80
.L80282664:
/* 7E34E4 80282664 0C00E2B7 */ jal get_npc_by_index
/* 7E34E8 80282668 0200202D */ daddu $a0, $s0, $zero
/* 7E34EC 8028266C 0040182D */ daddu $v1, $v0, $zero
/* 7E34F0 80282670 50600009 */ beql $v1, $zero, .L80282698
/* 7E34F4 80282674 26100001 */ addiu $s0, $s0, 1
/* 7E34F8 80282678 8C640000 */ lw $a0, ($v1)
/* 7E34FC 8028267C 10800006 */ beqz $a0, .L80282698
/* 7E3500 80282680 26100001 */ addiu $s0, $s0, 1
/* 7E3504 80282684 806200A4 */ lb $v0, 0xa4($v1)
/* 7E3508 80282688 10530003 */ beq $v0, $s3, .L80282698
/* 7E350C 8028268C 00000000 */ nop
/* 7E3510 80282690 00921025 */ or $v0, $a0, $s2
/* 7E3514 80282694 AC620000 */ sw $v0, ($v1)
.L80282698:
/* 7E3518 80282698 2A020040 */ slti $v0, $s0, 0x40
/* 7E351C 8028269C 1440FFF1 */ bnez $v0, .L80282664
/* 7E3520 802826A0 00000000 */ nop
/* 7E3524 802826A4 2412FFFF */ addiu $s2, $zero, -1
/* 7E3528 802826A8 3C10FF7F */ lui $s0, 0xff7f
/* 7E352C 802826AC 3610FFFF */ ori $s0, $s0, 0xffff
.L802826B0:
/* 7E3530 802826B0 8E240000 */ lw $a0, ($s1)
/* 7E3534 802826B4 1092000B */ beq $a0, $s2, .L802826E4
/* 7E3538 802826B8 24020002 */ addiu $v0, $zero, 2
/* 7E353C 802826BC 0C00EAD2 */ jal get_npc_safe
/* 7E3540 802826C0 26310004 */ addiu $s1, $s1, 4
/* 7E3544 802826C4 0040182D */ daddu $v1, $v0, $zero
/* 7E3548 802826C8 1060FFF9 */ beqz $v1, .L802826B0
/* 7E354C 802826CC 00000000 */ nop
/* 7E3550 802826D0 8C620000 */ lw $v0, ($v1)
/* 7E3554 802826D4 00501024 */ and $v0, $v0, $s0
/* 7E3558 802826D8 080A09AC */ j .L802826B0
/* 7E355C 802826DC AC620000 */ sw $v0, ($v1)
.L802826E0:
/* 7E3560 802826E0 24020002 */ addiu $v0, $zero, 2
.L802826E4:
/* 7E3564 802826E4 8FBF0020 */ lw $ra, 0x20($sp)
/* 7E3568 802826E8 8FB3001C */ lw $s3, 0x1c($sp)
/* 7E356C 802826EC 8FB20018 */ lw $s2, 0x18($sp)
/* 7E3570 802826F0 8FB10014 */ lw $s1, 0x14($sp)
/* 7E3574 802826F4 8FB00010 */ lw $s0, 0x10($sp)
/* 7E3578 802826F8 03E00008 */ jr $ra
/* 7E357C 802826FC 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,36 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80282700
/* 7E3580 80282700 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7E3584 80282704 AFBF0018 */ sw $ra, 0x18($sp)
/* 7E3588 80282708 AFB10014 */ sw $s1, 0x14($sp)
/* 7E358C 8028270C AFB00010 */ sw $s0, 0x10($sp)
/* 7E3590 80282710 8C820074 */ lw $v0, 0x74($a0)
/* 7E3594 80282714 8C42005C */ lw $v0, 0x5c($v0)
/* 7E3598 80282718 10400010 */ beqz $v0, .L8028275C
/* 7E359C 8028271C 0000802D */ daddu $s0, $zero, $zero
/* 7E35A0 80282720 3C11FF7F */ lui $s1, 0xff7f
/* 7E35A4 80282724 3631FFFF */ ori $s1, $s1, 0xffff
.L80282728:
/* 7E35A8 80282728 0C00E2B7 */ jal get_npc_by_index
/* 7E35AC 8028272C 0200202D */ daddu $a0, $s0, $zero
/* 7E35B0 80282730 0040182D */ daddu $v1, $v0, $zero
/* 7E35B4 80282734 10600006 */ beqz $v1, .L80282750
/* 7E35B8 80282738 26100001 */ addiu $s0, $s0, 1
/* 7E35BC 8028273C 8C620000 */ lw $v0, ($v1)
/* 7E35C0 80282740 10400003 */ beqz $v0, .L80282750
/* 7E35C4 80282744 00000000 */ nop
/* 7E35C8 80282748 00511024 */ and $v0, $v0, $s1
/* 7E35CC 8028274C AC620000 */ sw $v0, ($v1)
.L80282750:
/* 7E35D0 80282750 2A020040 */ slti $v0, $s0, 0x40
/* 7E35D4 80282754 1440FFF4 */ bnez $v0, .L80282728
/* 7E35D8 80282758 00000000 */ nop
.L8028275C:
/* 7E35DC 8028275C 24020002 */ addiu $v0, $zero, 2
/* 7E35E0 80282760 8FBF0018 */ lw $ra, 0x18($sp)
/* 7E35E4 80282764 8FB10014 */ lw $s1, 0x14($sp)
/* 7E35E8 80282768 8FB00010 */ lw $s0, 0x10($sp)
/* 7E35EC 8028276C 03E00008 */ jr $ra
/* 7E35F0 80282770 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,133 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80282C40
/* 7E3AC0 80282C40 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 7E3AC4 80282C44 AFB30034 */ sw $s3, 0x34($sp)
/* 7E3AC8 80282C48 0080982D */ daddu $s3, $a0, $zero
/* 7E3ACC 80282C4C AFB00028 */ sw $s0, 0x28($sp)
/* 7E3AD0 80282C50 AFBF0038 */ sw $ra, 0x38($sp)
/* 7E3AD4 80282C54 AFB20030 */ sw $s2, 0x30($sp)
/* 7E3AD8 80282C58 AFB1002C */ sw $s1, 0x2c($sp)
/* 7E3ADC 80282C5C 8E6400B0 */ lw $a0, 0xb0($s3)
/* 7E3AE0 80282C60 8E7200AC */ lw $s2, 0xac($s3)
/* 7E3AE4 80282C64 0C04417A */ jal get_entity_by_index
/* 7E3AE8 80282C68 00A0802D */ daddu $s0, $a1, $zero
/* 7E3AEC 80282C6C 12000023 */ beqz $s0, .L80282CFC
/* 7E3AF0 80282C70 0040882D */ daddu $s1, $v0, $zero
/* 7E3AF4 80282C74 0000202D */ daddu $a0, $zero, $zero
/* 7E3AF8 80282C78 27A50018 */ addiu $a1, $sp, 0x18
/* 7E3AFC 80282C7C 27A20024 */ addiu $v0, $sp, 0x24
/* 7E3B00 80282C80 27A6001C */ addiu $a2, $sp, 0x1c
/* 7E3B04 80282C84 27A70020 */ addiu $a3, $sp, 0x20
/* 7E3B08 80282C88 AE600070 */ sw $zero, 0x70($s3)
/* 7E3B0C 80282C8C C620004C */ lwc1 $f0, 0x4c($s1)
/* 7E3B10 80282C90 3C01420C */ lui $at, 0x420c
/* 7E3B14 80282C94 44811000 */ mtc1 $at, $f2
/* 7E3B18 80282C98 4600020D */ trunc.w.s $f8, $f0
/* 7E3B1C 80282C9C E6680084 */ swc1 $f8, 0x84($s3)
/* 7E3B20 80282CA0 E7A20024 */ swc1 $f2, 0x24($sp)
/* 7E3B24 80282CA4 C6260048 */ lwc1 $f6, 0x48($s1)
/* 7E3B28 80282CA8 C620004C */ lwc1 $f0, 0x4c($s1)
/* 7E3B2C 80282CAC 3C0140A0 */ lui $at, 0x40a0
/* 7E3B30 80282CB0 44811000 */ mtc1 $at, $f2
/* 7E3B34 80282CB4 C6240050 */ lwc1 $f4, 0x50($s1)
/* 7E3B38 80282CB8 46020000 */ add.s $f0, $f0, $f2
/* 7E3B3C 80282CBC E7A60018 */ swc1 $f6, 0x18($sp)
/* 7E3B40 80282CC0 E7A40020 */ swc1 $f4, 0x20($sp)
/* 7E3B44 80282CC4 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 7E3B48 80282CC8 0C0372DF */ jal npc_raycast_down_sides
/* 7E3B4C 80282CCC AFA20010 */ sw $v0, 0x10($sp)
/* 7E3B50 80282CD0 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 7E3B54 80282CD4 4600120D */ trunc.w.s $f8, $f2
/* 7E3B58 80282CD8 10400008 */ beqz $v0, .L80282CFC
/* 7E3B5C 80282CDC E6680074 */ swc1 $f8, 0x74($s3)
/* 7E3B60 80282CE0 3C0140C0 */ lui $at, 0x40c0
/* 7E3B64 80282CE4 44810000 */ mtc1 $at, $f0
/* 7E3B68 80282CE8 00000000 */ nop
/* 7E3B6C 80282CEC 4600103E */ c.le.s $f2, $f0
/* 7E3B70 80282CF0 00000000 */ nop
/* 7E3B74 80282CF4 45010047 */ bc1t .L80282E14
/* 7E3B78 80282CF8 24020002 */ addiu $v0, $zero, 2
.L80282CFC:
/* 7E3B7C 80282CFC 8E420014 */ lw $v0, 0x14($s2)
/* 7E3B80 80282D00 10400019 */ beqz $v0, .L80282D68
/* 7E3B84 80282D04 0220202D */ daddu $a0, $s1, $zero
/* 7E3B88 80282D08 0040F809 */ jalr $v0
/* 7E3B8C 80282D0C 0260282D */ daddu $a1, $s3, $zero
/* 7E3B90 80282D10 10400040 */ beqz $v0, .L80282E14
/* 7E3B94 80282D14 0000102D */ daddu $v0, $zero, $zero
/* 7E3B98 80282D18 C6460008 */ lwc1 $f6, 8($s2)
/* 7E3B9C 80282D1C 468031A0 */ cvt.s.w $f6, $f6
/* 7E3BA0 80282D20 C6400010 */ lwc1 $f0, 0x10($s2)
/* 7E3BA4 80282D24 46800020 */ cvt.s.w $f0, $f0
/* 7E3BA8 80282D28 C6220050 */ lwc1 $f2, 0x50($s1)
/* 7E3BAC 80282D2C 3C0141C8 */ lui $at, 0x41c8
/* 7E3BB0 80282D30 44812000 */ mtc1 $at, $f4
/* 7E3BB4 80282D34 46001081 */ sub.s $f2, $f2, $f0
/* 7E3BB8 80282D38 C6200048 */ lwc1 $f0, 0x48($s1)
/* 7E3BBC 80282D3C 92420004 */ lbu $v0, 4($s2)
/* 7E3BC0 80282D40 46060001 */ sub.s $f0, $f0, $f6
/* 7E3BC4 80282D44 46041083 */ div.s $f2, $f2, $f4
/* 7E3BC8 80282D48 4600120D */ trunc.w.s $f8, $f2
/* 7E3BCC 80282D4C 44034000 */ mfc1 $v1, $f8
/* 7E3BD0 80282D50 00000000 */ nop
/* 7E3BD4 80282D54 00620018 */ mult $v1, $v0
/* 7E3BD8 80282D58 24020001 */ addiu $v0, $zero, 1
/* 7E3BDC 80282D5C 8E430000 */ lw $v1, ($s2)
/* 7E3BE0 80282D60 080A0B7D */ j .L80282DF4
/* 7E3BE4 80282D64 46040003 */ div.s $f0, $f0, $f4
.L80282D68:
/* 7E3BE8 80282D68 8E620070 */ lw $v0, 0x70($s3)
/* 7E3BEC 80282D6C 3C0141C8 */ lui $at, 0x41c8
/* 7E3BF0 80282D70 44813000 */ mtc1 $at, $f6
/* 7E3BF4 80282D74 00021080 */ sll $v0, $v0, 2
/* 7E3BF8 80282D78 3C018028 */ lui $at, %hi(D_80285640_7E64C0)
/* 7E3BFC 80282D7C 00220821 */ addu $at, $at, $v0
/* 7E3C00 80282D80 C4225640 */ lwc1 $f2, %lo(D_80285640_7E64C0)($at)
/* 7E3C04 80282D84 46061082 */ mul.s $f2, $f2, $f6
/* 7E3C08 80282D88 00000000 */ nop
/* 7E3C0C 80282D8C C6600084 */ lwc1 $f0, 0x84($s3)
/* 7E3C10 80282D90 46800020 */ cvt.s.w $f0, $f0
/* 7E3C14 80282D94 46020001 */ sub.s $f0, $f0, $f2
/* 7E3C18 80282D98 E620004C */ swc1 $f0, 0x4c($s1)
/* 7E3C1C 80282D9C 8E620070 */ lw $v0, 0x70($s3)
/* 7E3C20 80282DA0 2403000D */ addiu $v1, $zero, 0xd
/* 7E3C24 80282DA4 24420001 */ addiu $v0, $v0, 1
/* 7E3C28 80282DA8 14430019 */ bne $v0, $v1, .L80282E10
/* 7E3C2C 80282DAC AE620070 */ sw $v0, 0x70($s3)
/* 7E3C30 80282DB0 C6400010 */ lwc1 $f0, 0x10($s2)
/* 7E3C34 80282DB4 46800020 */ cvt.s.w $f0, $f0
/* 7E3C38 80282DB8 C6220050 */ lwc1 $f2, 0x50($s1)
/* 7E3C3C 80282DBC C6440008 */ lwc1 $f4, 8($s2)
/* 7E3C40 80282DC0 46802120 */ cvt.s.w $f4, $f4
/* 7E3C44 80282DC4 46001081 */ sub.s $f2, $f2, $f0
/* 7E3C48 80282DC8 C6200048 */ lwc1 $f0, 0x48($s1)
/* 7E3C4C 80282DCC 92420004 */ lbu $v0, 4($s2)
/* 7E3C50 80282DD0 46040001 */ sub.s $f0, $f0, $f4
/* 7E3C54 80282DD4 46061083 */ div.s $f2, $f2, $f6
/* 7E3C58 80282DD8 4600120D */ trunc.w.s $f8, $f2
/* 7E3C5C 80282DDC 44034000 */ mfc1 $v1, $f8
/* 7E3C60 80282DE0 00000000 */ nop
/* 7E3C64 80282DE4 00620018 */ mult $v1, $v0
/* 7E3C68 80282DE8 24020001 */ addiu $v0, $zero, 1
/* 7E3C6C 80282DEC 8E430000 */ lw $v1, ($s2)
/* 7E3C70 80282DF0 46060003 */ div.s $f0, $f0, $f6
.L80282DF4:
/* 7E3C74 80282DF4 4600020D */ trunc.w.s $f8, $f0
/* 7E3C78 80282DF8 44044000 */ mfc1 $a0, $f8
/* 7E3C7C 80282DFC 00004012 */ mflo $t0
/* 7E3C80 80282E00 00882021 */ addu $a0, $a0, $t0
/* 7E3C84 80282E04 00641821 */ addu $v1, $v1, $a0
/* 7E3C88 80282E08 080A0B85 */ j .L80282E14
/* 7E3C8C 80282E0C A0600000 */ sb $zero, ($v1)
.L80282E10:
/* 7E3C90 80282E10 0000102D */ daddu $v0, $zero, $zero
.L80282E14:
/* 7E3C94 80282E14 8FBF0038 */ lw $ra, 0x38($sp)
/* 7E3C98 80282E18 8FB30034 */ lw $s3, 0x34($sp)
/* 7E3C9C 80282E1C 8FB20030 */ lw $s2, 0x30($sp)
/* 7E3CA0 80282E20 8FB1002C */ lw $s1, 0x2c($sp)
/* 7E3CA4 80282E24 8FB00028 */ lw $s0, 0x28($sp)
/* 7E3CA8 80282E28 03E00008 */ jr $ra
/* 7E3CAC 80282E2C 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -1,65 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80283080
/* 7E3F00 80283080 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7E3F04 80283084 AFB00010 */ sw $s0, 0x10($sp)
/* 7E3F08 80283088 0080802D */ daddu $s0, $a0, $zero
/* 7E3F0C 8028308C AFBF0018 */ sw $ra, 0x18($sp)
/* 7E3F10 80283090 AFB10014 */ sw $s1, 0x14($sp)
/* 7E3F14 80283094 8E0400B0 */ lw $a0, 0xb0($s0)
/* 7E3F18 80283098 0C04417A */ jal get_entity_by_index
/* 7E3F1C 8028309C 8E1100AC */ lw $s1, 0xac($s0)
/* 7E3F20 802830A0 3C0551EB */ lui $a1, 0x51eb
/* 7E3F24 802830A4 34A5851F */ ori $a1, $a1, 0x851f
/* 7E3F28 802830A8 C4400050 */ lwc1 $f0, 0x50($v0)
/* 7E3F2C 802830AC 8E240010 */ lw $a0, 0x10($s1)
/* 7E3F30 802830B0 4600008D */ trunc.w.s $f2, $f0
/* 7E3F34 802830B4 44031000 */ mfc1 $v1, $f2
/* 7E3F38 802830B8 00000000 */ nop
/* 7E3F3C 802830BC 00641823 */ subu $v1, $v1, $a0
/* 7E3F40 802830C0 00650018 */ mult $v1, $a1
/* 7E3F44 802830C4 C4400048 */ lwc1 $f0, 0x48($v0)
/* 7E3F48 802830C8 8E220008 */ lw $v0, 8($s1)
/* 7E3F4C 802830CC 00003810 */ mfhi $a3
/* 7E3F50 802830D0 4600008D */ trunc.w.s $f2, $f0
/* 7E3F54 802830D4 44061000 */ mfc1 $a2, $f2
/* 7E3F58 802830D8 00000000 */ nop
/* 7E3F5C 802830DC 00C23023 */ subu $a2, $a2, $v0
/* 7E3F60 802830E0 00C50018 */ mult $a2, $a1
/* 7E3F64 802830E4 00031FC3 */ sra $v1, $v1, 0x1f
/* 7E3F68 802830E8 8E0200A4 */ lw $v0, 0xa4($s0)
/* 7E3F6C 802830EC 000738C3 */ sra $a3, $a3, 3
/* 7E3F70 802830F0 00E33823 */ subu $a3, $a3, $v1
/* 7E3F74 802830F4 00002810 */ mfhi $a1
/* 7E3F78 802830F8 92230004 */ lbu $v1, 4($s1)
/* 7E3F7C 802830FC 00E21021 */ addu $v0, $a3, $v0
/* 7E3F80 80283100 00430018 */ mult $v0, $v1
/* 7E3F84 80283104 8E04009C */ lw $a0, 0x9c($s0)
/* 7E3F88 80283108 00001012 */ mflo $v0
/* 7E3F8C 8028310C 000637C3 */ sra $a2, $a2, 0x1f
/* 7E3F90 80283110 000528C3 */ sra $a1, $a1, 3
/* 7E3F94 80283114 00E30018 */ mult $a3, $v1
/* 7E3F98 80283118 00A62823 */ subu $a1, $a1, $a2
/* 7E3F9C 8028311C 00A42021 */ addu $a0, $a1, $a0
/* 7E3FA0 80283120 00822021 */ addu $a0, $a0, $v0
/* 7E3FA4 80283124 8E230000 */ lw $v1, ($s1)
/* 7E3FA8 80283128 00004812 */ mflo $t1
/* 7E3FAC 8028312C 00A91021 */ addu $v0, $a1, $t1
/* 7E3FB0 80283130 00621021 */ addu $v0, $v1, $v0
/* 7E3FB4 80283134 90420000 */ lbu $v0, ($v0)
/* 7E3FB8 80283138 00641821 */ addu $v1, $v1, $a0
/* 7E3FBC 8028313C A0620000 */ sb $v0, ($v1)
/* 7E3FC0 80283140 92220004 */ lbu $v0, 4($s1)
/* 7E3FC4 80283144 00E20018 */ mult $a3, $v0
/* 7E3FC8 80283148 8E230000 */ lw $v1, ($s1)
/* 7E3FCC 8028314C 00003012 */ mflo $a2
/* 7E3FD0 80283150 00A62821 */ addu $a1, $a1, $a2
/* 7E3FD4 80283154 00651821 */ addu $v1, $v1, $a1
/* 7E3FD8 80283158 A0600000 */ sb $zero, ($v1)
/* 7E3FDC 8028315C 8FBF0018 */ lw $ra, 0x18($sp)
/* 7E3FE0 80283160 8FB10014 */ lw $s1, 0x14($sp)
/* 7E3FE4 80283164 8FB00010 */ lw $s0, 0x10($sp)
/* 7E3FE8 80283168 24020002 */ addiu $v0, $zero, 2
/* 7E3FEC 8028316C 03E00008 */ jr $ra
/* 7E3FF0 80283170 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,33 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80283174
/* 7E3FF4 80283174 3C058011 */ lui $a1, %hi(gPlayerStatus)
/* 7E3FF8 80283178 24A5EFC8 */ addiu $a1, $a1, %lo(gPlayerStatus)
/* 7E3FFC 8028317C 8C8200B0 */ lw $v0, 0xb0($a0)
/* 7E4000 80283180 3C038016 */ lui $v1, %hi(gCollisionStatus)
/* 7E4004 80283184 8463A550 */ lh $v1, %lo(gCollisionStatus)($v1)
/* 7E4008 80283188 24424000 */ addiu $v0, $v0, 0x4000
/* 7E400C 8028318C 5462000F */ bnel $v1, $v0, .L802831CC
/* 7E4010 80283190 AC8000B8 */ sw $zero, 0xb8($a0)
/* 7E4014 80283194 80A300B4 */ lb $v1, 0xb4($a1)
/* 7E4018 80283198 24020014 */ addiu $v0, $zero, 0x14
/* 7E401C 8028319C 10620005 */ beq $v1, $v0, .L802831B4
/* 7E4020 802831A0 24020001 */ addiu $v0, $zero, 1
/* 7E4024 802831A4 10620003 */ beq $v1, $v0, .L802831B4
/* 7E4028 802831A8 24020002 */ addiu $v0, $zero, 2
/* 7E402C 802831AC 54620009 */ bnel $v1, $v0, .L802831D4
/* 7E4030 802831B0 AC8000B8 */ sw $zero, 0xb8($a0)
.L802831B4:
/* 7E4034 802831B4 8CA20004 */ lw $v0, 4($a1)
/* 7E4038 802831B8 30420001 */ andi $v0, $v0, 1
/* 7E403C 802831BC 54400003 */ bnel $v0, $zero, .L802831CC
/* 7E4040 802831C0 AC8000B8 */ sw $zero, 0xb8($a0)
/* 7E4044 802831C4 24020001 */ addiu $v0, $zero, 1
/* 7E4048 802831C8 AC8200B8 */ sw $v0, 0xb8($a0)
.L802831CC:
/* 7E404C 802831CC 03E00008 */ jr $ra
/* 7E4050 802831D0 24020002 */ addiu $v0, $zero, 2
.L802831D4:
/* 7E4054 802831D4 03E00008 */ jr $ra
/* 7E4058 802831D8 00000000 */ nop

View File

@ -1,19 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetupDoubleDoors
/* 7E4C70 80283DF0 3C03802E */ lui $v1, %hi(D_802DBD28)
/* 7E4C74 80283DF4 2463BD28 */ addiu $v1, $v1, %lo(D_802DBD28)
/* 7E4C78 80283DF8 8C82008C */ lw $v0, 0x8c($a0)
/* 7E4C7C 80283DFC 2406FFFF */ addiu $a2, $zero, -1
/* 7E4C80 80283E00 AC660004 */ sw $a2, 4($v1)
/* 7E4C84 80283E04 AC620000 */ sw $v0, ($v1)
/* 7E4C88 80283E08 8C850090 */ lw $a1, 0x90($a0)
/* 7E4C8C 80283E0C 3C02802E */ lui $v0, %hi(D_802DBC7C)
/* 7E4C90 80283E10 2442BC7C */ addiu $v0, $v0, %lo(D_802DBC7C)
/* 7E4C94 80283E14 AC460004 */ sw $a2, 4($v0)
/* 7E4C98 80283E18 AC450000 */ sw $a1, ($v0)
/* 7E4C9C 80283E1C AC820090 */ sw $v0, 0x90($a0)
/* 7E4CA0 80283E20 24020002 */ addiu $v0, $zero, 2
/* 7E4CA4 80283E24 03E00008 */ jr $ra
/* 7E4CA8 80283E28 AC83008C */ sw $v1, 0x8c($a0)

View File

@ -1,33 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetupSingleDoor
/* 7E4B80 80283D00 0080282D */ daddu $a1, $a0, $zero
/* 7E4B84 80283D04 8CA20090 */ lw $v0, 0x90($a1)
/* 7E4B88 80283D08 04400009 */ bltz $v0, .L80283D30
/* 7E4B8C 80283D0C 2403FFFF */ addiu $v1, $zero, -1
/* 7E4B90 80283D10 3C02802E */ lui $v0, %hi(D_802DBD28)
/* 7E4B94 80283D14 2442BD28 */ addiu $v0, $v0, %lo(D_802DBD28)
/* 7E4B98 80283D18 8CA4008C */ lw $a0, 0x8c($a1)
/* 7E4B9C 80283D1C AC430004 */ sw $v1, 4($v0)
/* 7E4BA0 80283D20 3C01802E */ lui $at, %hi(D_802DBC7C)
/* 7E4BA4 80283D24 AC23BC7C */ sw $v1, %lo(D_802DBC7C)($at)
/* 7E4BA8 80283D28 080A0F55 */ j .L80283D54
/* 7E4BAC 80283D2C AC440000 */ sw $a0, ($v0)
.L80283D30:
/* 7E4BB0 80283D30 3C02802E */ lui $v0, %hi(D_802DBC7C)
/* 7E4BB4 80283D34 2442BC7C */ addiu $v0, $v0, %lo(D_802DBC7C)
/* 7E4BB8 80283D38 8CA4008C */ lw $a0, 0x8c($a1)
/* 7E4BBC 80283D3C AC430004 */ sw $v1, 4($v0)
/* 7E4BC0 80283D40 3C01802E */ lui $at, %hi(D_802DBD28)
/* 7E4BC4 80283D44 AC23BD28 */ sw $v1, %lo(D_802DBD28)($at)
/* 7E4BC8 80283D48 AC440000 */ sw $a0, ($v0)
/* 7E4BCC 80283D4C 3C02802E */ lui $v0, %hi(D_802DBD28)
/* 7E4BD0 80283D50 2442BD28 */ addiu $v0, $v0, %lo(D_802DBD28)
.L80283D54:
/* 7E4BD4 80283D54 ACA2008C */ sw $v0, 0x8c($a1)
/* 7E4BD8 80283D58 3C02802E */ lui $v0, %hi(D_802DBC7C)
/* 7E4BDC 80283D5C 2442BC7C */ addiu $v0, $v0, %lo(D_802DBC7C)
/* 7E4BE0 80283D60 ACA20090 */ sw $v0, 0x90($a1)
/* 7E4BE4 80283D64 03E00008 */ jr $ra
/* 7E4BE8 80283D68 24020002 */ addiu $v0, $zero, 2

View File

@ -1,25 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetupSplitDoubleDoors
/* 7E4CAC 80283E2C 8C82008C */ lw $v0, 0x8c($a0)
/* 7E4CB0 80283E30 3C05802E */ lui $a1, %hi(D_802DBD28)
/* 7E4CB4 80283E34 24A5BD28 */ addiu $a1, $a1, %lo(D_802DBD28)
/* 7E4CB8 80283E38 ACA20000 */ sw $v0, ($a1)
/* 7E4CBC 80283E3C 8C820094 */ lw $v0, 0x94($a0)
/* 7E4CC0 80283E40 2406FFFF */ addiu $a2, $zero, -1
/* 7E4CC4 80283E44 ACA60008 */ sw $a2, 8($a1)
/* 7E4CC8 80283E48 ACA20004 */ sw $v0, 4($a1)
/* 7E4CCC 80283E4C 8C830090 */ lw $v1, 0x90($a0)
/* 7E4CD0 80283E50 3C02802E */ lui $v0, %hi(D_802DBC7C)
/* 7E4CD4 80283E54 2442BC7C */ addiu $v0, $v0, %lo(D_802DBC7C)
/* 7E4CD8 80283E58 AC430000 */ sw $v1, ($v0)
/* 7E4CDC 80283E5C 8C830098 */ lw $v1, 0x98($a0)
/* 7E4CE0 80283E60 AC460008 */ sw $a2, 8($v0)
/* 7E4CE4 80283E64 AC430004 */ sw $v1, 4($v0)
/* 7E4CE8 80283E68 AC820090 */ sw $v0, 0x90($a0)
/* 7E4CEC 80283E6C 24020002 */ addiu $v0, $zero, 2
/* 7E4CF0 80283E70 03E00008 */ jr $ra
/* 7E4CF4 80283E74 AC85008C */ sw $a1, 0x8c($a0)
/* 7E4CF8 80283E78 00000000 */ nop
/* 7E4CFC 80283E7C 00000000 */ nop

View File

@ -1,39 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel SetupSplitSingleDoor
/* 7E4BEC 80283D6C 0080282D */ daddu $a1, $a0, $zero
/* 7E4BF0 80283D70 8CA20090 */ lw $v0, 0x90($a1)
/* 7E4BF4 80283D74 0440000C */ bltz $v0, .L80283DA8
/* 7E4BF8 80283D78 00000000 */ nop
/* 7E4BFC 80283D7C 8CA2008C */ lw $v0, 0x8c($a1)
/* 7E4C00 80283D80 3C03802E */ lui $v1, %hi(D_802DBD28)
/* 7E4C04 80283D84 2463BD28 */ addiu $v1, $v1, %lo(D_802DBD28)
/* 7E4C08 80283D88 AC620000 */ sw $v0, ($v1)
/* 7E4C0C 80283D8C 8CA40094 */ lw $a0, 0x94($a1)
/* 7E4C10 80283D90 2402FFFF */ addiu $v0, $zero, -1
/* 7E4C14 80283D94 AC620008 */ sw $v0, 8($v1)
/* 7E4C18 80283D98 3C01802E */ lui $at, %hi(D_802DBC7C)
/* 7E4C1C 80283D9C AC22BC7C */ sw $v0, %lo(D_802DBC7C)($at)
/* 7E4C20 80283DA0 080A0F74 */ j .L80283DD0
/* 7E4C24 80283DA4 AC640004 */ sw $a0, 4($v1)
.L80283DA8:
/* 7E4C28 80283DA8 8CA2008C */ lw $v0, 0x8c($a1)
/* 7E4C2C 80283DAC 3C03802E */ lui $v1, %hi(D_802DBC7C)
/* 7E4C30 80283DB0 2463BC7C */ addiu $v1, $v1, %lo(D_802DBC7C)
/* 7E4C34 80283DB4 AC620000 */ sw $v0, ($v1)
/* 7E4C38 80283DB8 8CA40094 */ lw $a0, 0x94($a1)
/* 7E4C3C 80283DBC 2402FFFF */ addiu $v0, $zero, -1
/* 7E4C40 80283DC0 AC620008 */ sw $v0, 8($v1)
/* 7E4C44 80283DC4 3C01802E */ lui $at, %hi(D_802DBD28)
/* 7E4C48 80283DC8 AC22BD28 */ sw $v0, %lo(D_802DBD28)($at)
/* 7E4C4C 80283DCC AC640004 */ sw $a0, 4($v1)
.L80283DD0:
/* 7E4C50 80283DD0 3C02802E */ lui $v0, %hi(D_802DBD28)
/* 7E4C54 80283DD4 2442BD28 */ addiu $v0, $v0, %lo(D_802DBD28)
/* 7E4C58 80283DD8 ACA2008C */ sw $v0, 0x8c($a1)
/* 7E4C5C 80283DDC 3C02802E */ lui $v0, %hi(D_802DBC7C)
/* 7E4C60 80283DE0 2442BC7C */ addiu $v0, $v0, %lo(D_802DBC7C)
/* 7E4C64 80283DE4 ACA20090 */ sw $v0, 0x90($a1)
/* 7E4C68 80283DE8 03E00008 */ jr $ra
/* 7E4C6C 80283DEC 24020002 */ addiu $v0, $zero, 2

View File

@ -14869,8 +14869,8 @@ func_80281C84 = 0x80281C84; // type:func rom:0x7E2B04
MakeDoorAdvanced = 0x80281CAC; // type:func rom:0x7E2B2C
func_802822A8 = 0x802822A8; // type:func rom:0x7E3128
func_80282314 = 0x80282314; // type:func rom:0x7E3194
func_80282324 = 0x80282324; // type:func rom:0x7E31A4
func_80282338 = 0x80282338; // type:func rom:0x7E31B8
GetDoorState = 0x80282324; // type:func rom:0x7E31A4
SetDoorState = 0x80282338; // type:func rom:0x7E31B8
func_8028236C = 0x8028236C; // type:func rom:0x7E31EC
func_802823B0 = 0x802823B0; // type:func rom:0x7E3230
func_80282414 = 0x80282414; // type:func rom:0x7E3294
@ -14880,10 +14880,10 @@ SetEntityHideMode2 = 0x80282610; // type:func rom:0x7E3490
SetEntityHideMode0 = 0x80282624; // type:func rom:0x7E34A4
func_80282634 = 0x80282634; // type:func rom:0x7E34B4
func_80282700 = 0x80282700; // type:func rom:0x7E3580
func_80282774 = 0x80282774; // type:func rom:0x7E35F4
func_802827A8 = 0x802827A8; // type:func rom:0x7E3628
func_802827CC = 0x802827CC; // type:func rom:0x7E364C
func_80282868 = 0x80282868; // type:func rom:0x7E36E8
SetNewItemVisGroup = 0x80282774; // type:func rom:0x7E35F4
RestorePrevItemVisGroup = 0x802827A8; // type:func rom:0x7E3628
GetDoorData = 0x802827CC; // type:func rom:0x7E364C
GetDoorPtr = 0x80282868; // type:func rom:0x7E36E8
func_80282880 = 0x80282880; // type:func rom:0x7E3700
func_802828DC = 0x802828DC; // type:func rom:0x7E375C
func_80282C40 = 0x80282C40; // type:func rom:0x7E3AC0
@ -27192,11 +27192,11 @@ D_802DB830 = 0x802DB830; // type:data
D_802DBB60 = 0x802DBB60; // type:data
D_802DBB68 = 0x802DBB68; // type:data
gWorldMapFlags = 0x802DBC70; // size:0xC
D_802DBC7C = 0x802DBC7C; // type:data
DoorModelsSwingCW = 0x802DBC7C; // type:data
D_802DBC88 = 0x802DBC88; // type:data
gWorldMapVars = 0x802DBCA8; // size:0x40
gBattleMapVars = 0x802DBCE8; // size:0x40
D_802DBD28 = 0x802DBD28; // type:data
DoorModelsSwingCCW = 0x802DBD28; // type:data
gBattleMapFlags = 0x802DBD34; // size:0xC
spr_allocateBtlComponentsOnWorldHeap = 0x802DF524; // type:data
D_802DF530 = 0x802DF530; // type:data

View File

@ -1117,11 +1117,11 @@ D_802DB830 = 0x802DB830;
D_802DBB60 = 0x802DBB60;
D_802DBB68 = 0x802DBB68;
gWorldMapFlags = 0x802DBC70;
D_802DBC7C = 0x802DBC7C;
DoorModelsSwingCW = 0x802DBC7C;
D_802DBC88 = 0x802DBC88;
gWorldMapVars = 0x802DBCA8;
gBattleMapVars = 0x802DBCE8;
D_802DBD28 = 0x802DBD28;
DoorModelsSwingCCW = 0x802DBD28;
gBattleMapFlags = 0x802DBD34;
spr_allocateBtlComponentsOnWorldHeap = 0x802DF524;
D_802DF530 = 0x802DF530;