`z_en_test7.c` Documentation Pass (#1497)

* copy over docs

* more docs

* some docs

* more docs

* small cleanup

* more small cleanup

* more small cleanup

* lerp time

* small reordering

* feather type

* general owl warp docs

* more cleanup

* rm redundant info

* PR Review

* PR Review
This commit is contained in:
engineer124 2023-11-27 21:21:52 +11:00 committed by GitHub
parent 702f3cf44e
commit 5284302c8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 765 additions and 740 deletions

View File

@ -1442,16 +1442,16 @@
<DList Name="gameplay_keep_DL_07F260" Offset="0x7F260" /> <DList Name="gameplay_keep_DL_07F260" Offset="0x7F260" />
<Texture Name="gameplay_keep_Tex_07F2E8" OutName="tex_07F2E8" Format="ia16" Width="32" Height="64" Offset="0x7F2E8" /> <Texture Name="gameplay_keep_Tex_07F2E8" OutName="tex_07F2E8" Format="ia16" Width="32" Height="64" Offset="0x7F2E8" />
<DList Name="gameplay_keep_DL_080FC0" Offset="0x80FC0" /> <DList Name="gameplay_keep_DL_080FC0" Offset="0x80FC0" />
<DList Name="gameplay_keep_DL_080FC8" Offset="0x80FC8" />
<Texture Name="gameplay_keep_Tex_0813A0" OutName="tex_0813A0" Format="i8" Width="16" Height="32" Offset="0x813A0" />
<TextureAnimation Name="gameplay_keep_Matanimheader_0815D0" Offset="0x815D0" />
<DList Name="gameplay_keep_DL_081620" Offset="0x81620" />
<DList Name="gameplay_keep_DL_081628" Offset="0x81628" />
<Texture Name="gameplay_keep_Tex_0816C0" OutName="tex_0816C0" Format="rgba16" Width="16" Height="32" Offset="0x816C0" />
<!-- Song of soaring warp cutscene -->
<DList Name="gSoaringWarpCsWindCapsuleDL" Offset="0x80FC8" />
<Texture Name="gSoaringWarpCsWindCapsuleTex" OutName="soaring_warp_cs_wind_capsule" Format="i8" Width="16" Height="32" Offset="0x813A0" />
<TextureAnimation Name="gSoaringWarpCsWindCapsuleTexAnim" Offset="0x815D0" />
<DList Name="gSoaringWarpCsEmptyDL" Offset="0x81620" />
<DList Name="gSoaringWarpCsFeatherDL" Offset="0x81628" />
<Texture Name="gSoaringWarpCsFeatherTex" OutName="soaring_warp_cs_feather" Format="rgba16" Width="16" Height="32" Offset="0x816C0" />
<Blob Name="gameplay_keep_Blob_081AC0" Size="0x1A74" Offset="0x81AC0" /> <Blob Name="gameplay_keep_Blob_081AC0" Size="0x1A74" Offset="0x81AC0" />
<Blob Name="gameplay_keep_Blob_083534" Size="0x1C" Offset="0x83534" /> <Blob Name="gameplay_keep_Blob_083534" Size="0x1C" Offset="0x83534" /> <!-- Is a `SkeletonInfo_1C` struct -->
<DList Name="gameplay_keep_DL_084790" Offset="0x84790" /> <DList Name="gameplay_keep_DL_084790" Offset="0x84790" />
<DList Name="gameplay_keep_DL_0847E0" Offset="0x847E0" /> <DList Name="gameplay_keep_DL_0847E0" Offset="0x847E0" />
<DList Name="gameplay_keep_DL_084850" Offset="0x84850" /> <DList Name="gameplay_keep_DL_084850" Offset="0x84850" />
@ -1483,7 +1483,7 @@
<DList Name="gameplay_keep_DL_085418" Offset="0x85418" /> <DList Name="gameplay_keep_DL_085418" Offset="0x85418" />
<DList Name="gameplay_keep_DL_085490" Offset="0x85490" /> <DList Name="gameplay_keep_DL_085490" Offset="0x85490" />
<Blob Name="gameplay_keep_Blob_085510" Size="0x130" Offset="0x85510" /> <Blob Name="gameplay_keep_Blob_085510" Size="0x130" Offset="0x85510" />
<Blob Name="gameplay_keep_Blob_085640" Size="0x10" Offset="0x85640" /> <Blob Name="gameplay_keep_Blob_085640" Size="0x10" Offset="0x85640" /> <!-- Is a `Struct_801BFA14_Arg1` struct -->
<!-- Zora Elegy of Emptiness Shell --> <!-- Zora Elegy of Emptiness Shell -->
<DList Name="gElegyShellZoraDL" Offset="0x89070" /> <!-- Original name is "pzs_zo_model" --> <DList Name="gElegyShellZoraDL" Offset="0x89070" /> <!-- Original name is "pzs_zo_model" -->

View File

@ -144,7 +144,7 @@ extern RegEditor* gRegEditor;
#define R_PAUSE_DBG_MAP_CLOUD_Y XREG(53) #define R_PAUSE_DBG_MAP_CLOUD_Y XREG(53)
#define R_MOON_CRASH_TIMER_Y XREG(80) #define R_MOON_CRASH_TIMER_Y XREG(80)
#define R_MOON_CRASH_TIMER_X XREG(81) #define R_MOON_CRASH_TIMER_X XREG(81)
#define R_PAUSE_OWLWARP_ALPHA XREG(87) #define R_PAUSE_OWL_WARP_ALPHA XREG(87)
#define R_STORY_FILL_SCREEN_ALPHA XREG(91) #define R_STORY_FILL_SCREEN_ALPHA XREG(91)
#define R_REVERSE_FLOOR_INDEX XREG(94) #define R_REVERSE_FLOOR_INDEX XREG(94)
#define R_MINIMAP_DISABLED XREG(95) #define R_MINIMAP_DISABLED XREG(95)

View File

@ -1074,7 +1074,8 @@ typedef enum PlayerInitMode {
/* 0xC */ PLAYER_INITMODE_TELESCOPE, /* 0xC */ PLAYER_INITMODE_TELESCOPE,
/* 0xD */ PLAYER_INITMODE_D, /* 0xD */ PLAYER_INITMODE_D,
/* 0xE */ PLAYER_INITMODE_E, /* 0xE */ PLAYER_INITMODE_E,
/* 0xF */ PLAYER_INITMODE_F /* 0xF */ PLAYER_INITMODE_F,
/* 0x10 */ PLAYER_INITMODE_MAX // Must not exceed 0x10 as `PLAYER_GET_INITMODE` is limited to a nibble in player params
} PlayerInitMode; } PlayerInitMode;
#define PLAYER_PARAMS(startBgCamIndex, initMode) ((startBgCamIndex & 0xFF) | ((initMode & 0xF) << 8)) #define PLAYER_PARAMS(startBgCamIndex, initMode) ((startBgCamIndex & 0xFF) | ((initMode & 0xF) << 8))

View File

@ -275,7 +275,7 @@ typedef struct SavePlayerData {
/* 0x1D */ u8 isDoubleMagicAcquired; // "magic_ability" /* 0x1D */ u8 isDoubleMagicAcquired; // "magic_ability"
/* 0x1E */ u8 doubleDefense; // "life_ability" /* 0x1E */ u8 doubleDefense; // "life_ability"
/* 0x1F */ u8 unk_1F; // "ocarina_round" /* 0x1F */ u8 unk_1F; // "ocarina_round"
/* 0x20 */ u8 unk_20; // "first_memory" /* 0x20 */ u8 owlWarpId; // See `OwlWarpId`, "first_memory"
/* 0x22 */ u16 owlActivationFlags; // "memory_warp_point" /* 0x22 */ u16 owlActivationFlags; // "memory_warp_point"
/* 0x24 */ u8 unk_24; // "last_warp_pt" /* 0x24 */ u8 unk_24; // "last_warp_pt"
/* 0x26 */ s16 savedSceneId; // "scene_data_ID" /* 0x26 */ s16 savedSceneId; // "scene_data_ID"
@ -324,7 +324,7 @@ typedef struct Save {
/* 0x07 */ u8 linkAge; // "link_age" /* 0x07 */ u8 linkAge; // "link_age"
/* 0x08 */ s32 cutsceneIndex; // "day_time" /* 0x08 */ s32 cutsceneIndex; // "day_time"
/* 0x0C */ u16 time; // "zelda_time" /* 0x0C */ u16 time; // "zelda_time"
/* 0x0E */ u16 owlSaveLocation; /* 0x0E */ u16 owlWarpId; // See `OwlWarpId` enum
/* 0x10 */ s32 isNight; // "asahiru_fg" /* 0x10 */ s32 isNight; // "asahiru_fg"
/* 0x14 */ s32 timeSpeedOffset; // "change_zelda_time" /* 0x14 */ s32 timeSpeedOffset; // "change_zelda_time"
/* 0x18 */ s32 day; // "totalday" /* 0x18 */ s32 day; // "totalday"
@ -460,6 +460,9 @@ typedef enum {
#define GET_PLAYER_FORM ((void)0, gSaveContext.save.playerForm) #define GET_PLAYER_FORM ((void)0, gSaveContext.save.playerForm)
#define GET_OWL_STATUE_ACTIVATED(owlWarpId) (((void)0, gSaveContext.save.saveInfo.playerData.owlActivationFlags) & (u16)gBitFlags[(owlWarpId)])
#define SET_OWL_STATUE_ACTIVATED(owlWarpId) (gSaveContext.save.saveInfo.playerData.owlActivationFlags = (((void)0, gSaveContext.save.saveInfo.playerData.owlActivationFlags) | (u16)gBitFlags[(owlWarpId)]))
#define SLOT(item) gItemSlots[item] #define SLOT(item) gItemSlots[item]
#define AMMO(item) gSaveContext.save.saveInfo.inventory.ammo[SLOT(item)] #define AMMO(item) gSaveContext.save.saveInfo.inventory.ammo[SLOT(item)]
#define INV_CONTENT(item) gSaveContext.save.saveInfo.inventory.items[SLOT(item)] #define INV_CONTENT(item) gSaveContext.save.saveInfo.inventory.items[SLOT(item)]
@ -1653,7 +1656,7 @@ typedef enum {
#define STRAY_FAIRY_TOTAL 25 // total number of stray fairies, including those already in the Great Fairy Fountain #define STRAY_FAIRY_TOTAL 25 // total number of stray fairies, including those already in the Great Fairy Fountain
#define STRAY_FAIRY_SCATTERED_TOTAL 15 // original number of stray fairies in one dungeon area #define STRAY_FAIRY_SCATTERED_TOTAL 15 // original number of stray fairies in one dungeon area
void Sram_ActivateOwl(u8 owlId); void Sram_ActivateOwl(u8 owlWarpId);
void Sram_ClearFlagsAtDawnOfTheFirstDay(void); void Sram_ClearFlagsAtDawnOfTheFirstDay(void);
void Sram_SaveEndOfCycle(struct PlayState* play); void Sram_SaveEndOfCycle(struct PlayState* play);
void Sram_IncrementDay(void); void Sram_IncrementDay(void);

View File

@ -560,7 +560,7 @@ typedef union {
} SceneCmd; // size = 0x8 } SceneCmd; // size = 0x8
// Sets cursor point options on the world map // Sets cursor point options on the world map
typedef enum { typedef enum RegionId {
/* -1 */ REGION_NONE = -1, /* -1 */ REGION_NONE = -1,
/* 0x0 */ REGION_GREAT_BAY, /* 0x0 */ REGION_GREAT_BAY,
/* 0x1 */ REGION_ZORA_HALL, /* 0x1 */ REGION_ZORA_HALL,
@ -577,7 +577,7 @@ typedef enum {
} RegionId; } RegionId;
// Sets warp points for owl statues // Sets warp points for owl statues
typedef enum { typedef enum OwlWarpId {
/* 0x0 */ OWL_WARP_GREAT_BAY_COAST, /* 0x0 */ OWL_WARP_GREAT_BAY_COAST,
/* 0x1 */ OWL_WARP_ZORA_CAPE, /* 0x1 */ OWL_WARP_ZORA_CAPE,
/* 0x2 */ OWL_WARP_SNOWHEAD, /* 0x2 */ OWL_WARP_SNOWHEAD,
@ -589,11 +589,12 @@ typedef enum {
/* 0x8 */ OWL_WARP_IKANA_CANYON, /* 0x8 */ OWL_WARP_IKANA_CANYON,
/* 0x9 */ OWL_WARP_STONE_TOWER, /* 0x9 */ OWL_WARP_STONE_TOWER,
/* 0xA */ OWL_WARP_ENTRANCE, // Special index for warping to the entrance of a scene /* 0xA */ OWL_WARP_ENTRANCE, // Special index for warping to the entrance of a scene
/* 0xB */ OWL_WARP_MAX /* 0xB */ OWL_WARP_MAX,
/* 0xFF */ OWL_WARP_NONE = 0xFF
} OwlWarpId; } OwlWarpId;
// Sets cloud visibility on the world map // Sets cloud visibility on the world map
typedef enum { typedef enum TingleMapId {
/* 0 */ TINGLE_MAP_CLOCK_TOWN, /* 0 */ TINGLE_MAP_CLOCK_TOWN,
/* 1 */ TINGLE_MAP_WOODFALL, /* 1 */ TINGLE_MAP_WOODFALL,
/* 2 */ TINGLE_MAP_SNOWHEAD, /* 2 */ TINGLE_MAP_SNOWHEAD,

View File

@ -24,7 +24,7 @@ void Setup_SetRegs(void) {
XREG(77) = 0x3C; XREG(77) = 0x3C;
XREG(78) = 0x2F; XREG(78) = 0x2F;
XREG(79) = 0x62; XREG(79) = 0x62;
R_PAUSE_OWLWARP_ALPHA = 0; R_PAUSE_OWL_WARP_ALPHA = 0;
XREG(88) = 0x56; XREG(88) = 0x56;
XREG(89) = 0x258; XREG(89) = 0x258;
XREG(90) = 0x1C2; XREG(90) = 0x1C2;

View File

@ -35,7 +35,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE]; KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE];
if ((play->pauseCtx.state != PAUSE_STATE_OFF) || (play->pauseCtx.debugEditor != DEBUG_EDITOR_NONE)) { if ((play->pauseCtx.state != PAUSE_STATE_OFF) || (play->pauseCtx.debugEditor != DEBUG_EDITOR_NONE)) {
if ((pauseCtx->state == PAUSE_STATE_OPENING_0) || (pauseCtx->state == PAUSE_STATE_OWLWARP_0)) { if ((pauseCtx->state == PAUSE_STATE_OPENING_0) || (pauseCtx->state == PAUSE_STATE_OWL_WARP_0)) {
if (ShrinkWindow_Letterbox_GetSize() == 0) { if (ShrinkWindow_Letterbox_GetSize() == 0) {
R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_SETUP; R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_SETUP;
pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE;
@ -48,7 +48,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
pauseCtx->savePromptState = PAUSE_SAVEPROMPT_STATE_APPEARING; pauseCtx->savePromptState = PAUSE_SAVEPROMPT_STATE_APPEARING;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1;
} else if ((pauseCtx->state == PAUSE_STATE_OPENING_1) || (pauseCtx->state == PAUSE_STATE_GAMEOVER_1) || } else if ((pauseCtx->state == PAUSE_STATE_OPENING_1) || (pauseCtx->state == PAUSE_STATE_GAMEOVER_1) ||
(pauseCtx->state == PAUSE_STATE_OWLWARP_1)) { (pauseCtx->state == PAUSE_STATE_OWL_WARP_1)) {
if (R_PAUSE_BG_PRERENDER_STATE == PAUSE_BG_PRERENDER_READY) { if (R_PAUSE_BG_PRERENDER_STATE == PAUSE_BG_PRERENDER_READY) {
pauseCtx->state++; pauseCtx->state++;
} }

View File

@ -5604,7 +5604,7 @@ void Message_Update(PlayState* play) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
} }
} else if ((msgCtx->textboxEndType != TEXTBOX_ENDTYPE_10) || } else if ((msgCtx->textboxEndType != TEXTBOX_ENDTYPE_10) ||
(pauseCtx->state != PAUSE_STATE_OWLWARP_CONFIRM)) { (pauseCtx->state != PAUSE_STATE_OWL_WARP_CONFIRM)) {
if ((msgCtx->textboxEndType == TEXTBOX_ENDTYPE_10) && if ((msgCtx->textboxEndType == TEXTBOX_ENDTYPE_10) &&
(play->msgCtx.ocarinaMode == OCARINA_MODE_1B)) { (play->msgCtx.ocarinaMode == OCARINA_MODE_1B)) {
if (Message_ShouldAdvance(play)) { if (Message_ShouldAdvance(play)) {
@ -5676,7 +5676,7 @@ void Message_Update(PlayState* play) {
pauseCtx->unk_2C8 = pauseCtx->pageIndex; pauseCtx->unk_2C8 = pauseCtx->pageIndex;
pauseCtx->unk_2CA = pauseCtx->cursorPoint[4]; pauseCtx->unk_2CA = pauseCtx->cursorPoint[4];
pauseCtx->pageIndex = PAUSE_ITEM; pauseCtx->pageIndex = PAUSE_ITEM;
pauseCtx->state = PAUSE_STATE_OWLWARP_0; pauseCtx->state = PAUSE_STATE_OWL_WARP_0;
func_800F4A10(play); func_800F4A10(play);
pauseCtx->pageIndex = PAUSE_MAP; pauseCtx->pageIndex = PAUSE_MAP;
sLastPlayedSong = 0xFF; sLastPlayedSong = 0xFF;

View File

@ -18,6 +18,7 @@ s32 Object_SpawnPersistent(ObjectContext* objectCtx, s16 id) {
objectCtx->slots[objectCtx->numEntries].id = id; objectCtx->slots[objectCtx->numEntries].id = id;
size = gObjectTable[id].vromEnd - gObjectTable[id].vromStart; size = gObjectTable[id].vromEnd - gObjectTable[id].vromStart;
//! FAKE:
if (1) {} if (1) {}
if (size != 0) { if (size != 0) {

View File

@ -388,12 +388,11 @@ u8 sBitFlags8[] = {
u16 D_801F6AF0; u16 D_801F6AF0;
u8 D_801F6AF2; u8 D_801F6AF2;
void Sram_ActivateOwl(u8 owlId) { void Sram_ActivateOwl(u8 owlWarpId) {
gSaveContext.save.saveInfo.playerData.owlActivationFlags = SET_OWL_STATUE_ACTIVATED(owlWarpId);
((void)0, gSaveContext.save.saveInfo.playerData.owlActivationFlags) | (u16)gBitFlags[owlId];
if (gSaveContext.save.saveInfo.playerData.unk_20 == 0xFF) { if (gSaveContext.save.saveInfo.playerData.owlWarpId == OWL_WARP_NONE) {
gSaveContext.save.saveInfo.playerData.unk_20 = owlId; gSaveContext.save.saveInfo.playerData.owlWarpId = owlWarpId;
} }
} }
@ -780,8 +779,8 @@ SavePlayerData sSaveDefaultPlayerData = {
false, // isDoubleMagicAcquired false, // isDoubleMagicAcquired
0, // doubleDefense 0, // doubleDefense
0, // unk_1F 0, // unk_1F
0xFF, // unk_20 OWL_WARP_NONE, // owlWarpId
0x0000, // owlActivationFlags 0, // owlActivationFlags
0xFF, // unk_24 0xFF, // unk_24
SCENE_SPOT00, // savedSceneId SCENE_SPOT00, // savedSceneId
}; };
@ -956,7 +955,7 @@ SavePlayerData sSaveDebugPlayerData = {
false, // isDoubleMagicAcquired false, // isDoubleMagicAcquired
0, // doubleDefense 0, // doubleDefense
0, // unk_1F 0, // unk_1F
0xFF, // unk_20 OWL_WARP_NONE, // owlWarpId
0, // owlActivationFlags 0, // owlActivationFlags
0xFF, // unk_24 0xFF, // unk_24
SCENE_SPOT00, // savedSceneId SCENE_SPOT00, // savedSceneId
@ -1208,12 +1207,17 @@ void Sram_ResetSaveFromMoonCrash(SramContext* sramCtx) {
gSaveContext.jinxTimer = 0; gSaveContext.jinxTimer = 0;
} }
u16 D_801C6A58[] = { static u16 sOwlWarpEntrances[OWL_WARP_MAX - 1] = {
ENTRANCE(GREAT_BAY_COAST, 11), ENTRANCE(ZORA_CAPE, 6), ENTRANCE(GREAT_BAY_COAST, 11), // OWL_WARP_GREAT_BAY_COAST
ENTRANCE(SNOWHEAD, 3), ENTRANCE(MOUNTAIN_VILLAGE_WINTER, 8), ENTRANCE(ZORA_CAPE, 6), // OWL_WARP_ZORA_CAPE
ENTRANCE(SOUTH_CLOCK_TOWN, 9), ENTRANCE(MILK_ROAD, 4), ENTRANCE(SNOWHEAD, 3), // OWL_WARP_SNOWHEAD
ENTRANCE(WOODFALL, 4), ENTRANCE(SOUTHERN_SWAMP_POISONED, 10), ENTRANCE(MOUNTAIN_VILLAGE_WINTER, 8), // OWL_WARP_MOUNTAIN_VILLAGE
ENTRANCE(IKANA_CANYON, 4), ENTRANCE(STONE_TOWER, 3), ENTRANCE(SOUTH_CLOCK_TOWN, 9), // OWL_WARP_CLOCK_TOWN
ENTRANCE(MILK_ROAD, 4), // OWL_WARP_MILK_ROAD
ENTRANCE(WOODFALL, 4), // OWL_WARP_WOODFALL
ENTRANCE(SOUTHERN_SWAMP_POISONED, 10), // OWL_WARP_SOUTHERN_SWAMP
ENTRANCE(IKANA_CANYON, 4), // OWL_WARP_IKANA_CANYON
ENTRANCE(STONE_TOWER, 3), // OWL_WARP_STONE_TOWER
}; };
void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) { void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) {
@ -1288,7 +1292,7 @@ void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) {
gSaveContext.save.playerForm = PLAYER_FORM_HUMAN; gSaveContext.save.playerForm = PLAYER_FORM_HUMAN;
} }
} else { } else {
gSaveContext.save.entrance = D_801C6A58[(void)0, gSaveContext.save.owlSaveLocation]; gSaveContext.save.entrance = sOwlWarpEntrances[(void)0, gSaveContext.save.owlWarpId];
if ((gSaveContext.save.entrance == ENTRANCE(SOUTHERN_SWAMP_POISONED, 10)) && if ((gSaveContext.save.entrance == ENTRANCE(SOUTHERN_SWAMP_POISONED, 10)) &&
CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_WOODFALL_TEMPLE)) { CHECK_WEEKEVENTREG(WEEKEVENTREG_CLEARED_WOODFALL_TEMPLE)) {
gSaveContext.save.entrance = ENTRANCE(SOUTHERN_SWAMP_CLEARED, 10); gSaveContext.save.entrance = ENTRANCE(SOUTHERN_SWAMP_CLEARED, 10);

View File

@ -265,7 +265,7 @@ void EnBigpo_RotateSpawnCutsceneFires(EnBigpo* this) {
void EnBigpo_UpdateSpin(EnBigpo* this) { void EnBigpo_UpdateSpin(EnBigpo* this) {
s16 oldYaw = this->actor.shape.rot.y; s16 oldYaw = this->actor.shape.rot.y;
this->actor.shape.rot.y += this->rotVelocity; this->actor.shape.rot.y += this->angularVelocity;
if ((oldYaw < 0) && (this->actor.shape.rot.y > 0)) { if ((oldYaw < 0) && (this->actor.shape.rot.y > 0)) {
Actor_PlaySfx(&this->actor, NA_SE_EN_PO_ROLL); // spinning sfx during spin attack Actor_PlaySfx(&this->actor, NA_SE_EN_PO_ROLL); // spinning sfx during spin attack
} }
@ -364,7 +364,7 @@ void EnBigpo_SpawnCutsceneStage2(EnBigpo* this, PlayState* play) {
* stage 3: switch to fires rotating * stage 3: switch to fires rotating
*/ */
void EnBigpo_SpawnCutsceneStage3(EnBigpo* this) { void EnBigpo_SpawnCutsceneStage3(EnBigpo* this) {
this->rotVelocity = 0x1000; this->angularVelocity = 0x1000;
this->actionFunc = EnBigpo_SpawnCutsceneStage4; this->actionFunc = EnBigpo_SpawnCutsceneStage4;
this->fireRadius = 200.0f; this->fireRadius = 200.0f;
this->actor.velocity.y = 0.0f; this->actor.velocity.y = 0.0f;
@ -377,10 +377,10 @@ void EnBigpo_SpawnCutsceneStage4(EnBigpo* this, PlayState* play) {
s32 i; s32 i;
if (Math_StepToF(&this->fireRadius, 30.0f, 5.0f)) { if (Math_StepToF(&this->fireRadius, 30.0f, 5.0f)) {
this->rotVelocity += 0x80; this->angularVelocity += 0x80;
this->actor.velocity.y += 0.25f; this->actor.velocity.y += 0.25f;
} }
this->actor.shape.rot.y += this->rotVelocity; this->actor.shape.rot.y += this->angularVelocity;
EnBigpo_RotateSpawnCutsceneFires(this); EnBigpo_RotateSpawnCutsceneFires(this);
for (i = 0; i < ARRAY_COUNT(this->fires); i++) { for (i = 0; i < ARRAY_COUNT(this->fires); i++) {
@ -415,11 +415,11 @@ void EnBigpo_SpawnCutsceneStage6(EnBigpo* this, PlayState* play) {
s32 alphaPlus; // color alpha + 10 s32 alphaPlus; // color alpha + 10
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
this->actor.shape.rot.y += this->rotVelocity; this->actor.shape.rot.y += this->angularVelocity;
alphaPlus = this->mainColor.a + 10; // decrease transparency alphaPlus = this->mainColor.a + 10; // decrease transparency
EnBigpo_RotateSpawnCutsceneFires(this); EnBigpo_RotateSpawnCutsceneFires(this);
if (alphaPlus >= 90) { if (alphaPlus >= 90) {
this->rotVelocity -= 0x80; this->angularVelocity -= 0x80;
this->actor.velocity.y -= 0.25f; this->actor.velocity.y -= 0.25f;
if (alphaPlus >= 180) { if (alphaPlus >= 180) {
Math_ScaledStepToS(&this->actor.world.rot.y, 0, 0x180); Math_ScaledStepToS(&this->actor.world.rot.y, 0, 0x180);
@ -486,7 +486,7 @@ void EnBigpo_SpawnCutsceneStage8(EnBigpo* this, PlayState* play) {
void EnBigpo_SetupWarpOut(EnBigpo* this) { void EnBigpo_SetupWarpOut(EnBigpo* this) {
this->collider.base.acFlags &= ~AC_ON; this->collider.base.acFlags &= ~AC_ON;
this->collider.base.ocFlags1 &= ~OC1_ON; this->collider.base.ocFlags1 &= ~OC1_ON;
this->rotVelocity = 0x2000; this->angularVelocity = 0x2000;
this->idleTimer = 32; this->idleTimer = 32;
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
this->actor.speed = 0.0f; this->actor.speed = 0.0f;
@ -496,9 +496,9 @@ void EnBigpo_SetupWarpOut(EnBigpo* this) {
void EnBigpo_WarpingOut(EnBigpo* this, PlayState* play) { void EnBigpo_WarpingOut(EnBigpo* this, PlayState* play) {
DECR(this->idleTimer); DECR(this->idleTimer);
this->actor.shape.rot.y += this->rotVelocity; this->actor.shape.rot.y += this->angularVelocity;
if (this->idleTimer < 16) { if (this->idleTimer < 16) {
Math_ScaledStepToS(&this->rotVelocity, 0, 0x200); Math_ScaledStepToS(&this->angularVelocity, 0, 0x200);
} }
this->mainColor.a = this->idleTimer * (255.0f / 32.0f); this->mainColor.a = this->idleTimer * (255.0f / 32.0f);
if (this->idleTimer == 0) { if (this->idleTimer == 0) {
@ -514,7 +514,7 @@ void EnBigpo_SetupWarpIn(EnBigpo* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_EN_STALKIDS_APPEAR); Actor_PlaySfx(&this->actor, NA_SE_EN_STALKIDS_APPEAR);
Animation_PlayLoop(&this->skelAnime, &gBigPoeAwakenStretchAnim); Animation_PlayLoop(&this->skelAnime, &gBigPoeAwakenStretchAnim);
this->rotVelocity = 0x2000; this->angularVelocity = 0x2000;
this->actor.world.pos.x = (Math_SinS(randomYaw) * distance) + player->actor.world.pos.x; this->actor.world.pos.x = (Math_SinS(randomYaw) * distance) + player->actor.world.pos.x;
this->actor.world.pos.z = (Math_CosS(randomYaw) * distance) + player->actor.world.pos.z; this->actor.world.pos.z = (Math_CosS(randomYaw) * distance) + player->actor.world.pos.z;
this->actionFunc = EnBigpo_WarpingIn; this->actionFunc = EnBigpo_WarpingIn;
@ -522,10 +522,10 @@ void EnBigpo_SetupWarpIn(EnBigpo* this, PlayState* play) {
void EnBigpo_WarpingIn(EnBigpo* this, PlayState* play) { void EnBigpo_WarpingIn(EnBigpo* this, PlayState* play) {
this->idleTimer++; this->idleTimer++;
this->actor.shape.rot.y -= this->rotVelocity; this->actor.shape.rot.y -= this->angularVelocity;
if (this->idleTimer >= 16) { if (this->idleTimer >= 16) {
// after 16th frame, start slowing rotation // after 16th frame, start slowing rotation
Math_ScaledStepToS(&this->rotVelocity, 0, 0x200); Math_ScaledStepToS(&this->angularVelocity, 0, 0x200);
} }
this->mainColor.a = this->idleTimer * (255.0f / 32.0f); this->mainColor.a = this->idleTimer * (255.0f / 32.0f);
@ -585,16 +585,16 @@ void EnBigpo_SetupSpinUp(EnBigpo* this) {
this->collider.base.acFlags |= AC_HARD; this->collider.base.acFlags |= AC_HARD;
this->collider.info.bumper.dmgFlags &= ~0x8000; this->collider.info.bumper.dmgFlags &= ~0x8000;
this->collider.base.atFlags |= AT_ON; this->collider.base.atFlags |= AT_ON;
this->rotVelocity = 0x800; this->angularVelocity = 0x800;
this->actionFunc = EnBigpo_SpinningUp; this->actionFunc = EnBigpo_SpinningUp;
this->actor.speed = 0.0f; this->actor.speed = 0.0f;
} }
void EnBigpo_SpinningUp(EnBigpo* this, PlayState* play) { void EnBigpo_SpinningUp(EnBigpo* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
this->rotVelocity += 0x200; this->angularVelocity += 0x200;
EnBigpo_UpdateSpin(this); EnBigpo_UpdateSpin(this);
if (this->rotVelocity >= 0x3C00) { if (this->angularVelocity >= 0x3C00) {
EnBigpo_SetupSpinAttack(this); EnBigpo_SetupSpinAttack(this);
} }
} }
@ -636,7 +636,7 @@ void EnBigpo_SpinningDown(EnBigpo* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
Math_SmoothStepToF(&this->actor.world.pos.y, player->actor.world.pos.y + 100.0f, 0.3f, 5.0f, 1.0f); Math_SmoothStepToF(&this->actor.world.pos.y, player->actor.world.pos.y + 100.0f, 0.3f, 5.0f, 1.0f);
Math_StepToF(&this->actor.speed, 0.0f, 0.2f); Math_StepToF(&this->actor.speed, 0.0f, 0.2f);
if (Math_ScaledStepToS(&this->rotVelocity, 0, 0x200)) { if (Math_ScaledStepToS(&this->angularVelocity, 0, 0x200)) {
// spin down complete, re-allow hittable // spin down complete, re-allow hittable
this->collider.base.colType = COLTYPE_HIT3; this->collider.base.colType = COLTYPE_HIT3;
this->collider.base.acFlags &= ~AC_HARD; this->collider.base.acFlags &= ~AC_HARD;

View File

@ -48,7 +48,7 @@ typedef struct EnBigpo {
/* 0x204 */ u8 storePrevBgm; /* 0x204 */ u8 storePrevBgm;
/* 0x206 */ s16 idleTimer; // frame counter /* 0x206 */ s16 idleTimer; // frame counter
/* 0x208 */ s16 unk208; // facing rotY? /* 0x208 */ s16 unk208; // facing rotY?
/* 0x20A */ s16 rotVelocity; /* 0x20A */ s16 angularVelocity;
/* 0x20C */ s16 unk20C; // is this counting the number of frames the player is ztargeting them? /* 0x20C */ s16 unk20C; // is this counting the number of frames the player is ztargeting them?
/* 0x20E */ s16 subCamId; /* 0x20E */ s16 subCamId;
/* 0x210 */ s16 switchFlag; /* 0x210 */ s16 switchFlag;

View File

@ -308,7 +308,7 @@ s32 func_8092CCEC(EnDns* this, PlayState* play) {
s32 func_8092CE38(EnDns* this) { s32 func_8092CE38(EnDns* this) {
static s32 D_8092DE00[] = { EN_DNS_ANIM_DANCE, EN_DNS_ANIM_DANCE, EN_DNS_ANIM_FLIP }; static s32 D_8092DE00[] = { EN_DNS_ANIM_DANCE, EN_DNS_ANIM_DANCE, EN_DNS_ANIM_FLIP };
s16 rotVelocity; s16 angularVelocity;
s32 pad; s32 pad;
Vec3f sp2C; Vec3f sp2C;
s32 ret = false; s32 ret = false;
@ -333,10 +333,10 @@ s32 func_8092CE38(EnDns* this) {
this->actor.shape.rot.y = this->actor.world.rot.y; this->actor.shape.rot.y = this->actor.world.rot.y;
Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_JUMP); Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_JUMP);
} else if (this->skelAnime.curFrame < 13.0f) { } else if (this->skelAnime.curFrame < 13.0f) {
rotVelocity = this->skelAnime.curFrame; angularVelocity = this->skelAnime.curFrame;
this->actor.shape.rot.y = this->actor.world.rot.y; this->actor.shape.rot.y = this->actor.world.rot.y;
rotVelocity *= 0x9D8; angularVelocity *= 0x9D8;
this->actor.shape.rot.y += rotVelocity; this->actor.shape.rot.y += angularVelocity;
this->unk_2E4 -= -(40.0f / 13.0f); this->unk_2E4 -= -(40.0f / 13.0f);
} }
} else { } else {

View File

@ -552,9 +552,9 @@ void EnGo_InitSnow(EnGoEffect effect[ENGO_SNOW_EFFECT_COUNT], Vec3f pos) {
effect->pos.y += 56.0f; effect->pos.y += 56.0f;
// Generate a +-15 degree rotational velocity // Generate a +-15 degree rotational velocity
effect->rotVelocity.x = (Rand_ZeroOne() - 0.5f) * (f32)0x1554; effect->angularVelocity.x = (Rand_ZeroOne() - 0.5f) * 0x1554;
effect->rotVelocity.y = (Rand_ZeroOne() - 0.5f) * (f32)0x1554; effect->angularVelocity.y = (Rand_ZeroOne() - 0.5f) * 0x1554;
effect->rotVelocity.z = (Rand_ZeroOne() - 0.5f) * (f32)0x1554; effect->angularVelocity.z = (Rand_ZeroOne() - 0.5f) * 0x1554;
// Generate a radially outward velocity for each of the effects // Generate a radially outward velocity for each of the effects
velMagnitude = (Rand_ZeroOne() * 4.0f) + 6.0f; velMagnitude = (Rand_ZeroOne() * 4.0f) + 6.0f;
@ -632,9 +632,9 @@ void EnGo_UpdateSnow(EnGoEffect* effect, f32 dustConversionHeight) {
Math_StepToF(&effect->velocity.z, z, (sREG(14) + 40) * 0.01f); Math_StepToF(&effect->velocity.z, z, (sREG(14) + 40) * 0.01f);
} }
effect->rotAngle.x += effect->rotVelocity.x; effect->rot.x += effect->angularVelocity.x;
effect->rotAngle.y += effect->rotVelocity.y; effect->rot.y += effect->angularVelocity.y;
effect->rotAngle.z += effect->rotVelocity.z; effect->rot.z += effect->angularVelocity.z;
} }
/** /**
@ -667,9 +667,9 @@ void EnGo_DrawSnow(EnGoEffect effect[ENGO_SNOW_EFFECT_COUNT], PlayState* play, G
Matrix_Push(); Matrix_Push();
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
Matrix_Scale(0.08f, 0.08f, 0.08f, MTXMODE_APPLY); Matrix_Scale(0.08f, 0.08f, 0.08f, MTXMODE_APPLY);
Matrix_RotateZS(effect->rotAngle.z, MTXMODE_APPLY); Matrix_RotateZS(effect->rot.z, MTXMODE_APPLY);
Matrix_RotateXS(effect->rotAngle.x, MTXMODE_APPLY); Matrix_RotateXS(effect->rot.x, MTXMODE_APPLY);
Matrix_RotateYS(effect->rotAngle.y, MTXMODE_APPLY); Matrix_RotateYS(effect->rot.y, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, model); gSPDisplayList(POLY_OPA_DISP++, model);

View File

@ -33,8 +33,8 @@ typedef struct EnGoEffect {
/* 0x00 */ u8 type; /* 0x00 */ u8 type;
/* 0x01 */ u8 alphaDenom; /* 0x01 */ u8 alphaDenom;
/* 0x02 */ u8 alphaNumer; /* 0x02 */ u8 alphaNumer;
/* 0x04 */ Vec3s rotVelocity; /* 0x04 */ Vec3s angularVelocity;
/* 0x0A */ Vec3s rotAngle; /* 0x0A */ Vec3s rot;
/* 0x10 */ Vec3f pos; /* 0x10 */ Vec3f pos;
/* 0x1C */ Vec3f accel; /* 0x1C */ Vec3f accel;
/* 0x28 */ Vec3f velocity; /* 0x28 */ Vec3f velocity;

File diff suppressed because it is too large Load Diff

View File

@ -5,61 +5,69 @@
struct EnTest7; struct EnTest7;
typedef void (*EnTest7PlayerCamFunc)(struct EnTest7*, PlayState*);
typedef void (*EnTest7ActionFunc)(struct EnTest7*, PlayState*); typedef void (*EnTest7ActionFunc)(struct EnTest7*, PlayState*);
typedef void (*EnTest7UnkFunc)(struct EnTest7*, PlayState*);
typedef void (*EnTest7UnkDrawFunc)(Actor*, PlayState*);
#define ENTEST7_GET(thisx) ((thisx)->params) #define OWL_WARP_CS_GET_OCARINA_MODE(thisx) ((thisx)->params)
#define ENTEST7_MINUS1 -1 #define ENTEST7_ARRIVE -1
#define ENTEST7_26 0x26
#define ENTEST7_1C 0x1C
typedef struct { typedef struct {
/* 0x00 */ f32 unk_00; /* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04; /* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08; /* 0x08 */ f32 xzScale;
/* 0x0C */ f32 unk_0C; /* 0x0C */ f32 yScale;
/* 0x10 */ s16 unk_10; /* 0x10 */ s16 yaw;
} EnTest7Struct; // size >= 0x14 } OwlWarpWindCapsule; // size = 0x14
typedef enum OwlWarpFeatherType {
/* 0 */ OWL_WARP_FEATHER_TYPE_DISABLED,
/* 1 */ OWL_WARP_FEATHER_TYPE_1,
/* 2 */ OWL_WARP_FEATHER_TYPE_2
} OwlWarpFeatherType;
typedef struct { typedef struct {
/* 0x00 */ s32 unk_00; /* 0x00 */ OwlWarpFeatherType type;
/* 0x04 */ s32 unk_04; /* 0x04 */ s32 unk_04;
/* 0x08 */ Vec3f unk_08; /* 0x08 */ Vec3f pos;
/* 0x14 */ f32 unk_14; /* 0x14 */ Vec3f velocity;
/* 0x18 */ f32 unk_18; /* 0x20 */ Vec3f accel;
/* 0x1C */ f32 unk_1C; /* 0x2C */ f32 scale;
/* 0x20 */ f32 unk_20; /* 0x30 */ Vec3s rot;
/* 0x24 */ f32 unk_24; /* 0x36 */ Vec3s angularVelocity;
/* 0x28 */ f32 unk_28; } OwlWarpFeather; // size = 0x3C
/* 0x2C */ f32 unk_2C;
/* 0x30 */ Vec3s unk_30; #define OWL_WARP_NUM_FEATHERS 100
/* 0x36 */ s16 unk_36;
/* 0x38 */ s16 unk_38; #define OWL_WARP_FLAGS_DRAW_WINGS (1 << 0)
/* 0x3A */ s16 unk_3A; #define OWL_WARP_FLAGS_DRAW_WIND_CAPSULE (1 << 1)
} EnTest7Struct2; // size = 0x3C #define OWL_WARP_FLAGS_DRAW_LENS_FLARE (1 << 2)
#define OWL_WARP_FLAGS_8 (1 << 3)
#define OWL_WARP_FLAGS_10 (1 << 4)
#define OWL_WARP_FLAGS_20 (1 << 5)
#define OWL_WARP_FLAGS_40 (1 << 6)
#define OWL_WARP_FLAGS_80 (1 << 7)
typedef struct EnTest7 { typedef struct EnTest7 {
/* 0x0000 */ Actor actor; /* 0x0000 */ Actor actor;
/* 0x0144 */ s32 unk_144; /* 0x0144 */ s32 flags;
/* 0x0148 */ EnTest7Struct unk_148; /* 0x0148 */ OwlWarpWindCapsule windCapsule;
/* 0x015C */ EnTest7Struct2 unk_15C[100]; /* 0x015C */ OwlWarpFeather feathers[OWL_WARP_NUM_FEATHERS];
/* 0x18CC */ SkeletonInfo unk_18CC; /* 0x18CC */ SkeletonInfo skeletonInfo; // wingsSkeletonInfo
/* 0x18FC */ Vec3s unk_18FC[114]; /* 0x18FC */ Vec3s unk_18FC[114]; // wingsFrameData
/* 0x1BA8 */ Vec3s unk_1BA8[114]; /* 0x1BA8 */ Vec3s unk_1BA8[114];
/* 0x1E54 */ s32 unk_1E54; /* 0x1E54 */ s32 timer;
/* 0x1E58 */ EnTest7UnkFunc unk_1E58; /* 0x1E58 */ EnTest7ActionFunc actionFunc;
/* 0x1E5C */ EnTest7ActionFunc actionFunc; /* 0x1E5C */ EnTest7PlayerCamFunc playerCamFunc;
/* 0x1E60 */ Vec3f subCamEye; /* 0x1E60 */ Vec3f subCamEye;
/* 0x1E6C */ Vec3f subCamAt; /* 0x1E6C */ Vec3f subCamAt;
/* 0x1E78 */ f32 subCamFov; /* 0x1E78 */ f32 subCamFov;
/* 0x1E7C */ LightNode* lightNode; /* 0x1E7C */ LightNode* lightNode;
/* 0x1E80 */ LightInfo lightInfo; /* 0x1E80 */ LightInfo lightInfo;
/* 0x1E8E */ s16 unk_1E8E; /* 0x1E8E */ s16 playerYaw;
/* 0x1E90 */ f32 unk_1E90; /* 0x1E90 */ f32 playerScaleX;
/* 0x1E94 */ f32 unk_1E94; /* 0x1E94 */ f32 playerScaleZ;
/* 0x1E98 */ EnTest7UnkDrawFunc unk_1E98; /* 0x1E98 */ ActorFunc playerDrawFunc;
} EnTest7; // size = 0x1E9C } EnTest7; // size = 0x1E9C
#endif // Z_EN_TEST7_H #endif // Z_EN_TEST7_H

View File

@ -220,7 +220,7 @@ void ObjKendoKanban_Init(Actor* thisx, PlayState* play) {
this->rootCornerPos = sZeroVec; this->rootCornerPos = sZeroVec;
this->rotAxis = sUnitVecX; this->rotAxis = sUnitVecX;
this->rotAngle = 0; this->rotAngle = 0;
this->rotVelocity = 0; this->angularVelocity = 0;
this->indexLastRootCornerPos = -1; this->indexLastRootCornerPos = -1;
this->hasNewRootCornerPos = false; this->hasNewRootCornerPos = false;
this->numBounces = 0; this->numBounces = 0;
@ -261,7 +261,7 @@ void ObjKendoKanban_SetupTumble(ObjKendoKanban* this, PlayState* play) {
// Vertical cuts initialize the right half, spawn the left half. // Vertical cuts initialize the right half, spawn the left half.
this->boardFragments = OBJKENDOKANBAN_RIGHT_HALF; this->boardFragments = OBJKENDOKANBAN_RIGHT_HALF;
this->rotVelocity = 0x71C; // 10 degrees this->angularVelocity = 0x71C; // 10 degrees
this->actor.velocity = sVelocityRightHalf; this->actor.velocity = sVelocityRightHalf;
this->centerPoint = sCenterPointRightHalf; this->centerPoint = sCenterPointRightHalf;
@ -276,7 +276,7 @@ void ObjKendoKanban_SetupTumble(ObjKendoKanban* this, PlayState* play) {
} else { } else {
// Horizontal cuts initialize the bottom half, spawn the top half. // Horizontal cuts initialize the bottom half, spawn the top half.
this->boardFragments = OBJKENDOKANBAN_BOTTOM_HALF; this->boardFragments = OBJKENDOKANBAN_BOTTOM_HALF;
this->rotVelocity = -0x71C; // -10 degrees this->angularVelocity = -0x71C; // -10 degrees
this->actor.velocity = sVelocityBottomHalf; this->actor.velocity = sVelocityBottomHalf;
this->centerPoint = sCenterPointBottomHalf; this->centerPoint = sCenterPointBottomHalf;
@ -290,7 +290,7 @@ void ObjKendoKanban_SetupTumble(ObjKendoKanban* this, PlayState* play) {
} }
} else if (this->boardFragments == OBJKENDOKANBAN_LEFT_HALF) { } else if (this->boardFragments == OBJKENDOKANBAN_LEFT_HALF) {
// Initialize the newly spawned left half // Initialize the newly spawned left half
this->rotVelocity = 0x71C; // 10 degrees this->angularVelocity = 0x71C; // 10 degrees
this->actor.velocity = sVelocityLeftHalf; this->actor.velocity = sVelocityLeftHalf;
this->centerPoint = sCenterPointLeftHalf; this->centerPoint = sCenterPointLeftHalf;
@ -300,7 +300,7 @@ void ObjKendoKanban_SetupTumble(ObjKendoKanban* this, PlayState* play) {
this->cornerPoints[3] = sPointBL; this->cornerPoints[3] = sPointBL;
} else if (this->boardFragments == OBJKENDOKANBAN_TOP_HALF) { } else if (this->boardFragments == OBJKENDOKANBAN_TOP_HALF) {
// Initialize the newly spawned top half // Initialize the newly spawned top half
this->rotVelocity = 0x71C; // 10 degrees this->angularVelocity = 0x71C; // 10 degrees
this->actor.velocity = sVelocityTopHalf; this->actor.velocity = sVelocityTopHalf;
this->centerPoint = sCenterPointTopHalf; this->centerPoint = sCenterPointTopHalf;
@ -317,7 +317,7 @@ void ObjKendoKanban_SetupTumble(ObjKendoKanban* this, PlayState* play) {
void ObjKendoKanban_Tumble(ObjKendoKanban* this, PlayState* play) { void ObjKendoKanban_Tumble(ObjKendoKanban* this, PlayState* play) {
this->actor.velocity.y += this->actor.gravity; this->actor.velocity.y += this->actor.gravity;
Actor_UpdatePos(&this->actor); Actor_UpdatePos(&this->actor);
this->rotAngle += this->rotVelocity; this->rotAngle += this->angularVelocity;
ObjKendoKanban_HandlePhysics(this, play); ObjKendoKanban_HandlePhysics(this, play);
if (this->actor.world.pos.y < -200.0f) { if (this->actor.world.pos.y < -200.0f) {
this->actor.world.pos.y = -200.0f; this->actor.world.pos.y = -200.0f;
@ -351,9 +351,9 @@ void ObjKendoKanban_HandlePhysics(ObjKendoKanban* this, PlayState* play) {
vecCenterOut.z -= this->centerPos.z; vecCenterOut.z -= this->centerPos.z;
verticalScalar = (this->rotAxis.x * vecCenterOut.z) + (this->rotAxis.z * -vecCenterOut.x); verticalScalar = (this->rotAxis.x * vecCenterOut.z) + (this->rotAxis.z * -vecCenterOut.x);
if (verticalScalar < 0.0f) { if (verticalScalar < 0.0f) {
this->rotVelocity += 0x64; this->angularVelocity += 0x64;
} else { } else {
this->rotVelocity -= 0x64; this->angularVelocity -= 0x64;
} }
// Find the lowest point // Find the lowest point
@ -396,7 +396,7 @@ void ObjKendoKanban_HandlePhysics(ObjKendoKanban* this, PlayState* play) {
deltaRotAngle -= 0x4000; // 90 degrees deltaRotAngle -= 0x4000; // 90 degrees
} }
this->rotAngle -= deltaRotAngle; this->rotAngle -= deltaRotAngle;
this->rotVelocity = 0; this->angularVelocity = 0;
ObjKendoKanban_SetupSettled(this); ObjKendoKanban_SetupSettled(this);
return; return;
} }
@ -417,16 +417,16 @@ void ObjKendoKanban_HandlePhysics(ObjKendoKanban* this, PlayState* play) {
// Adjust and (potentially) reverse rotation depending on the current // Adjust and (potentially) reverse rotation depending on the current
// facing of the board and the direction in which it is rotating. // facing of the board and the direction in which it is rotating.
if (verticalScalar > 0.0f) { if (verticalScalar > 0.0f) {
if (this->rotVelocity > 0) { if (this->angularVelocity > 0) {
this->rotVelocity *= 1.2f; this->angularVelocity *= 1.2f;
} else { } else {
this->rotVelocity *= -0.6f; this->angularVelocity *= -0.6f;
} }
} else { } else {
if (this->rotVelocity < 0) { if (this->angularVelocity < 0) {
this->rotVelocity *= 1.2f; this->angularVelocity *= 1.2f;
} else { } else {
this->rotVelocity *= -0.6f; this->angularVelocity *= -0.6f;
} }
} }
} }

View File

@ -24,7 +24,7 @@ typedef struct ObjKendoKanban {
/* 0x2FC */ s32 indexLastRootCornerPos; /* 0x2FC */ s32 indexLastRootCornerPos;
/* 0x300 */ s16 hasNewRootCornerPos; /* 0x300 */ s16 hasNewRootCornerPos;
/* 0x302 */ s16 rotAngle; /* 0x302 */ s16 rotAngle;
/* 0x304 */ s16 rotVelocity; /* 0x304 */ s16 angularVelocity;
/* 0x306 */ UNK_TYPE1 pad306[2]; /* 0x306 */ UNK_TYPE1 pad306[2];
/* 0x308 */ s16 numBounces; /* 0x308 */ s16 numBounces;
/* 0x30A */ s16 unk_30A; /* 0x30A */ s16 unk_30A;

View File

@ -71,7 +71,7 @@ void ObjWarpstone_Init(Actor* thisx, PlayState* play) {
Collider_InitAndSetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit); Collider_InitAndSetCylinder(play, &this->collider, &this->dyna.actor, &sCylinderInit);
Actor_SetFocus(&this->dyna.actor, 40.0f); Actor_SetFocus(&this->dyna.actor, 40.0f);
if (!OBJ_WARPSTONE_IS_ACTIVATED(OBJ_WARPSTONE_GET_ID(&this->dyna.actor))) { if (!GET_OWL_STATUE_ACTIVATED(OBJ_WARPSTONE_GET_OWL_WARP_ID(&this->dyna.actor))) {
ObjWarpstone_SetupAction(this, ObjWarpstone_ClosedIdle); ObjWarpstone_SetupAction(this, ObjWarpstone_ClosedIdle);
} else { } else {
ObjWarpstone_SetupAction(this, ObjWarpstone_OpenedIdle); ObjWarpstone_SetupAction(this, ObjWarpstone_OpenedIdle);
@ -110,7 +110,7 @@ s32 ObjWarpstone_BeginOpeningCutscene(ObjWarpstone* this, PlayState* play) {
s32 ObjWarpstone_PlayOpeningCutscene(ObjWarpstone* this, PlayState* play) { s32 ObjWarpstone_PlayOpeningCutscene(ObjWarpstone* this, PlayState* play) {
if (this->openingCSTimer++ >= OBJ_WARPSTONE_TIMER_ACTIVATE_THRESHOLD) { if (this->openingCSTimer++ >= OBJ_WARPSTONE_TIMER_ACTIVATE_THRESHOLD) {
CutsceneManager_Stop(this->dyna.actor.csId); CutsceneManager_Stop(this->dyna.actor.csId);
Sram_ActivateOwl(OBJ_WARPSTONE_GET_ID(&this->dyna.actor)); Sram_ActivateOwl(OBJ_WARPSTONE_GET_OWL_WARP_ID(&this->dyna.actor));
ObjWarpstone_SetupAction(this, ObjWarpstone_OpenedIdle); ObjWarpstone_SetupAction(this, ObjWarpstone_OpenedIdle);
} else if (this->openingCSTimer < OBJ_WARPSTONE_TIMER_OPEN_THRESHOLD) { } else if (this->openingCSTimer < OBJ_WARPSTONE_TIMER_OPEN_THRESHOLD) {
Math_StepToF(&this->dyna.actor.velocity.x, 0.01f, 0.001f); Math_StepToF(&this->dyna.actor.velocity.x, 0.01f, 0.001f);
@ -144,7 +144,7 @@ void ObjWarpstone_Update(Actor* thisx, PlayState* play) {
play->msgCtx.msgMode = MSGMODE_OWL_SAVE_0; play->msgCtx.msgMode = MSGMODE_OWL_SAVE_0;
play->msgCtx.unk120D6 = 0; play->msgCtx.unk120D6 = 0;
play->msgCtx.unk120D4 = 0; play->msgCtx.unk120D4 = 0;
gSaveContext.save.owlSaveLocation = OBJ_WARPSTONE_GET_ID(&this->dyna.actor); gSaveContext.save.owlWarpId = OBJ_WARPSTONE_GET_OWL_WARP_ID(&this->dyna.actor);
} else { } else {
Message_CloseTextbox(play); Message_CloseTextbox(play);
} }

View File

@ -26,7 +26,6 @@ typedef struct ObjWarpstone {
/* 0x1AC */ ObjWarpstoneActionFunc actionFunc; /* 0x1AC */ ObjWarpstoneActionFunc actionFunc;
} ObjWarpstone; // size = 0x1B0 } ObjWarpstone; // size = 0x1B0
#define OBJ_WARPSTONE_GET_ID(thisx) ((u16)((thisx)->params & 0xF)) #define OBJ_WARPSTONE_GET_OWL_WARP_ID(thisx) ((u16)((thisx)->params & 0xF))
#define OBJ_WARPSTONE_IS_ACTIVATED(owlId) (((void)0, gSaveContext.save.saveInfo.playerData.owlActivationFlags) & (u16)gBitFlags[(owlId)])
#endif // Z_OBJ_WARPSTONE_H #endif // Z_OBJ_WARPSTONE_H

View File

@ -10541,7 +10541,7 @@ void Player_InitMode_6(PlayState* play, Player* this) {
this->stateFlags1 |= PLAYER_STATE1_20000000; this->stateFlags1 |= PLAYER_STATE1_20000000;
this->stateFlags2 |= PLAYER_STATE2_20000000; this->stateFlags2 |= PLAYER_STATE2_20000000;
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_TEST7, this->actor.world.pos.x, this->actor.world.pos.y, Actor_Spawn(&play->actorCtx, play, ACTOR_EN_TEST7, this->actor.world.pos.x, this->actor.world.pos.y,
this->actor.world.pos.z, 0, 0, 0, ENTEST7_MINUS1); this->actor.world.pos.z, 0, 0, 0, ENTEST7_ARRIVE);
} }
} }
@ -10610,26 +10610,25 @@ void func_80841A50(PlayState* play, Player* this) {
typedef void (*PlayerInitModeFunc)(PlayState*, Player*); typedef void (*PlayerInitModeFunc)(PlayState*, Player*);
// Initialisation functions for various gameplay modes depending on spawn params. There may be at most 0x10 due to it // Initialisation functions for various gameplay modes depending on spawn params.
// using a single nybble. // There may be at most 0x10 due to it using a single nybble.
// sInitModeFuncs PlayerInitModeFunc sPlayerInitModeFuncs[PLAYER_INITMODE_MAX] = {
PlayerInitModeFunc D_8085D2CC[0x10] = { Player_InitMode_0, // PLAYER_INITMODE_0
/* 0x0 */ Player_InitMode_0, Player_InitMode_1, // PLAYER_INITMODE_1
/* 0x1 */ Player_InitMode_1, Player_InitMode_2, // PLAYER_INITMODE_2
/* 0x2 */ Player_InitMode_2, Player_InitMode_3, // PLAYER_INITMODE_3
/* 0x3 */ Player_InitMode_3, Player_InitMode_4, // PLAYER_INITMODE_4
/* 0x4 */ Player_InitMode_4, Player_InitMode_5, // PLAYER_INITMODE_5
/* 0x5 */ Player_InitMode_5, Player_InitMode_6, // PLAYER_INITMODE_6
/* 0x6 */ Player_InitMode_6, Player_InitMode_7, // PLAYER_INITMODE_7
/* 0x7 */ Player_InitMode_7, func_80841744, // PLAYER_INITMODE_8
/* 0x8 */ func_80841744, func_80841744, // PLAYER_INITMODE_9
/* 0x9 */ func_80841744, func_8083ADF0, // PLAYER_INITMODE_A
/* 0xA */ func_8083ADF0, Player_InitMode_B, // PLAYER_INITMODE_B
/* 0xB */ Player_InitMode_B, Player_InitMode_Telescope, // PLAYER_INITMODE_TELESCOPE
/* 0xC */ Player_InitMode_Telescope, Player_InitMode_D, // PLAYER_INITMODE_D
/* 0xD */ Player_InitMode_D, func_8083ADF0, // PLAYER_INITMODE_E
/* 0xE */ func_8083ADF0, Player_InitMode_F, // PLAYER_INITMODE_F
/* 0xF */ Player_InitMode_F,
}; };
// sBlureInit // sBlureInit
@ -10867,7 +10866,7 @@ void Player_Init(Actor* thisx, PlayState* play) {
initMode = PLAYER_INITMODE_D; initMode = PLAYER_INITMODE_D;
} }
D_8085D2CC[initMode](play, this); sPlayerInitModeFuncs[initMode](play, this);
if ((this->actor.draw != NULL) && gSaveContext.save.hasTatl && if ((this->actor.draw != NULL) && gSaveContext.save.hasTatl &&
((gSaveContext.gameMode == GAMEMODE_NORMAL) || (gSaveContext.gameMode == GAMEMODE_END_CREDITS)) && ((gSaveContext.gameMode == GAMEMODE_NORMAL) || (gSaveContext.gameMode == GAMEMODE_END_CREDITS)) &&

View File

@ -661,17 +661,17 @@ void KaleidoScope_DrawWorldMap(PlayState* play) {
} }
} }
if (IS_PAUSE_STATE_OWLWARP) { if (IS_PAUSE_STATE_OWL_WARP) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
gDPSetRenderMode(POLY_OPA_DISP++, G_RM_XLU_SURF, G_RM_XLU_SURF2); gDPSetRenderMode(POLY_OPA_DISP++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 0, 0, 0, R_PAUSE_OWLWARP_ALPHA); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 0, 0, 0, R_PAUSE_OWL_WARP_ALPHA);
gDPFillRectangle(POLY_OPA_DISP++, 50, 62, 270, 190); gDPFillRectangle(POLY_OPA_DISP++, 50, 62, 270, 190);
} }
Gfx_SetupDL42_Opa(play->state.gfxCtx); Gfx_SetupDL42_Opa(play->state.gfxCtx);
if (!IS_PAUSE_STATE_OWLWARP) { if (!IS_PAUSE_STATE_OWL_WARP) {
// Browsing the world map regions on the pause menu // Browsing the world map regions on the pause menu
gDPLoadTextureBlock(POLY_OPA_DISP++, gWorldMapDotTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0, gDPLoadTextureBlock(POLY_OPA_DISP++, gWorldMapDotTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 8, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
@ -953,7 +953,7 @@ void KaleidoScope_UpdateWorldMapCursor(PlayState* play) {
if (oldCursorPoint != pauseCtx->cursorPoint[PAUSE_WORLD_MAP]) { if (oldCursorPoint != pauseCtx->cursorPoint[PAUSE_WORLD_MAP]) {
Audio_PlaySfx(NA_SE_SY_CURSOR); Audio_PlaySfx(NA_SE_SY_CURSOR);
} }
} else if (pauseCtx->state == PAUSE_STATE_OWLWARP_SELECT) { } else if (pauseCtx->state == PAUSE_STATE_OWL_WARP_SELECT) {
pauseCtx->cursorColorSet = PAUSE_CURSOR_COLOR_SET_BLUE; pauseCtx->cursorColorSet = PAUSE_CURSOR_COLOR_SET_BLUE;
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];

View File

@ -48,13 +48,13 @@ typedef enum {
/* 0x10 */ PAUSE_STATE_GAMEOVER_8, /* 0x10 */ PAUSE_STATE_GAMEOVER_8,
/* 0x11 */ PAUSE_STATE_GAMEOVER_CONTINUE_PROMPT, /* 0x11 */ PAUSE_STATE_GAMEOVER_CONTINUE_PROMPT,
/* 0x12 */ PAUSE_STATE_GAMEOVER_10, /* 0x12 */ PAUSE_STATE_GAMEOVER_10,
/* 0x13 */ PAUSE_STATE_OWLWARP_0, /* 0x13 */ PAUSE_STATE_OWL_WARP_0,
/* 0x14 */ PAUSE_STATE_OWLWARP_1, /* 0x14 */ PAUSE_STATE_OWL_WARP_1,
/* 0x15 */ PAUSE_STATE_OWLWARP_2, /* 0x15 */ PAUSE_STATE_OWL_WARP_2,
/* 0x16 */ PAUSE_STATE_OWLWARP_3, /* 0x16 */ PAUSE_STATE_OWL_WARP_3,
/* 0x17 */ PAUSE_STATE_OWLWARP_SELECT, // Selecting the destination /* 0x17 */ PAUSE_STATE_OWL_WARP_SELECT, // Selecting the destination
/* 0x18 */ PAUSE_STATE_OWLWARP_CONFIRM, // Confirming the choice given /* 0x18 */ PAUSE_STATE_OWL_WARP_CONFIRM, // Confirming the choice given
/* 0x19 */ PAUSE_STATE_OWLWARP_6, /* 0x19 */ PAUSE_STATE_OWL_WARP_6,
/* 0x1A */ PAUSE_STATE_UNPAUSE_SETUP, // Unpause /* 0x1A */ PAUSE_STATE_UNPAUSE_SETUP, // Unpause
/* 0x1B */ PAUSE_STATE_UNPAUSE_CLOSE /* 0x1B */ PAUSE_STATE_UNPAUSE_CLOSE
} PauseState; } PauseState;
@ -89,8 +89,8 @@ typedef enum {
#define IS_PAUSE_STATE_GAMEOVER \ #define IS_PAUSE_STATE_GAMEOVER \
((pauseCtx->state >= PAUSE_STATE_GAMEOVER_0) && (pauseCtx->state <= PAUSE_STATE_GAMEOVER_10)) ((pauseCtx->state >= PAUSE_STATE_GAMEOVER_0) && (pauseCtx->state <= PAUSE_STATE_GAMEOVER_10))
#define IS_PAUSE_STATE_OWLWARP \ #define IS_PAUSE_STATE_OWL_WARP \
((pauseCtx->state >= PAUSE_STATE_OWLWARP_2) && (pauseCtx->state <= PAUSE_STATE_OWLWARP_6)) ((pauseCtx->state >= PAUSE_STATE_OWL_WARP_2) && (pauseCtx->state <= PAUSE_STATE_OWL_WARP_6))
#define IS_PAUSE_MAIN_STATE_SONG_PROMPT \ #define IS_PAUSE_MAIN_STATE_SONG_PROMPT \
((pauseCtx->mainState >= PAUSE_MAIN_STATE_SONG_PROMPT_INIT) && \ ((pauseCtx->mainState >= PAUSE_MAIN_STATE_SONG_PROMPT_INIT) && \

View File

@ -662,8 +662,8 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
} else { } else {
Matrix_RotateYF(R_PAUSE_WORLD_MAP_YAW / 1000.0f, MTXMODE_NEW); Matrix_RotateYF(R_PAUSE_WORLD_MAP_YAW / 1000.0f, MTXMODE_NEW);
if ((pauseCtx->state == PAUSE_STATE_OPENING_3) || (pauseCtx->state == PAUSE_STATE_OWLWARP_3) || if ((pauseCtx->state == PAUSE_STATE_OPENING_3) || (pauseCtx->state == PAUSE_STATE_OWL_WARP_3) ||
(pauseCtx->state >= PAUSE_STATE_OWLWARP_6) || (pauseCtx->state >= PAUSE_STATE_OWL_WARP_6) ||
((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) && ((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) &&
((pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_3) || ((pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_3) ||
(pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_7)))) { (pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_7)))) {
@ -1175,8 +1175,8 @@ void KaleidoScope_DrawOwlWarpMapPage(PlayState* play) {
Matrix_RotateYF(R_PAUSE_WORLD_MAP_YAW / 1000.0f, MTXMODE_NEW); Matrix_RotateYF(R_PAUSE_WORLD_MAP_YAW / 1000.0f, MTXMODE_NEW);
if ((pauseCtx->state == PAUSE_STATE_OPENING_3) || (pauseCtx->state == PAUSE_STATE_OWLWARP_3) || if ((pauseCtx->state == PAUSE_STATE_OPENING_3) || (pauseCtx->state == PAUSE_STATE_OWL_WARP_3) ||
(pauseCtx->state >= PAUSE_STATE_OWLWARP_6) || (pauseCtx->state >= PAUSE_STATE_OWL_WARP_6) ||
((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) && ((pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_3) || ((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) && ((pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_3) ||
(pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_7)))) { (pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_7)))) {
Matrix_Translate(0.0f, (R_PAUSE_WORLD_MAP_Y_OFFSET - 8000) / 100.0f, R_PAUSE_WORLD_MAP_DEPTH / 100.0f, Matrix_Translate(0.0f, (R_PAUSE_WORLD_MAP_Y_OFFSET - 8000) / 100.0f, R_PAUSE_WORLD_MAP_DEPTH / 100.0f,
@ -1376,7 +1376,7 @@ void KaleidoScope_DrawOwlWarpInfoPanel(PlayState* play) {
ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
gDPSetEnvColor(POLY_OPA_DISP++, 20, 30, 40, 0); gDPSetEnvColor(POLY_OPA_DISP++, 20, 30, 40, 0);
if ((pauseCtx->state == PAUSE_STATE_OWLWARP_SELECT) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) && if ((pauseCtx->state == PAUSE_STATE_OWL_WARP_SELECT) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) &&
(pauseCtx->nameDisplayTimer < 40)) { (pauseCtx->nameDisplayTimer < 40)) {
pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63; pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63;
@ -1950,8 +1950,8 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->offsetY = 0; pauseCtx->offsetY = 0;
if ((pauseCtx->state == PAUSE_STATE_OPENING_3) || (pauseCtx->state == PAUSE_STATE_OWLWARP_3) || if ((pauseCtx->state == PAUSE_STATE_OPENING_3) || (pauseCtx->state == PAUSE_STATE_OWL_WARP_3) ||
(pauseCtx->state >= PAUSE_STATE_OWLWARP_6) || (pauseCtx->state >= PAUSE_STATE_OWL_WARP_6) ||
((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) && ((pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_3) || ((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) && ((pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_3) ||
(pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_7)))) { (pauseCtx->savePromptState == PAUSE_SAVEPROMPT_STATE_7)))) {
pauseCtx->offsetY = 80; pauseCtx->offsetY = 80;
@ -2473,14 +2473,14 @@ void KaleidoScope_UpdateCursorSize(PlayState* play) {
case PAUSE_MAP: case PAUSE_MAP:
if (!sInDungeonScene) { if (!sInDungeonScene) {
if (IS_PAUSE_STATE_OWLWARP) { if (IS_PAUSE_STATE_OWL_WARP) {
pauseCtx->cursorX = sOwlWarpWorldMapCursorsX[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]; pauseCtx->cursorX = sOwlWarpWorldMapCursorsX[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]];
pauseCtx->cursorY = sOwlWarpWorldMapCursorsY[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]; pauseCtx->cursorY = sOwlWarpWorldMapCursorsY[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]];
} else { } else {
pauseCtx->cursorX = sWorldMapCursorsX[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]; pauseCtx->cursorX = sWorldMapCursorsX[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]];
pauseCtx->cursorY = sWorldMapCursorsY[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]; pauseCtx->cursorY = sWorldMapCursorsY[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]];
} }
if (!IS_PAUSE_STATE_OWLWARP) { if (!IS_PAUSE_STATE_OWL_WARP) {
pauseCtx->cursorHeight = 10.0f; pauseCtx->cursorHeight = 10.0f;
pauseCtx->cursorWidth = 10.0f; pauseCtx->cursorWidth = 10.0f;
} else { } else {
@ -2684,7 +2684,7 @@ void KaleidoScope_Draw(PlayState* play) {
KaleidoScope_SetView(pauseCtx, pauseCtx->eye.x, pauseCtx->eye.y, pauseCtx->eye.z); KaleidoScope_SetView(pauseCtx, pauseCtx->eye.x, pauseCtx->eye.y, pauseCtx->eye.z);
Gfx_SetupDL42_Opa(play->state.gfxCtx); Gfx_SetupDL42_Opa(play->state.gfxCtx);
if (!IS_PAUSE_STATE_OWLWARP) { if (!IS_PAUSE_STATE_OWL_WARP) {
// Draw Default or Game Over Menus // Draw Default or Game Over Menus
KaleidoScope_SetVertices(play, play->state.gfxCtx); KaleidoScope_SetVertices(play, play->state.gfxCtx);
KaleidoScope_DrawPages(play, play->state.gfxCtx); KaleidoScope_DrawPages(play, play->state.gfxCtx);
@ -2723,7 +2723,7 @@ void KaleidoScope_Draw(PlayState* play) {
KaleidoScope_DrawOwlWarpInfoPanel(play); KaleidoScope_DrawOwlWarpInfoPanel(play);
KaleidoScope_UpdateCursorSize(play); KaleidoScope_UpdateCursorSize(play);
if (pauseCtx->state == PAUSE_STATE_OWLWARP_SELECT) { if (pauseCtx->state == PAUSE_STATE_OWL_WARP_SELECT) {
KaleidoScope_DrawCursor(play); KaleidoScope_DrawCursor(play);
} }
} }
@ -3417,7 +3417,7 @@ void KaleidoScope_Update(PlayState* play) {
} }
break; break;
case PAUSE_STATE_OWLWARP_2: case PAUSE_STATE_OWL_WARP_2:
sPauseMenuVerticalOffset = -6240.0f; sPauseMenuVerticalOffset = -6240.0f;
sUnpausedButtonStatus[EQUIP_SLOT_B] = gSaveContext.buttonStatus[EQUIP_SLOT_B]; sUnpausedButtonStatus[EQUIP_SLOT_B] = gSaveContext.buttonStatus[EQUIP_SLOT_B];
@ -3455,13 +3455,13 @@ void KaleidoScope_Update(PlayState* play) {
DmaMgr_SendRequest0(pauseCtx->iconItemVtxSegment, SEGMENT_ROM_START(icon_item_vtx_static), DmaMgr_SendRequest0(pauseCtx->iconItemVtxSegment, SEGMENT_ROM_START(icon_item_vtx_static),
SEGMENT_ROM_SIZE(icon_item_vtx_static)); SEGMENT_ROM_SIZE(icon_item_vtx_static));
pauseCtx->state = PAUSE_STATE_OWLWARP_3; pauseCtx->state = PAUSE_STATE_OWL_WARP_3;
sGameOverRectPosY = 98; sGameOverRectPosY = 98;
pauseCtx->promptChoice = PAUSE_PROMPT_YES; pauseCtx->promptChoice = PAUSE_PROMPT_YES;
break; break;
case PAUSE_STATE_OWLWARP_3: case PAUSE_STATE_OWL_WARP_3:
R_PAUSE_OWLWARP_ALPHA += 20; R_PAUSE_OWL_WARP_ALPHA += 20;
pauseCtx->infoPanelOffsetY += 10; pauseCtx->infoPanelOffsetY += 10;
pauseCtx->mapPageRoll -= 40.0f; pauseCtx->mapPageRoll -= 40.0f;
interfaceCtx->startAlpha += 63; interfaceCtx->startAlpha += 63;
@ -3476,15 +3476,15 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->alpha = 255; pauseCtx->alpha = 255;
pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE; pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE;
pauseCtx->cursorSpecialPos = 0; pauseCtx->cursorSpecialPos = 0;
pauseCtx->state = PAUSE_STATE_OWLWARP_SELECT; pauseCtx->state = PAUSE_STATE_OWL_WARP_SELECT;
R_PAUSE_OWLWARP_ALPHA = 120; R_PAUSE_OWL_WARP_ALPHA = 120;
} }
break; break;
case PAUSE_STATE_OWLWARP_SELECT: case PAUSE_STATE_OWL_WARP_SELECT:
if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->press.button, BTN_B)) { if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->press.button, BTN_B)) {
func_8011552C(play, DO_ACTION_NONE); func_8011552C(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_OWLWARP_6; pauseCtx->state = PAUSE_STATE_OWL_WARP_6;
sPauseMenuVerticalOffset = -6240.0f; sPauseMenuVerticalOffset = -6240.0f;
Audio_PlaySfx_PauseMenuOpenOrClose(SFX_PAUSE_MENU_CLOSE); Audio_PlaySfx_PauseMenuOpenOrClose(SFX_PAUSE_MENU_CLOSE);
play->msgCtx.ocarinaMode = OCARINA_MODE_END; play->msgCtx.ocarinaMode = OCARINA_MODE_END;
@ -3492,38 +3492,38 @@ void KaleidoScope_Update(PlayState* play) {
} else if (CHECK_BTN_ALL(input->press.button, BTN_A)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
Audio_PlaySfx(NA_SE_SY_DECIDE); Audio_PlaySfx(NA_SE_SY_DECIDE);
Message_StartTextbox(play, 0x1B93, NULL); Message_StartTextbox(play, 0x1B93, NULL);
pauseCtx->state = PAUSE_STATE_OWLWARP_CONFIRM; pauseCtx->state = PAUSE_STATE_OWL_WARP_CONFIRM;
} else { } else {
KaleidoScope_UpdateOwlWarpNamePanel(play); KaleidoScope_UpdateOwlWarpNamePanel(play);
} }
break; break;
case PAUSE_STATE_OWLWARP_CONFIRM: case PAUSE_STATE_OWL_WARP_CONFIRM:
if (CHECK_BTN_ALL(input->press.button, BTN_A)) { if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
msgCtx->msgLength = 0; msgCtx->msgLength = 0;
msgCtx->msgMode = MSGMODE_NONE; msgCtx->msgMode = MSGMODE_NONE;
if (msgCtx->choiceIndex == 0) { if (msgCtx->choiceIndex == 0) {
func_8011552C(play, DO_ACTION_NONE); func_8011552C(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_OWLWARP_6; pauseCtx->state = PAUSE_STATE_OWL_WARP_6;
sPauseMenuVerticalOffset = -6240.0f; sPauseMenuVerticalOffset = -6240.0f;
Audio_PlaySfx_PauseMenuOpenOrClose(SFX_PAUSE_MENU_CLOSE); Audio_PlaySfx_PauseMenuOpenOrClose(SFX_PAUSE_MENU_CLOSE);
play->msgCtx.ocarinaMode = sCursorPointsToOcarinaModes[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]; play->msgCtx.ocarinaMode = sCursorPointsToOcarinaModes[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]];
Audio_PlaySfx(NA_SE_SY_DECIDE); Audio_PlaySfx(NA_SE_SY_DECIDE);
} else { } else {
pauseCtx->state = PAUSE_STATE_OWLWARP_SELECT; pauseCtx->state = PAUSE_STATE_OWL_WARP_SELECT;
func_8011552C(play, DO_ACTION_WARP); func_8011552C(play, DO_ACTION_WARP);
Audio_PlaySfx(NA_SE_SY_MESSAGE_PASS); Audio_PlaySfx(NA_SE_SY_MESSAGE_PASS);
} }
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
msgCtx->msgLength = 0; msgCtx->msgLength = 0;
msgCtx->msgMode = MSGMODE_NONE; msgCtx->msgMode = MSGMODE_NONE;
pauseCtx->state = PAUSE_STATE_OWLWARP_SELECT; pauseCtx->state = PAUSE_STATE_OWL_WARP_SELECT;
Audio_PlaySfx(NA_SE_SY_MESSAGE_PASS); Audio_PlaySfx(NA_SE_SY_MESSAGE_PASS);
} else if (CHECK_BTN_ALL(input->press.button, BTN_START)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
msgCtx->msgLength = 0; msgCtx->msgLength = 0;
msgCtx->msgMode = MSGMODE_NONE; msgCtx->msgMode = MSGMODE_NONE;
func_8011552C(play, DO_ACTION_NONE); func_8011552C(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_OWLWARP_6; pauseCtx->state = PAUSE_STATE_OWL_WARP_6;
sPauseMenuVerticalOffset = -6240.0f; sPauseMenuVerticalOffset = -6240.0f;
Audio_PlaySfx_PauseMenuOpenOrClose(SFX_PAUSE_MENU_CLOSE); Audio_PlaySfx_PauseMenuOpenOrClose(SFX_PAUSE_MENU_CLOSE);
play->msgCtx.ocarinaMode = OCARINA_MODE_END; play->msgCtx.ocarinaMode = OCARINA_MODE_END;
@ -3531,11 +3531,11 @@ void KaleidoScope_Update(PlayState* play) {
} }
break; break;
case PAUSE_STATE_OWLWARP_6: case PAUSE_STATE_OWL_WARP_6:
if (pauseCtx->mapPageRoll != 160.0f) { if (pauseCtx->mapPageRoll != 160.0f) {
R_PAUSE_OWLWARP_ALPHA -= 60; R_PAUSE_OWL_WARP_ALPHA -= 60;
if (R_PAUSE_OWLWARP_ALPHA <= 0) { if (R_PAUSE_OWL_WARP_ALPHA <= 0) {
R_PAUSE_OWLWARP_ALPHA = 0; R_PAUSE_OWL_WARP_ALPHA = 0;
} }
pauseCtx->infoPanelOffsetY -= 10; pauseCtx->infoPanelOffsetY -= 10;
pauseCtx->mapPageRoll += 40.0f; pauseCtx->mapPageRoll += 40.0f;
@ -3691,7 +3691,7 @@ void KaleidoScope_Update(PlayState* play) {
// Process the Cursor input // Process the Cursor input
if ((R_PAUSE_BG_PRERENDER_STATE == PAUSE_BG_PRERENDER_READY) && (pauseCtx->debugEditor == DEBUG_EDITOR_NONE) && if ((R_PAUSE_BG_PRERENDER_STATE == PAUSE_BG_PRERENDER_READY) && (pauseCtx->debugEditor == DEBUG_EDITOR_NONE) &&
!IS_PAUSE_STATE_OWLWARP && !IS_PAUSE_STATE_OWL_WARP &&
(((pauseCtx->state >= PAUSE_STATE_OPENING_3) && (pauseCtx->state <= PAUSE_STATE_SAVEPROMPT)) || (((pauseCtx->state >= PAUSE_STATE_OPENING_3) && (pauseCtx->state <= PAUSE_STATE_SAVEPROMPT)) ||
((pauseCtx->state >= PAUSE_STATE_GAMEOVER_2) && (pauseCtx->state <= PAUSE_STATE_UNPAUSE_SETUP)))) { ((pauseCtx->state >= PAUSE_STATE_GAMEOVER_2) && (pauseCtx->state <= PAUSE_STATE_UNPAUSE_SETUP)))) {
if (!IS_PAUSE_STATE_GAMEOVER) { if (!IS_PAUSE_STATE_GAMEOVER) {
@ -3726,7 +3726,7 @@ void KaleidoScope_Update(PlayState* play) {
if (pauseCtx->state == PAUSE_STATE_MAIN) { if (pauseCtx->state == PAUSE_STATE_MAIN) {
KaleidoScope_UpdateNamePanel(play); KaleidoScope_UpdateNamePanel(play);
} }
} else if (pauseCtx->state == PAUSE_STATE_OWLWARP_SELECT) { } else if (pauseCtx->state == PAUSE_STATE_OWL_WARP_SELECT) {
KaleidoScope_UpdateWorldMapCursor(play); KaleidoScope_UpdateWorldMapCursor(play);
KaleidoScope_UpdateNamePanel(play); KaleidoScope_UpdateNamePanel(play);
} }

View File

@ -12618,41 +12618,41 @@
0x80AF0530:("func_80AF0530",), 0x80AF0530:("func_80AF0530",),
0x80AF06CC:("ObjLupygamelift_Update",), 0x80AF06CC:("ObjLupygamelift_Update",),
0x80AF06F0:("ObjLupygamelift_Draw",), 0x80AF06F0:("ObjLupygamelift_Draw",),
0x80AF0820:("EnTest7_SetupAction",), 0x80AF0820:("EnTest7_SetupPlayerCamFunc",),
0x80AF082C:("func_80AF082C",), 0x80AF082C:("EnTest7_SetupAction",),
0x80AF0838:("func_80AF0838",), 0x80AF0838:("EnTest7_InitFeathers",),
0x80AF0984:("func_80AF0984",), 0x80AF0984:("EnTest7_AddFeather",),
0x80AF0C30:("func_80AF0C30",), 0x80AF0C30:("EnTest7_AddAndChooseFeather",),
0x80AF0CDC:("func_80AF0CDC",), 0x80AF0CDC:("EnTest7_UpdateFeatherType1",),
0x80AF10D8:("func_80AF10D8",), 0x80AF10D8:("EnTest7_UpdateFeatherType2",),
0x80AF118C:("func_80AF118C",), 0x80AF118C:("EnTest7_UpdateFeathers",),
0x80AF14FC:("func_80AF14FC",), 0x80AF14FC:("EnTest7_DrawFeathers",),
0x80AF1730:("func_80AF1730",), 0x80AF1730:("EnTest7_InitWindCapsule",),
0x80AF175C:("EnTest7_Init",), 0x80AF175C:("EnTest7_Init",),
0x80AF1960:("EnTest7_Destroy",), 0x80AF1960:("EnTest7_Destroy",),
0x80AF19A8:("func_80AF19A8",), 0x80AF19A8:("EnTest7_StartWarpCs",),
0x80AF1A2C:("func_80AF1A2C",), 0x80AF1A2C:("EnTest7_WarpCsPart1",),
0x80AF1B68:("func_80AF1B68",), 0x80AF1B68:("EnTest7_UpdateGrowingWindCapsule",),
0x80AF1CA0:("func_80AF1CA0",), 0x80AF1CA0:("EnTest7_WarpCsPart2",),
0x80AF1E44:("func_80AF1E44",), 0x80AF1E44:("EnTest7_WarpCsPart3",),
0x80AF1F48:("func_80AF1F48",), 0x80AF1F48:("EnTest7_WarpCsPart4",),
0x80AF2030:("func_80AF2030",), 0x80AF2030:("EnTest7_WarpCsPart5",),
0x80AF21E8:("func_80AF21E8",), 0x80AF21E8:("EnTest7_WarpCsPart6",),
0x80AF2318:("func_80AF2318",), 0x80AF2318:("EnTest7_WarpCsWait",),
0x80AF2350:("func_80AF2350",), 0x80AF2350:("EnTest7_WarpCsWarp",),
0x80AF24D8:("func_80AF24D8",), 0x80AF24D8:("EnTest7_UpdateSubCamWarpCs2",),
0x80AF2654:("func_80AF2654",), 0x80AF2654:("EnTest7_UpdateSubCamWarpCs1",),
0x80AF2808:("func_80AF2808",), 0x80AF2808:("EnTest7_SpinAndSquishPlayer",),
0x80AF2854:("func_80AF2854",), 0x80AF2854:("EnTest7_PlayerAndSubCamAction",),
0x80AF2938:("func_80AF2938",), 0x80AF2938:("EnTest7_SetupArriveCs",),
0x80AF29C0:("func_80AF29C0",), 0x80AF29C0:("EnTest7_UpdateSubCamArrivalCs1",),
0x80AF2AE8:("func_80AF2AE8",), 0x80AF2AE8:("EnTest7_StartArriveCs",),
0x80AF2BAC:("func_80AF2BAC",), 0x80AF2BAC:("EnTest7_UpdateSubCamArrivalCs2",),
0x80AF2C48:("func_80AF2C48",), 0x80AF2C48:("EnTest7_ArriveCsPart1",),
0x80AF2DB4:("func_80AF2DB4",), 0x80AF2DB4:("EnTest7_UpdateSubCamArrivalCs3",),
0x80AF2EC8:("func_80AF2EC8",), 0x80AF2EC8:("EnTest7_StartArriveCsSkip",),
0x80AF2F98:("func_80AF2F98",), 0x80AF2F98:("EnTest7_ArriveCsPart2",),
0x80AF30F4:("func_80AF30F4",), 0x80AF30F4:("EnTest7_ArriveCsPart3",),
0x80AF3144:("EnTest7_Update",), 0x80AF3144:("EnTest7_Update",),
0x80AF31D0:("func_80AF31D0",), 0x80AF31D0:("func_80AF31D0",),
0x80AF3248:("EnTest7_Draw",), 0x80AF3248:("EnTest7_Draw",),

View File

@ -1935,7 +1935,7 @@
0x801C6A44:("sSaveDebugChecksum","u16","",0x2), 0x801C6A44:("sSaveDebugChecksum","u16","",0x2),
0x801C6A48:("D_801C6A48","UNK_TYPE1","",0x1), 0x801C6A48:("D_801C6A48","UNK_TYPE1","",0x1),
0x801C6A50:("D_801C6A50","UNK_TYPE1","",0x1), 0x801C6A50:("D_801C6A50","UNK_TYPE1","",0x1),
0x801C6A58:("D_801C6A58","UNK_TYPE1","",0x1), 0x801C6A58:("sOwlWarpEntrances","UNK_TYPE1","",0x1),
0x801C6A70:("D_801C6A70","UNK_TYPE1","",0x1), 0x801C6A70:("D_801C6A70","UNK_TYPE1","",0x1),
0x801C6A74:("sOcarinaButtonIndexBufPos","UNK_TYPE2","",0x2), 0x801C6A74:("sOcarinaButtonIndexBufPos","UNK_TYPE2","",0x2),
0x801C6A78:("sOcarinaButtonIndexBufLen","UNK_TYPE2","",0x2), 0x801C6A78:("sOcarinaButtonIndexBufLen","UNK_TYPE2","",0x2),
@ -4980,7 +4980,7 @@
0x8085D2B4:("D_8085D2B4","UNK_TYPE1","",0x1), 0x8085D2B4:("D_8085D2B4","UNK_TYPE1","",0x1),
0x8085D2C0:("sInitChain","ActorInitVar","",0x4), 0x8085D2C0:("sInitChain","ActorInitVar","",0x4),
0x8085D2C4:("sPlayerSkeletonBaseTransl","UNK_TYPE4","",0x4), 0x8085D2C4:("sPlayerSkeletonBaseTransl","UNK_TYPE4","",0x4),
0x8085D2CC:("D_8085D2CC","UNK_PTR","",0x4), 0x8085D2CC:("sPlayerInitModeFuncs","UNK_PTR","",0x4),
0x8085D30C:("D_8085D30C","EffectBlureInit2","",0x24), 0x8085D30C:("D_8085D30C","EffectBlureInit2","",0x24),
0x8085D330:("D_8085D330","EffectTireMarkInit","",0x8), 0x8085D330:("D_8085D330","EffectTireMarkInit","",0x8),
0x8085D338:("D_8085D338","UNK_TYPE4","",0x4), 0x8085D338:("D_8085D338","UNK_TYPE4","",0x4),
@ -13145,16 +13145,16 @@
0x80AF0778:("D_80AF0778","f32","",0x4), 0x80AF0778:("D_80AF0778","f32","",0x4),
0x80AF33F0:("En_Test7_InitVars","UNK_TYPE1","",0x1), 0x80AF33F0:("En_Test7_InitVars","UNK_TYPE1","",0x1),
0x80AF3404:("D_80AF3404","UNK_TYPE1","",0x1), 0x80AF3404:("D_80AF3404","UNK_TYPE1","",0x1),
0x80AF3410:("D_80AF3410","UNK_TYPE4","",0x4), 0x80AF3410:("sFeatherIndex","UNK_TYPE4","",0x4),
0x80AF3414:("D_80AF3414","UNK_TYPE1","",0x1), 0x80AF3414:("sUnitVecY","UNK_TYPE1","",0x1),
0x80AF3420:("D_80AF3420","UNK_TYPE1","",0x1), 0x80AF3420:("sUnitVecZ","UNK_TYPE1","",0x1),
0x80AF342C:("D_80AF342C","UNK_TYPE4","",0x4), 0x80AF342C:("D_80AF342C","UNK_TYPE4","",0x4),
0x80AF3430:("D_80AF3430","UNK_TYPE4","",0x4), 0x80AF3430:("D_80AF3430","UNK_TYPE4","",0x4),
0x80AF3434:("D_80AF3434","UNK_TYPE4","",0x4), 0x80AF3434:("D_80AF3434","UNK_TYPE4","",0x4),
0x80AF3438:("D_80AF3438","UNK_TYPE4","",0x4), 0x80AF3438:("D_80AF3438","UNK_TYPE4","",0x4),
0x80AF3450:("D_80AF3450","UNK_TYPE2","",0x2), 0x80AF3450:("D_80AF3450","UNK_TYPE2","",0x2),
0x80AF3452:("D_80AF3452","UNK_TYPE2","",0x2), 0x80AF3452:("D_80AF3452","UNK_TYPE2","",0x2),
0x80AF3454:("D_80AF3454","f32","",0x4), 0x80AF3454:("sSubCamAtOffset","f32","",0x4),
0x80AF3460:("D_80AF3460","f32","",0x4), 0x80AF3460:("D_80AF3460","f32","",0x4),
0x80AF3464:("D_80AF3464","f32","",0x4), 0x80AF3464:("D_80AF3464","f32","",0x4),
0x80AF3468:("D_80AF3468","f32","",0x4), 0x80AF3468:("D_80AF3468","f32","",0x4),
@ -13194,10 +13194,10 @@
0x80AF34F0:("D_80AF34F0","f32","",0x4), 0x80AF34F0:("D_80AF34F0","f32","",0x4),
0x80AF34F4:("D_80AF34F4","f32","",0x4), 0x80AF34F4:("D_80AF34F4","f32","",0x4),
0x80AF34F8:("D_80AF34F8","f32","",0x4), 0x80AF34F8:("D_80AF34F8","f32","",0x4),
0x80AF38B0:("D_80AF38B0","UNK_TYPE1","",0x1), 0x80AF38B0:("sFeatherRotMf","UNK_TYPE1","",0x1),
0x80AF38F0:("D_80AF38F0","Vec3f","",0xC), 0x80AF38F0:("sFeatherAccel","Vec3f","",0xC),
0x80AF38FC:("D_80AF38FC","UNK_TYPE4","",0x4), 0x80AF38FC:("D_80AF38FC","UNK_TYPE4","",0x4),
0x80AF3900:("D_80AF3900","Vec3f","",0xC), 0x80AF3900:("sFeatherUnused","Vec3f","",0xC),
0x80AF3E80:("Obj_Lightblock_InitVars","UNK_TYPE1","",0x1), 0x80AF3E80:("Obj_Lightblock_InitVars","UNK_TYPE1","",0x1),
0x80AF3EA0:("D_80AF3EA0","UNK_TYPE1","",0x1), 0x80AF3EA0:("D_80AF3EA0","UNK_TYPE1","",0x1),
0x80AF3ECC:("D_80AF3ECC","UNK_TYPE1","",0x1), 0x80AF3ECC:("D_80AF3ECC","UNK_TYPE1","",0x1),