1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 14:34:32 +00:00

Big cleanup (#775)

* Adult and child2 macros OK

* ICHAIN cleanup

* almost all overlay data

* format.sh

* func_8002FBAC NON_EQUIVALENT

* PR fixes (MZXrules)

* fix

* change //@ bug to //! @bug

* merge master and missed a //@bug

* fix ruto

* some more cleanup (#2)

* more `! @bug` formatting cleanup

* parenthesis cleanup

* hex naviEnemyId

* run formatter

* replace `IS_NOT_` macros with `!IS_`

* run formatter

* run formatter

* PR fixes (fig)

* Missed something

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
louist103 2021-08-21 19:12:57 -04:00 committed by GitHub
parent 17c79a8f60
commit 556cdad7eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
177 changed files with 902 additions and 862 deletions

View file

@ -26,11 +26,15 @@
#define ACTIVE_CAM globalCtx->cameraPtrs[globalCtx->activeCamera] #define ACTIVE_CAM globalCtx->cameraPtrs[globalCtx->activeCamera]
#define LINK_IS_ADULT (gSaveContext.linkAge == 0)
#define LINK_IS_CHILD (gSaveContext.linkAge == 1)
#define YEARS_CHILD 5 #define YEARS_CHILD 5
#define YEARS_ADULT 17 #define YEARS_ADULT 17
#define LINK_IS_CHILD (gSaveContext.linkAge != 0) #define LINK_AGE_IN_YEARS (!LINK_IS_ADULT ? YEARS_CHILD : YEARS_ADULT)
#define LINK_IS_ADULT (gSaveContext.linkAge == 0)
#define LINK_AGE_IN_YEARS (LINK_IS_CHILD ? YEARS_CHILD : YEARS_ADULT) #define IS_DAY (gSaveContext.nightFlag == 0)
#define IS_NIGHT (gSaveContext.nightFlag == 1)
#define SLOT(item) gItemSlots[item] #define SLOT(item) gItemSlots[item]
#define INV_CONTENT(item) gSaveContext.inventory.items[SLOT(item)] #define INV_CONTENT(item) gSaveContext.inventory.items[SLOT(item)]

View file

@ -999,7 +999,7 @@ void* func_800E0540(s32 poolIdx, s32 id, u32 size) {
gAudioContext.unk_2D60[sp18].poolIndex = poolIdx; gAudioContext.unk_2D60[sp18].poolIndex = poolIdx;
gAudioContext.unk_2D60[sp18].id = id; gAudioContext.unk_2D60[sp18].id = id;
gAudioContext.unk_2D60[sp18].size = size; gAudioContext.unk_2D60[sp18].size = size;
// @bug UB: missing return. "ret" is in v0 at this point, but doing an //! @bug UB: missing return. "ret" is in v0 at this point, but doing an
// explicit return uses an additional register. // explicit return uses an additional register.
// return ret; // return ret;
} }

View file

@ -1231,7 +1231,7 @@ void Audio_SequenceChannelProcessScript(SequenceChannel* channel) {
case 0xE4: case 0xE4:
if (scriptState->value != -1) { if (scriptState->value != -1) {
data = (*channel->dynTable)[scriptState->value]; data = (*channel->dynTable)[scriptState->value];
// @bug: Missing a stack depth check here //! @bug: Missing a stack depth check here
scriptState->stack[scriptState->depth++] = scriptState->pc; scriptState->stack[scriptState->depth++] = scriptState->pc;
offset = (u16)((data[0] << 8) + data[1]); offset = (u16)((data[0] << 8) + data[1]);
scriptState->pc = player->seqData + offset; scriptState->pc = player->seqData + offset;
@ -1254,7 +1254,7 @@ void Audio_SequenceChannelProcessScript(SequenceChannel* channel) {
channel->panChannelWeight = data[-2]; channel->panChannelWeight = data[-2];
channel->reverb = data[-1]; channel->reverb = data[-1];
channel->reverbIndex = data[0]; channel->reverbIndex = data[0];
//@bug: Not marking reverb state as changed //! @bug: Not marking reverb state as changed
channel->changes.s.pan = true; channel->changes.s.pan = true;
break; break;
case 0xE8: case 0xE8:
@ -1267,7 +1267,7 @@ void Audio_SequenceChannelProcessScript(SequenceChannel* channel) {
channel->panChannelWeight = Audio_M64ReadU8(scriptState); channel->panChannelWeight = Audio_M64ReadU8(scriptState);
channel->reverb = Audio_M64ReadU8(scriptState); channel->reverb = Audio_M64ReadU8(scriptState);
channel->reverbIndex = Audio_M64ReadU8(scriptState); channel->reverbIndex = Audio_M64ReadU8(scriptState);
//@bug: Not marking reverb state as changed //! @bug: Not marking reverb state as changed
channel->changes.s.pan = true; channel->changes.s.pan = true;
break; break;
case 0xEC: case 0xEC:

View file

@ -29,7 +29,7 @@ void func_800430A0(CollisionContext* colCtx, s32 bgId, Actor* actor) {
pos.y <= -BGCHECK_XYZ_ABSMAX || BGCHECK_XYZ_ABSMAX <= pos.z || pos.z <= -BGCHECK_XYZ_ABSMAX) { pos.y <= -BGCHECK_XYZ_ABSMAX || BGCHECK_XYZ_ABSMAX <= pos.z || pos.z <= -BGCHECK_XYZ_ABSMAX) {
osSyncPrintf(VT_FGCOL(RED)); osSyncPrintf(VT_FGCOL(RED));
// @bug file and line are not passed to osSyncPrintf //! @bug file and line are not passed to osSyncPrintf
// Position is not valid // Position is not valid
osSyncPrintf( osSyncPrintf(
"BGCheckCollection_typicalActorPos():位置が妥当ではありません。\npos (%f,%f,%f) file:%s line:%d\n", "BGCheckCollection_typicalActorPos():位置が妥当ではありません。\npos (%f,%f,%f) file:%s line:%d\n",

View file

@ -227,7 +227,7 @@ void func_800F7680(void) {
if (gSoundBanks[phi_s5][phi_a1].unk_28 == sp50->sfxId) { if (gSoundBanks[phi_s5][phi_a1].unk_28 == sp50->sfxId) {
sp55 = D_80130594[D_801333CC][phi_s5]; sp55 = D_80130594[D_801333CC][phi_s5];
} else { } else {
//!@bug possibly uninitialized sp43 ? confirm when matching //! @bug possibly uninitialized sp43 ? confirm when matching
if (sp55 == 0) { if (sp55 == 0) {
phi_s1 = phi_a1; phi_s1 = phi_a1;
flag1 = gSoundBanks[phi_s5][phi_a1].unk_28 & 0xFFFF; flag1 = gSoundBanks[phi_s5][phi_a1].unk_28 & 0xFFFF;

View file

@ -322,7 +322,7 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
GfxPool* pool = &gGfxPools[gfxCtx->gfxPoolIdx & 1]; GfxPool* pool = &gGfxPools[gfxCtx->gfxPoolIdx & 1];
if (pool->headMagic != GFXPOOL_HEAD_MAGIC) { if (pool->headMagic != GFXPOOL_HEAD_MAGIC) {
// @bug (?) : devs might've forgotten "problem = true;" //! @bug (?) : devs might've forgotten "problem = true;"
osSyncPrintf("%c", 7); osSyncPrintf("%c", 7);
// Dynamic area head is destroyed // Dynamic area head is destroyed
osSyncPrintf(VT_COL(RED, WHITE) "ダイナミック領域先頭が破壊されています\n" VT_RST); osSyncPrintf(VT_COL(RED, WHITE) "ダイナミック領域先頭が破壊されています\n" VT_RST);

View file

@ -626,7 +626,7 @@ s32 Math3D_PointRelativeToCubeVertices(Vec3f* point, Vec3f* min, Vec3f* max) {
ret |= 0x10; ret |= 0x10;
} }
// @BUG: The next 2 conditions are the same check. //! @bug: The next 2 conditions are the same check.
if ((-min->x - min->y + max->z) < (-point->x - point->y + point->z)) { if ((-min->x - min->y + max->z) < (-point->x - point->y + point->z)) {
ret |= 0x20; ret |= 0x20;
} }
@ -726,7 +726,7 @@ s32 Math3D_LineVsCube(Vec3f* min, Vec3f* max, Vec3f* a, Vec3f* b) {
triVtx1.y = min->y; triVtx1.y = min->y;
triVtx1.z = max->z; triVtx1.z = max->z;
triVtx2.x = max->x; triVtx2.x = max->x;
// @Bug trVtx1.y should be triVtx2.y, prevents a tri on the cube from being checked. //! @bug trVtx1.y should be triVtx2.y, prevents a tri on the cube from being checked.
triVtx1.y = min->y; triVtx1.y = min->y;
triVtx2.z = max->z; triVtx2.z = max->z;
if (Math3D_TriLineIntersect(&triVtx0, &triVtx1, &triVtx2, 0.0f, 0.0f, 1.0f, -max->z, a, b, &intersectPoint, 0)) { if (Math3D_TriLineIntersect(&triVtx0, &triVtx1, &triVtx2, 0.0f, 0.0f, 1.0f, -max->z, a, b, &intersectPoint, 0)) {

View file

@ -1819,7 +1819,7 @@ void func_8002FBAC(GlobalContext* globalCtx) {
spF0 = gSaveContext.respawn[RESPAWN_MODE_TOP].data; spF0 = gSaveContext.respawn[RESPAWN_MODE_TOP].data;
if (spF0 != 0) { if (spF0 != 0) {
f32 spD8 = (LINK_IS_ADULT) ? 80.0f : 60.0f; f32 spD8 = LINK_IS_ADULT ? 80.0f : 60.0f;
f32 spD4 = 1.0f; f32 spD4 = 1.0f;
s32 spD0 = 0xFF; s32 spD0 = 0xFF;
s32 spCC = spF0 - 40; s32 spCC = spF0 - 40;
@ -4239,7 +4239,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 1: case 1:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
if (Flags_GetInfTable(0x10)) { if (Flags_GetInfTable(0x10)) {
retTextId = 0x1046; retTextId = 0x1046;
@ -4286,7 +4286,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 2: case 2:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1042; retTextId = 0x1042;
} else { } else {
@ -4303,7 +4303,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 3: case 3:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1043; retTextId = 0x1043;
} else { } else {
@ -4322,7 +4322,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 4: case 4:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1042; retTextId = 0x1042;
} else { } else {
@ -4339,7 +4339,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 5: case 5:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1044; retTextId = 0x1044;
} else if (Flags_GetInfTable(0x22)) { } else if (Flags_GetInfTable(0x22)) {
@ -4356,7 +4356,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 6: case 6:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1042; retTextId = 0x1042;
} else if (Flags_GetInfTable(0x24)) { } else if (Flags_GetInfTable(0x24)) {
@ -4373,7 +4373,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 7: case 7:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1043; retTextId = 0x1043;
} else if (Flags_GetInfTable(0x26)) { } else if (Flags_GetInfTable(0x26)) {
@ -4390,7 +4390,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 8: case 8:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1043; retTextId = 0x1043;
} else if (Flags_GetInfTable(0x28)) { } else if (Flags_GetInfTable(0x28)) {
@ -4409,7 +4409,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 9: case 9:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x1049; retTextId = 0x1049;
} else { } else {
@ -4424,7 +4424,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 10: case 10:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x104A; retTextId = 0x104A;
} else { } else {
@ -4441,7 +4441,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 11: case 11:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x104B; retTextId = 0x104B;
} else { } else {
@ -4456,7 +4456,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 12: case 12:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x104C; retTextId = 0x104C;
} else { } else {
@ -4471,7 +4471,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 13: case 13:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x9)) { if (Flags_GetEventChkInf(0x9)) {
retTextId = 0x104D; retTextId = 0x104D;
} else { } else {
@ -4653,7 +4653,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
retTextId = 0x5002; retTextId = 0x5002;
break; break;
case 38: case 38:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x25)) { if (Flags_GetEventChkInf(0x25)) {
retTextId = 0x3027; retTextId = 0x3027;
} else if (Flags_GetEventChkInf(0x23)) { } else if (Flags_GetEventChkInf(0x23)) {
@ -4672,7 +4672,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 39: case 39:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x25)) { if (Flags_GetEventChkInf(0x25)) {
retTextId = 0x3027; retTextId = 0x3027;
} else if (Flags_GetEventChkInf(0x23)) { } else if (Flags_GetEventChkInf(0x23)) {
@ -4689,7 +4689,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 40: case 40:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x25)) { if (Flags_GetEventChkInf(0x25)) {
retTextId = 0x3027; retTextId = 0x3027;
} else if (Flags_GetEventChkInf(0x23)) { } else if (Flags_GetEventChkInf(0x23)) {
@ -4708,7 +4708,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 41: case 41:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x25)) { if (Flags_GetEventChkInf(0x25)) {
retTextId = 0x3027; retTextId = 0x3027;
} else if (Flags_GetInfTable(0xF0)) { } else if (Flags_GetInfTable(0xF0)) {
@ -4725,7 +4725,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 42: case 42:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x25)) { if (Flags_GetEventChkInf(0x25)) {
retTextId = 0x3027; retTextId = 0x3027;
} else if (Flags_GetInfTable(0xF4)) { } else if (Flags_GetInfTable(0xF4)) {
@ -4742,7 +4742,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 43: case 43:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x25)) { if (Flags_GetEventChkInf(0x25)) {
retTextId = 0x3027; retTextId = 0x3027;
} else if (Flags_GetInfTable(0xF8)) { } else if (Flags_GetInfTable(0xF8)) {
@ -4834,7 +4834,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 55: case 55:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x37)) { if (Flags_GetEventChkInf(0x37)) {
retTextId = 0x402B; retTextId = 0x402B;
} else if (Flags_GetEventChkInf(0x31)) { } else if (Flags_GetEventChkInf(0x31)) {
@ -4896,7 +4896,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
break; break;
case 72: case 72:
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0x14)) { if (Flags_GetEventChkInf(0x14)) {
retTextId = 0x2040; retTextId = 0x2040;
} else if (Flags_GetInfTable(0x94)) { } else if (Flags_GetInfTable(0x94)) {
@ -4906,7 +4906,7 @@ u32 func_80035BFC(GlobalContext* globalCtx, s16 arg1) {
} }
} else { } else {
if (!Flags_GetEventChkInf(0x18)) { if (!Flags_GetEventChkInf(0x18)) {
if (gSaveContext.nightFlag != 0) { if (!IS_DAY) {
retTextId = 0x204E; retTextId = 0x204E;
} else if (Flags_GetInfTable(0x9A)) { } else if (Flags_GetInfTable(0x9A)) {
retTextId = 0x2031; retTextId = 0x2031;

View file

@ -274,7 +274,7 @@ void CollisionPoly_GetVerticesByBgId(CollisionPoly* poly, s32 bgId, CollisionCon
osSyncPrintf(VT_RST); osSyncPrintf(VT_RST);
if (dest != NULL) { if (dest != NULL) {
// @bug: dest[2] x and y are not set to 0 //! @bug: dest[2] x and y are not set to 0
dest[0].x = dest[0].y = dest[0].z = dest[1].x = dest[1].y = dest[1].z = dest[2].z = 0.0f; dest[0].x = dest[0].y = dest[0].z = dest[1].x = dest[1].y = dest[1].z = dest[2].z = 0.0f;
} }
} else { } else {

View file

@ -2143,7 +2143,7 @@ s32 Camera_Parallel3(Camera* camera) {
if (val & 2) { if (val & 2) {
camera->unk_14C |= 0x10; camera->unk_14C |= 0x10;
} }
// @bug doesn't return //! @bug doesn't return
} }
s32 Camera_Parallel4(Camera* camera) { s32 Camera_Parallel4(Camera* camera) {
@ -6106,7 +6106,7 @@ s32 Camera_Demo7(Camera* camera) {
camera->unk_14C |= 0x1000; camera->unk_14C |= 0x1000;
camera->animState++; camera->animState++;
} }
// @bug doesn't return //! @bug doesn't return
} }
s32 Camera_Demo8(Camera* camera) { s32 Camera_Demo8(Camera* camera) {
@ -7153,7 +7153,7 @@ s32 Camera_CheckWater(Camera* camera) {
} }
func_800F6828(0); func_800F6828(0);
} }
// @BUG: doesn't always return a value, but sometimes does. //! @bug: doesn't always return a value, but sometimes does.
} }
/** /**
@ -7723,7 +7723,7 @@ s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags) {
return -2; return -2;
} }
} }
if (((setting == CAM_SET_SPOT05A) || (setting == CAM_SET_SPOT05B)) && (LINK_IS_ADULT) && if (((setting == CAM_SET_SPOT05A) || (setting == CAM_SET_SPOT05B)) && LINK_IS_ADULT &&
(camera->globalCtx->sceneNum == SCENE_SPOT05)) { (camera->globalCtx->sceneNum == SCENE_SPOT05)) {
camera->unk_14A |= 0x10; camera->unk_14A |= 0x10;
return -5; return -5;
@ -7799,7 +7799,7 @@ s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx) {
camera->unk_14A |= 4; camera->unk_14A |= 4;
Camera_CopyModeValuesToPREG(camera, camera->mode); Camera_CopyModeValuesToPREG(camera, camera->mode);
} else if (settingChangeSuccessful < -1) { } else if (settingChangeSuccessful < -1) {
// @bug: This is likely checking the wrong value. The actual return of Camera_ChangeSettingFlags or //! @bug: This is likely checking the wrong value. The actual return of Camera_ChangeSettingFlags or
// camDataIdx would make more sense. // camDataIdx would make more sense.
osSyncPrintf(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST, camDataIdx, osSyncPrintf(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST, camDataIdx,
camera->thisIdx, 0x32, newCameraSetting); camera->thisIdx, 0x32, newCameraSetting);

View file

@ -151,13 +151,13 @@ void func_8006390C(Input* input) {
gGameInfo->dpadLast = dpad; gGameInfo->dpadLast = dpad;
} }
increment = (CHECK_BTN_ANY(dpad, BTN_DRIGHT)) increment = CHECK_BTN_ANY(dpad, BTN_DRIGHT)
? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B) ? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B)
? 1000 ? 1000
: CHECK_BTN_ALL(input->cur.button, BTN_A) : CHECK_BTN_ALL(input->cur.button, BTN_A)
? 100 ? 100
: CHECK_BTN_ALL(input->cur.button, BTN_B) ? 10 : 1) : CHECK_BTN_ALL(input->cur.button, BTN_B) ? 10 : 1)
: (CHECK_BTN_ANY(dpad, BTN_DLEFT)) : CHECK_BTN_ANY(dpad, BTN_DLEFT)
? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B) ? (CHECK_BTN_ALL(input->cur.button, BTN_A | BTN_B)
? -1000 ? -1000
: CHECK_BTN_ALL(input->cur.button, BTN_A) : CHECK_BTN_ALL(input->cur.button, BTN_A)

View file

@ -367,7 +367,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
gSaveContext.unk_1422 = 1; gSaveContext.unk_1422 = 1;
break; break;
case 34: case 34:
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
gSaveContext.dayTime -= D_8011FB40; gSaveContext.dayTime -= D_8011FB40;
} else { } else {
gSaveContext.dayTime -= D_8011FB40 * 2; gSaveContext.dayTime -= D_8011FB40 * 2;
@ -523,7 +523,7 @@ void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCt
globalCtx->fadeTransition = 11; globalCtx->fadeTransition = 11;
} else { } else {
if (gSaveContext.sceneSetupIndex < 4) { if (gSaveContext.sceneSetupIndex < 4) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
globalCtx->linkAgeOnLoad = 0; globalCtx->linkAgeOnLoad = 0;
} else { } else {
globalCtx->linkAgeOnLoad = 1; globalCtx->linkAgeOnLoad = 1;

View file

@ -36,10 +36,10 @@ u32 ElfMessage_CheckCondition(ElfMessage* msg) {
gSaveContext.inventory.equipment) != 0); gSaveContext.inventory.equipment) != 0);
case 0x20: case 0x20:
return ((msg->byte0 & 1) == 1) == return ((msg->byte0 & 1) == 1) ==
((CHECK_QUEST_ITEM(msg->byte3 - ITEM_SONG_MINUET + QUEST_SONG_MINUET)) != 0); (CHECK_QUEST_ITEM(msg->byte3 - ITEM_SONG_MINUET + QUEST_SONG_MINUET) != 0);
case 0x30: case 0x30:
return ((msg->byte0 & 1) == 1) == return ((msg->byte0 & 1) == 1) ==
((CHECK_QUEST_ITEM(msg->byte3 - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST)) != 0); (CHECK_QUEST_ITEM(msg->byte3 - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST) != 0);
case 0x40: case 0x40:
return ((msg->byte0 & 1) == 1) == (((void)0, gSaveContext.magicAcquired) != 0); return ((msg->byte0 & 1) == 1) == (((void)0, gSaveContext.magicAcquired) != 0);
} }
@ -141,7 +141,7 @@ u16 ElfMessage_GetSariaText(GlobalContext* globalCtx) {
Player* player = PLAYER; Player* player = PLAYER;
ElfMessage* msgs; ElfMessage* msgs;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Actor_FindNearby(globalCtx, &player->actor, ACTOR_EN_SA, 4, 800.0f) == NULL) { if (Actor_FindNearby(globalCtx, &player->actor, ACTOR_EN_SA, 4, 800.0f) == NULL) {
msgs = sChildSariaMsgs; msgs = sChildSariaMsgs;
} else { } else {

View file

@ -1275,7 +1275,7 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
params = 0xA * 0x10; params = 0xA * 0x10;
dropTableIndex = 0x0; dropTableIndex = 0x0;
dropId = ITEM00_MAGIC_SMALL; dropId = ITEM00_MAGIC_SMALL;
} else if (LINK_IS_CHILD && (AMMO(ITEM_SLINGSHOT) < 6)) { } else if (!LINK_IS_ADULT && (AMMO(ITEM_SLINGSHOT) < 6)) {
params = 0xA * 0x10; params = 0xA * 0x10;
dropTableIndex = 0x0; dropTableIndex = 0x0;
dropId = ITEM00_SEEDS; dropId = ITEM00_SEEDS;

View file

@ -112,7 +112,7 @@ void func_8006D0EC(GlobalContext* globalCtx, Player* player) {
} }
} }
} else if (!Flags_GetEventChkInf(0x18)) { } else if (!Flags_GetEventChkInf(0x18)) {
if ((DREG(1) == 0) && (globalCtx->sceneNum == SCENE_SOUKO) && (gSaveContext.nightFlag != 0)) { if ((DREG(1) == 0) && (globalCtx->sceneNum == SCENE_SOUKO) && !IS_DAY) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, 0.0f, 0.0f, -60.0f, 0, 0x7360, 0, 1); Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HORSE, 0.0f, 0.0f, -60.0f, 0, 0x7360, 0, 1);
} }
} }

View file

@ -964,7 +964,7 @@ s32 OnePointCutscene_SetInfo(GlobalContext* globalCtx, s16 camIdx, s16 csId, Act
break; break;
case 9908: case 9908:
if (func_800C0CB8(globalCtx)) { if (func_800C0CB8(globalCtx)) {
D_801231B4[0].eyeTargetInit.z = D_801231B4[1].eyeTargetInit.z = LINK_IS_CHILD ? 100.0f : 120.0f; D_801231B4[0].eyeTargetInit.z = D_801231B4[1].eyeTargetInit.z = !LINK_IS_ADULT ? 100.0f : 120.0f;
if (player->stateFlags1 & 0x08000000) { if (player->stateFlags1 & 0x08000000) {
D_801231B4[2].atTargetInit.z = 0.0f; D_801231B4[2].atTargetInit.z = 0.0f;

View file

@ -261,18 +261,18 @@ void Gameplay_Init(GameState* thisx) {
gSaveContext.nayrusLoveTimer = 0; gSaveContext.nayrusLoveTimer = 0;
func_800876C8(globalCtx); func_800876C8(globalCtx);
gSaveContext.sceneSetupIndex = (gSaveContext.cutsceneIndex & 0xF) + 4; gSaveContext.sceneSetupIndex = (gSaveContext.cutsceneIndex & 0xF) + 4;
} else if (LINK_IS_CHILD && gSaveContext.nightFlag == 0) { } else if (!LINK_IS_ADULT && IS_DAY) {
gSaveContext.sceneSetupIndex = 0; gSaveContext.sceneSetupIndex = 0;
} else if (LINK_IS_CHILD && gSaveContext.nightFlag != 0) { } else if (!LINK_IS_ADULT && !IS_DAY) {
gSaveContext.sceneSetupIndex = 1; gSaveContext.sceneSetupIndex = 1;
} else if (LINK_IS_ADULT && gSaveContext.nightFlag == 0) { } else if (LINK_IS_ADULT && IS_DAY) {
gSaveContext.sceneSetupIndex = 2; gSaveContext.sceneSetupIndex = 2;
} else { } else {
gSaveContext.sceneSetupIndex = 3; gSaveContext.sceneSetupIndex = 3;
} }
tempSetupIndex = gSaveContext.sceneSetupIndex; tempSetupIndex = gSaveContext.sceneSetupIndex;
if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_SPOT00) && LINK_IS_CHILD && if ((gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_SPOT00) && !LINK_IS_ADULT &&
gSaveContext.sceneSetupIndex < 4) { gSaveContext.sceneSetupIndex < 4) {
if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) && if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) &&
CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) { CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) {

View file

@ -262,7 +262,7 @@ void Player_SetBootData(GlobalContext* globalCtx, Player* this) {
currentBoots = this->currentBoots; currentBoots = this->currentBoots;
if (currentBoots == PLAYER_BOOTS_NORMAL) { if (currentBoots == PLAYER_BOOTS_NORMAL) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
currentBoots = PLAYER_BOOTS_NORMAL_CHILD; currentBoots = PLAYER_BOOTS_NORMAL_CHILD;
} }
} else if (currentBoots == PLAYER_BOOTS_IRON) { } else if (currentBoots == PLAYER_BOOTS_IRON) {
@ -314,7 +314,7 @@ s32 func_8008E9C4(Player* this) {
} }
s32 Player_IsChildWithHylianShield(Player* this) { s32 Player_IsChildWithHylianShield(Player* this) {
return LINK_IS_CHILD && (this->currentShield == PLAYER_SHIELD_HYLIAN); return gSaveContext.linkAge != 0 && (this->currentShield == PLAYER_SHIELD_HYLIAN);
} }
s32 Player_ActionToModelGroup(Player* this, s32 actionParam) { s32 Player_ActionToModelGroup(Player* this, s32 actionParam) {
@ -825,7 +825,7 @@ s32 func_8008FCC8(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
D_80160018 = this->rightHandType; D_80160018 = this->rightHandType;
D_80160000 = &this->swordInfo[2].base; D_80160000 = &this->swordInfo[2].base;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (!(this->skelAnime.moveFlags & 4) || (this->skelAnime.moveFlags & 1)) { if (!(this->skelAnime.moveFlags & 4) || (this->skelAnime.moveFlags & 1)) {
pos->x *= 0.64f; pos->x *= 0.64f;
pos->z *= 0.64f; pos->z *= 0.64f;
@ -917,11 +917,11 @@ s32 func_80090014(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
if ((this->sheathType == 18) || (this->sheathType == 19)) { if ((this->sheathType == 18) || (this->sheathType == 19)) {
dLists += this->currentShield * 4; dLists += this->currentShield * 4;
if ((LINK_IS_CHILD) && (this->currentShield < PLAYER_SHIELD_HYLIAN) && if (!LINK_IS_ADULT && (this->currentShield < PLAYER_SHIELD_HYLIAN) &&
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) { (gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
dLists += 16; dLists += 16;
} }
} else if ((LINK_IS_CHILD) && ((this->sheathType == 16) || (this->sheathType == 17)) && } else if (!LINK_IS_ADULT && ((this->sheathType == 16) || (this->sheathType == 17)) &&
(gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) { (gSaveContext.equips.buttonItems[0] != ITEM_SWORD_KOKIRI)) {
dLists = D_80125D68; dLists = D_80125D68;
} }
@ -1298,7 +1298,7 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s*
Matrix_Scale(1.0f, this->unk_858, 1.0f, MTXMODE_APPLY); Matrix_Scale(1.0f, this->unk_858, 1.0f, MTXMODE_APPLY);
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Matrix_RotateZ(this->unk_858 * -0.2f, MTXMODE_APPLY); Matrix_RotateZ(this->unk_858 * -0.2f, MTXMODE_APPLY);
} }
@ -1404,7 +1404,7 @@ s32 func_80091880(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
s32 dListOffset = 0; s32 dListOffset = 0;
Gfx** dLists; Gfx** dLists;
if ((modelGroup == 2) && LINK_IS_CHILD && (ptr[1] == 2)) { if ((modelGroup == 2) && !LINK_IS_ADULT && (ptr[1] == 2)) {
modelGroup = 1; modelGroup = 1;
} }
@ -1551,7 +1551,7 @@ void func_8009214C(GlobalContext* globalCtx, u8* segment, SkelAnime* skelAnime,
gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + 0x3800); gSegments[4] = VIRTUAL_TO_PHYSICAL(segment + 0x3800);
gSegments[6] = VIRTUAL_TO_PHYSICAL(segment + 0x8800); gSegments[6] = VIRTUAL_TO_PHYSICAL(segment + 0x8800);
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (shield == PLAYER_SHIELD_DEKU) { if (shield == PLAYER_SHIELD_DEKU) {
srcTable = D_040020D0; srcTable = D_040020D0;
} else { } else {

View file

@ -926,14 +926,14 @@ Gfx sDefaultDisplayList[] = {
void func_800994A0(GlobalContext* globalCtx) { void func_800994A0(GlobalContext* globalCtx) {
s16 computedEntranceIndex; s16 computedEntranceIndex;
if (gSaveContext.nightFlag != 0) { if (!IS_DAY) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
computedEntranceIndex = globalCtx->nextEntranceIndex + 1; computedEntranceIndex = globalCtx->nextEntranceIndex + 1;
} else { } else {
computedEntranceIndex = globalCtx->nextEntranceIndex + 3; computedEntranceIndex = globalCtx->nextEntranceIndex + 3;
} }
} else { } else {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
computedEntranceIndex = globalCtx->nextEntranceIndex; computedEntranceIndex = globalCtx->nextEntranceIndex;
} else { } else {
computedEntranceIndex = globalCtx->nextEntranceIndex + 2; computedEntranceIndex = globalCtx->nextEntranceIndex + 2;

View file

@ -24,7 +24,7 @@ const ActorInit Arms_Hook_InitVars = {
(ActorFunc)ArmsHook_Draw, (ActorFunc)ArmsHook_Draw,
}; };
ColliderQuadInit sQuadInit = { static ColliderQuadInit sQuadInit = {
{ {
COLTYPE_NONE, COLTYPE_NONE,
AT_ON | AT_TYPE_PLAYER, AT_ON | AT_TYPE_PLAYER,
@ -108,9 +108,9 @@ s32 ArmsHook_AttachToPlayer(ArmsHook* this, Player* player) {
if (this->actor.child != NULL) { if (this->actor.child != NULL) {
player->actor.parent = NULL; player->actor.parent = NULL;
this->actor.child = NULL; this->actor.child = NULL;
return 1; return true;
} }
return 0; return false;
} }
void ArmsHook_DetachHookFromActor(ArmsHook* this) { void ArmsHook_DetachHookFromActor(ArmsHook* this) {
@ -284,8 +284,8 @@ void ArmsHook_Shoot(ArmsHook* this, GlobalContext* globalCtx) {
Audio_PlaySoundGeneral(NA_SE_IT_HOOKSHOT_REFLECT, &this->actor.projectedPos, 4, &D_801333E0, Audio_PlaySoundGeneral(NA_SE_IT_HOOKSHOT_REFLECT, &this->actor.projectedPos, 4, &D_801333E0,
&D_801333E0, &D_801333E8); &D_801333E0, &D_801333E8);
} }
} else if ((CHECK_BTN_ANY(globalCtx->state.input[0].press.button, } else if (CHECK_BTN_ANY(globalCtx->state.input[0].press.button,
(BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)))) { (BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN))) {
this->timer = 0; this->timer = 0;
} }
} }

View file

@ -195,11 +195,9 @@ void ArrowIce_Draw(Actor* thisx, GlobalContext* globalCtx) {
ArrowIce* this = THIS; ArrowIce* this = THIS;
s32 pad; s32 pad;
Actor* tranform; Actor* tranform;
u32 stateFrames; u32 stateFrames = globalCtx->state.frames;
EnArrow* arrow; EnArrow* arrow = (EnArrow*)this->actor.parent;
stateFrames = globalCtx->state.frames;
arrow = (EnArrow*)this->actor.parent;
if (1) {} if (1) {}
if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) { if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) {

View file

@ -63,9 +63,8 @@ void ArrowLight_Destroy(Actor* thisx, GlobalContext* globalCtx) {
} }
void ArrowLight_Charge(ArrowLight* this, GlobalContext* globalCtx) { void ArrowLight_Charge(ArrowLight* this, GlobalContext* globalCtx) {
EnArrow* arrow; EnArrow* arrow = (EnArrow*)this->actor.parent;
arrow = (EnArrow*)this->actor.parent;
if ((arrow == NULL) || (arrow->actor.update == NULL)) { if ((arrow == NULL) || (arrow->actor.update == NULL)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
@ -148,11 +147,10 @@ void ArrowLight_Hit(ArrowLight* this, GlobalContext* globalCtx) {
} }
void ArrowLight_Fly(ArrowLight* this, GlobalContext* globalCtx) { void ArrowLight_Fly(ArrowLight* this, GlobalContext* globalCtx) {
EnArrow* arrow; EnArrow* arrow = (EnArrow*)this->actor.parent;
f32 distanceScaled; f32 distanceScaled;
s32 pad; s32 pad;
arrow = (EnArrow*)this->actor.parent;
if ((arrow == NULL) || (arrow->actor.update == NULL)) { if ((arrow == NULL) || (arrow->actor.update == NULL)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
@ -194,12 +192,10 @@ void ArrowLight_Update(Actor* thisx, GlobalContext* globalCtx) {
void ArrowLight_Draw(Actor* thisx, GlobalContext* globalCtx) { void ArrowLight_Draw(Actor* thisx, GlobalContext* globalCtx) {
ArrowLight* this = THIS; ArrowLight* this = THIS;
s32 pad; s32 pad;
u32 stateFrames; u32 stateFrames = globalCtx->state.frames;
EnArrow* arrow; EnArrow* arrow = (EnArrow*)this->actor.parent;
Actor* tranform; Actor* tranform;
stateFrames = globalCtx->state.frames;
arrow = (EnArrow*)this->actor.parent;
if (1) {} if (1) {}
if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) { if ((arrow != NULL) && (arrow->actor.update != NULL) && (this->timer < 255)) {

View file

@ -66,7 +66,7 @@ static ColliderCylinderInit sCylinderInit = {
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 0x64, ICHAIN_STOP), ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
}; };
static Gfx* sDLists[] = { static Gfx* sDLists[] = {
@ -113,7 +113,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_ProcessInitChain(&this->dyna.actor, sInitChain); Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
DynaPolyActor_Init(&this->dyna, DPM_PLAYER); DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
this->unk_168 = (thisx->params >> 8) & 0x3F; this->switchFlag = (thisx->params >> 8) & 0x3F;
thisx->params &= 0xFF; thisx->params &= 0xFF;
if (thisx->params == 2) { if (thisx->params == 2) {
thisx->flags |= 0x30; thisx->flags |= 0x30;
@ -127,7 +127,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &sCylinderInit); Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &sCylinderInit);
thisx->world.pos.y += -79.0f; thisx->world.pos.y += -79.0f;
if (Flags_GetClear(globalCtx, thisx->room)) { if (Flags_GetClear(globalCtx, thisx->room)) {
Flags_SetSwitch(globalCtx, this->unk_168); Flags_SetSwitch(globalCtx, this->switchFlag);
this->actionFunc = func_8086C6EC; this->actionFunc = func_8086C6EC;
} else { } else {
if (BgBdanObjects_GetContactRu1(this, 4)) { if (BgBdanObjects_GetContactRu1(this, 4)) {
@ -140,7 +140,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
this->actionFunc = func_8086C618; this->actionFunc = func_8086C618;
thisx->world.pos.y = thisx->home.pos.y + -70.0f; thisx->world.pos.y = thisx->home.pos.y + -70.0f;
} else { } else {
Flags_SetSwitch(globalCtx, this->unk_168); Flags_SetSwitch(globalCtx, this->switchFlag);
this->timer = 0; this->timer = 0;
this->actionFunc = func_8086C054; this->actionFunc = func_8086C054;
} }
@ -149,11 +149,11 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
if (thisx->params == 1) { if (thisx->params == 1) {
CollisionHeader_GetVirtual(&gJabuElevatorCol, &colHeader); CollisionHeader_GetVirtual(&gJabuElevatorCol, &colHeader);
this->timer = 512; this->timer = 512;
this->unk_168 = 0; this->switchFlag = 0;
this->actionFunc = func_8086C874; this->actionFunc = func_8086C874;
} else { } else {
CollisionHeader_GetVirtual(&gJabuLoweringPlatformCol, &colHeader); CollisionHeader_GetVirtual(&gJabuLoweringPlatformCol, &colHeader);
if (Flags_GetSwitch(globalCtx, this->unk_168)) { if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->actionFunc = BgBdanObjects_DoNothing; this->actionFunc = BgBdanObjects_DoNothing;
thisx->world.pos.y = thisx->home.pos.y - 400.0f; thisx->world.pos.y = thisx->home.pos.y - 400.0f;
} else { } else {
@ -283,7 +283,7 @@ void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx) {
this->timer--; this->timer--;
if (this->timer == 0) { if (this->timer == 0) {
Flags_UnsetSwitch(globalCtx, this->unk_168); Flags_UnsetSwitch(globalCtx, this->switchFlag);
} else if (this->timer == -40) { } else if (this->timer == -40) {
this->timer = 0; this->timer = 0;
this->actionFunc = func_8086C3D8; this->actionFunc = func_8086C3D8;
@ -307,7 +307,7 @@ void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx) {
Collider_UpdateCylinder(&this->dyna.actor, &this->collider); Collider_UpdateCylinder(&this->dyna.actor, &this->collider);
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base); CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (Flags_GetClear(globalCtx, this->dyna.actor.room)) { if (Flags_GetClear(globalCtx, this->dyna.actor.room)) {
Flags_SetSwitch(globalCtx, this->unk_168); Flags_SetSwitch(globalCtx, this->switchFlag);
this->dyna.actor.home.rot.y = (s16)(this->dyna.actor.shape.rot.y + 0x2000) & 0xC000; this->dyna.actor.home.rot.y = (s16)(this->dyna.actor.shape.rot.y + 0x2000) & 0xC000;
this->actionFunc = func_8086C6EC; this->actionFunc = func_8086C6EC;
} else { } else {
@ -352,21 +352,21 @@ void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->timer != 0) { if (this->timer != 0) {
this->timer--; this->timer--;
} }
if (this->unk_168 == 0) { if (this->switchFlag == 0) {
if (func_8004356C(&this->dyna)) { if (func_8004356C(&this->dyna)) {
this->cameraSetting = globalCtx->cameraPtrs[MAIN_CAM]->setting; this->cameraSetting = globalCtx->cameraPtrs[MAIN_CAM]->setting;
Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], CAM_SET_NORMAL2); Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], CAM_SET_NORMAL2);
func_8005AD1C(globalCtx->cameraPtrs[MAIN_CAM], 4); func_8005AD1C(globalCtx->cameraPtrs[MAIN_CAM], 4);
this->unk_168 = 10; this->switchFlag = 10;
} }
} else { } else {
Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], CAM_SET_NORMAL2); Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], CAM_SET_NORMAL2);
if (!func_8004356C(&this->dyna)) { if (!func_8004356C(&this->dyna)) {
if (this->unk_168 != 0) { if (this->switchFlag != 0) {
this->unk_168--; this->switchFlag--;
} }
} }
if (this->unk_168 == 0) { if (this->switchFlag == 0) {
do { do {
} while (0); } while (0);
Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], this->cameraSetting); Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], this->cameraSetting);
@ -381,7 +381,7 @@ void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
} }
void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) { void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->unk_168)) { if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->timer = 100; this->timer = 100;
this->actionFunc = func_8086C9F0; this->actionFunc = func_8086C9F0;
} }
@ -390,7 +390,7 @@ void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) { void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->timer == 0) { if (this->timer == 0) {
if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 0.5f)) { if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, 0.5f)) {
Flags_UnsetSwitch(globalCtx, this->unk_168); Flags_UnsetSwitch(globalCtx, this->switchFlag);
this->actionFunc = func_8086C9A8; this->actionFunc = func_8086C9A8;
} }
func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG); func_8002F948(&this->dyna.actor, NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG);
@ -415,7 +415,7 @@ void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx) { void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->dyna)) { if (func_8004356C(&this->dyna)) {
Flags_SetSwitch(globalCtx, this->unk_168); Flags_SetSwitch(globalCtx, this->switchFlag);
this->timer = 50; this->timer = 50;
this->actionFunc = func_8086CB8C; this->actionFunc = func_8086CB8C;
this->dyna.actor.home.pos.y -= 200.0f; this->dyna.actor.home.pos.y -= 200.0f;

View file

@ -11,7 +11,7 @@ typedef void (*BgBdanObjectsActionFunc)(struct BgBdanObjects*, GlobalContext*);
typedef struct BgBdanObjects { typedef struct BgBdanObjects {
/* 0x0000 */ DynaPolyActor dyna; /* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgBdanObjectsActionFunc actionFunc; /* 0x0164 */ BgBdanObjectsActionFunc actionFunc;
/* 0x0168 */ u8 unk_168; /* 0x0168 */ u8 switchFlag;
/* 0x016A */ s16 timer; /* 0x016A */ s16 timer;
/* 0x016C */ ColliderCylinder collider; /* 0x016C */ ColliderCylinder collider;
/* 0x01B8 */ s32 cameraSetting; /* 0x01B8 */ s32 cameraSetting;

View file

@ -91,7 +91,8 @@ static InitChainEntry sInitChain[] = {
static Vec3f D_8086E0E0 = { 0.0f, 140.0f, 0.0f }; static Vec3f D_8086E0E0 = { 0.0f, 140.0f, 0.0f };
void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, CollisionHeader* collision, DynaPolyMoveFlag flag) { void BgBdanSwitch_InitDynaPoly(BgBdanSwitch* this, GlobalContext* globalCtx, CollisionHeader* collision,
DynaPolyMoveFlag flag) {
s16 pad1; s16 pad1;
CollisionHeader* colHeader = NULL; CollisionHeader* colHeader = NULL;
s16 pad2; s16 pad2;
@ -105,7 +106,7 @@ void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, CollisionHeader
} }
} }
void func_8086D098(BgBdanSwitch* this, GlobalContext* globalCtx) { void BgBdanSwitch_InitCollision(BgBdanSwitch* this, GlobalContext* globalCtx) {
Actor* actor = &this->dyna.actor; Actor* actor = &this->dyna.actor;
Collider_InitJntSph(globalCtx, &this->collider); Collider_InitJntSph(globalCtx, &this->collider);
Collider_SetJntSph(globalCtx, &this->collider, actor, &sJntSphInit, this->colliderItems); Collider_SetJntSph(globalCtx, &this->collider, actor, &sJntSphInit, this->colliderItems);
@ -157,13 +158,14 @@ void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
case BLUE: case BLUE:
case YELLOW_HEAVY: case YELLOW_HEAVY:
case YELLOW: case YELLOW:
func_8086D010(this, globalCtx, &gJabuFloorSwitchCol, DPM_PLAYER); BgBdanSwitch_InitDynaPoly(this, globalCtx, &gJabuFloorSwitchCol, DPM_PLAYER);
break; break;
case YELLOW_TALL_1: case YELLOW_TALL_1:
case YELLOW_TALL_2: case YELLOW_TALL_2:
func_8086D098(this, globalCtx); BgBdanSwitch_InitCollision(this, globalCtx);
this->dyna.actor.flags |= 1; this->dyna.actor.flags |= 1;
this->dyna.actor.targetMode = 4; this->dyna.actor.targetMode = 4;
break;
} }
flag = Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F); flag = Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
@ -213,6 +215,7 @@ void BgBdanSwitch_Destroy(Actor* thisx, GlobalContext* globalCtx) {
case YELLOW_TALL_1: case YELLOW_TALL_1:
case YELLOW_TALL_2: case YELLOW_TALL_2:
Collider_DestroyJntSph(globalCtx, &this->collider); Collider_DestroyJntSph(globalCtx, &this->collider);
break;
} }
} }
@ -258,6 +261,7 @@ void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
func_8086D67C(this); func_8086D67C(this);
func_8086D4B4(this, globalCtx); func_8086D4B4(this, globalCtx);
} }
break;
} }
} }
@ -299,6 +303,7 @@ void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
if (!Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) { if (!Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
func_8086D7FC(this); func_8086D7FC(this);
} }
break;
} }
} }
@ -421,6 +426,7 @@ void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
func_8086DC30(this); func_8086DC30(this);
func_8086D4B4(this, globalCtx); func_8086D4B4(this, globalCtx);
} }
break;
} }
} }
@ -457,6 +463,7 @@ void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
func_8086DDA8(this); func_8086DDA8(this);
func_8086D548(this, globalCtx); func_8086D548(this, globalCtx);
} }
break;
} }
} }
@ -525,5 +532,6 @@ void BgBdanSwitch_Draw(Actor* thisx, GlobalContext* globalCtx) {
break; break;
case BLUE: case BLUE:
func_8086DF58(this, globalCtx, gJabuBlueFloorSwitchDL); func_8086DF58(this, globalCtx, gJabuBlueFloorSwitchDL);
break;
} }
} }

View file

@ -198,18 +198,18 @@ void BgBowlWall_Update(Actor* thisx, GlobalContext* globalCtx) {
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
} }
void BgBowlWall_Draw(Actor* thisx, GlobalContext* globalCtx) { void BgBowlWall_Draw(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
BgBowlWall* this = THIS; BgBowlWall* this = THIS;
u32 frames; u32 frames;
OPEN_DISPS(globalCtx2->state.gfxCtx, "../z_bg_bowl_wall.c", 441); OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_bowl_wall.c", 441);
func_80093D84(globalCtx2->state.gfxCtx); func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_OPA_DISP++, 0x8, gSPSegment(POLY_OPA_DISP++, 0x8,
Gfx_TexScroll(globalCtx2->state.gfxCtx, 0, -2 * (frames = globalCtx2->state.frames), 16, 16)); Gfx_TexScroll(globalCtx->state.gfxCtx, 0, -2 * (frames = globalCtx->state.frames), 16, 16));
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx2->state.gfxCtx, "../z_bg_bowl_wall.c", 453), gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_bowl_wall.c", 453),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (this->dyna.actor.params == 0) { if (this->dyna.actor.params == 0) {
@ -218,5 +218,5 @@ void BgBowlWall_Draw(Actor* thisx, GlobalContext* globalCtx) {
gSPDisplayList(POLY_OPA_DISP++, gBowlingRound2WallDL); gSPDisplayList(POLY_OPA_DISP++, gBowlingRound2WallDL);
} }
CLOSE_DISPS(globalCtx2->state.gfxCtx, "../z_bg_bowl_wall.c", 464); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_bowl_wall.c", 464);
} }

View file

@ -19,7 +19,7 @@ void BgDodoago_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx); void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx);
void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx); void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx);
void func_8087227C(BgDodoago* this, GlobalContext* globalCtx); void BgDodoago_DoNothing(BgDodoago* this, GlobalContext* globalCtx);
void func_80872288(BgDodoago* this, GlobalContext* globalCtx); void func_80872288(BgDodoago* this, GlobalContext* globalCtx);
const ActorInit Bg_Dodoago_InitVars = { const ActorInit Bg_Dodoago_InitVars = {
@ -119,7 +119,7 @@ void BgDodoago_Init(Actor* thisx, GlobalContext* globalCtx) {
ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f); ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f);
if (Flags_GetSwitch(globalCtx, (this->dyna.actor.params & 0x3F))) { if (Flags_GetSwitch(globalCtx, (this->dyna.actor.params & 0x3F))) {
BgDodoago_SetupAction(this, func_8087227C); BgDodoago_SetupAction(this, BgDodoago_DoNothing);
this->dyna.actor.shape.rot.x = 0x1333; this->dyna.actor.shape.rot.x = 0x1333;
globalCtx->roomCtx.unk_74[0] = globalCtx->roomCtx.unk_74[1] = 0xFF; globalCtx->roomCtx.unk_74[0] = globalCtx->roomCtx.unk_74[1] = 0xFF;
return; return;
@ -175,22 +175,19 @@ void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx) {
sHasParent = true; sHasParent = true;
D_80872824 = 0x32; D_80872824 = 0x32;
} }
} else { } else if (Flags_GetEventChkInf(0xB0)) {
Collider_UpdateCylinder(&this->dyna.actor, &this->colliders[0]);
Collider_UpdateCylinder(&this->dyna.actor, &this->colliders[1]);
Collider_UpdateCylinder(&this->dyna.actor, &this->colliders[2]);
this->colliders[0].dim.pos.z += 200;
this->colliders[1].dim.pos.z += 215;
this->colliders[1].dim.pos.x += 90;
this->colliders[2].dim.pos.z += 215;
this->colliders[2].dim.pos.x -= 90;
if (Flags_GetEventChkInf(0xB0)) { CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->colliders[0].base);
Collider_UpdateCylinder(&this->dyna.actor, &this->colliders[0]); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliders[1].base);
Collider_UpdateCylinder(&this->dyna.actor, &this->colliders[1]); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliders[2].base);
Collider_UpdateCylinder(&this->dyna.actor, &this->colliders[2]);
this->colliders[0].dim.pos.z += 0xC8;
this->colliders[1].dim.pos.z += 0xD7;
this->colliders[1].dim.pos.x += 0x5A;
this->colliders[2].dim.pos.z += 0xD7;
this->colliders[2].dim.pos.x -= 0x5A;
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->colliders[0].base);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliders[1].base);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->colliders[2].base);
}
} }
} }
@ -215,7 +212,7 @@ void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx) {
D_80872824--; D_80872824--;
return; return;
} }
if (D_80872824 == 0x6C) { if (D_80872824 == 0x6C) {
for (i = 10; i >= 0; i--) { for (i = 10; i >= 0; i--) {
currentPos.x = D_808725CC[i].x + this->dyna.actor.world.pos.x; currentPos.x = D_808725CC[i].x + this->dyna.actor.world.pos.x;
@ -240,7 +237,7 @@ void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx) {
func_800AA000(500.0f, 0x78, 0x14, 0xA); func_800AA000(500.0f, 0x78, 0x14, 0xA);
if (Math_SmoothStepToS(&this->dyna.actor.shape.rot.x, 0x1333, 0x6E - this->unk_164, 0x3E8, 0x32) == 0) { if (Math_SmoothStepToS(&this->dyna.actor.shape.rot.x, 0x1333, 0x6E - this->unk_164, 0x3E8, 0x32) == 0) {
BgDodoago_SetupAction(this, func_8087227C); BgDodoago_SetupAction(this, BgDodoago_DoNothing);
Audio_PlaySoundGeneral(NA_SE_EV_STONE_BOUND, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0, Audio_PlaySoundGeneral(NA_SE_EV_STONE_BOUND, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0,
&D_801333E8); &D_801333E8);
} else { } else {
@ -249,7 +246,7 @@ void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx) {
} }
} }
void func_8087227C(BgDodoago* this, GlobalContext* globalCtx) { void BgDodoago_DoNothing(BgDodoago* this, GlobalContext* globalCtx) {
} }
void func_80872288(BgDodoago* this, GlobalContext* globalCtx) { void func_80872288(BgDodoago* this, GlobalContext* globalCtx) {

View file

@ -316,11 +316,12 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, GlobalContext* globalCtx) {
void BgDyYoseizo_SetupSpinGrow_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx) { void BgDyYoseizo_SetupSpinGrow_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx) {
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount, 2, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_ONCE, -10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingDownTransitionAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingDownTransitionAnim);
Animation_Change(&this->skelAnime, &gGreatFairyLayingDownTransitionAnim, 1.0f, 0.0f, this->frameCount, 2, Animation_Change(&this->skelAnime, &gGreatFairyLayingDownTransitionAnim, 1.0f, 0.0f, this->frameCount,
-10.0f); ANIMMODE_ONCE, -10.0f);
} }
Audio_PlayActorSound2(&this->actor, NA_SE_VO_FR_LAUGH_0); Audio_PlayActorSound2(&this->actor, NA_SE_VO_FR_LAUGH_0);
@ -373,10 +374,12 @@ void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, GlobalContext* glo
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingSidewaysAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingSidewaysAnim);
Animation_Change(&this->skelAnime, &gGreatFairyLayingSidewaysAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyLayingSidewaysAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
} }
this->actor.textId = 0xDB; this->actor.textId = 0xDB;
@ -409,10 +412,12 @@ void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCt
void BgDyYoseizo_SetupHealPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx) { void BgDyYoseizo_SetupHealPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx) {
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount, 2, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_ONCE,
-10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAnim_005810); this->frameCount = Animation_GetLastFrame(&gGreatFairyAnim_005810);
Animation_Change(&this->skelAnime, &gGreatFairyAnim_005810, 1.0f, 0.0f, this->frameCount, 2, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyAnim_005810, 1.0f, 0.0f, this->frameCount, ANIMMODE_ONCE,
-10.0f);
} }
Audio_PlayActorSound2(&this->actor, NA_SE_VO_FR_SMILE_0); Audio_PlayActorSound2(&this->actor, NA_SE_VO_FR_SMILE_0);
@ -437,10 +442,12 @@ void BgDyYoseizo_HealPlayer_NoReward(BgDyYoseizo* this, GlobalContext* globalCtx
if ((this->frameCount <= curFrame) && !(this->animationChanged)) { if ((this->frameCount <= curFrame) && !(this->animationChanged)) {
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_LOOP, -10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterSpellAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterSpellAnim);
Animation_Change(&this->skelAnime, &gGreatFairyAfterSpellAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyAfterSpellAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
} }
this->healingTimer = 150; this->healingTimer = 150;
this->animationChanged = true; this->animationChanged = true;
@ -514,12 +521,12 @@ void BgDyYoseizo_SayFarewell_NoReward(BgDyYoseizo* this, GlobalContext* globalCt
void BgDyYoseizo_SetupSpinShrink(BgDyYoseizo* this, GlobalContext* globalCtx) { void BgDyYoseizo_SetupSpinShrink(BgDyYoseizo* this, GlobalContext* globalCtx) {
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyJewelFountainSpinShrinkAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyJewelFountainSpinShrinkAnim);
Animation_Change(&this->skelAnime, &gGreatFairyJewelFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount, 2, Animation_Change(&this->skelAnime, &gGreatFairyJewelFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount,
-10.0f); ANIMMODE_ONCE, -10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairySpellFountainSpinShrinkAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairySpellFountainSpinShrinkAnim);
Animation_Change(&this->skelAnime, &gGreatFairySpellFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount, 2, Animation_Change(&this->skelAnime, &gGreatFairySpellFountainSpinShrinkAnim, 1.0f, 0.0f, this->frameCount,
-10.0f); ANIMMODE_ONCE, -10.0f);
} }
this->vanishTimer = 5; this->vanishTimer = 5;
@ -578,12 +585,12 @@ void BgDyYoseizo_SetupSpinGrow_Reward(BgDyYoseizo* this, GlobalContext* globalCt
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairySittingTransitionAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount, 2, Animation_Change(&this->skelAnime, &gGreatFairySittingTransitionAnim, 1.0f, 0.0f, this->frameCount,
-10.0f); ANIMMODE_ONCE, -10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingDownTransitionAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingDownTransitionAnim);
Animation_Change(&this->skelAnime, &gGreatFairyLayingDownTransitionAnim, 1.0f, 0.0f, this->frameCount, Animation_Change(&this->skelAnime, &gGreatFairyLayingDownTransitionAnim, 1.0f, 0.0f, this->frameCount,
2, -10.0f); ANIMMODE_ONCE, -10.0f);
} }
Audio_PlayActorSound2(&this->actor, NA_SE_EV_GREAT_FAIRY_APPEAR); Audio_PlayActorSound2(&this->actor, NA_SE_EV_GREAT_FAIRY_APPEAR);
@ -621,11 +628,12 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, GlobalContext* glob
if ((this->frameCount <= curFrame) && !this->animationChanged) { if ((this->frameCount <= curFrame) && !this->animationChanged) {
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairySittingAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingSidewaysAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyLayingSidewaysAnim);
Animation_Change(&this->skelAnime, &gGreatFairyLayingSidewaysAnim, 1.0f, 0.0f, this->frameCount, 0, Animation_Change(&this->skelAnime, &gGreatFairyLayingSidewaysAnim, 1.0f, 0.0f, this->frameCount,
-10.0f); ANIMMODE_LOOP, -10.0f);
} }
this->animationChanged = true; this->animationChanged = true;
} }
@ -635,11 +643,12 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, GlobalContext* glob
this->finishedSpinGrow = this->animationChanged = false; this->finishedSpinGrow = this->animationChanged = false;
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount, 2, Animation_Change(&this->skelAnime, &gGreatFairyGivingUpgradeAnim, 1.0f, 0.0f, this->frameCount,
-10.0f); ANIMMODE_ONCE, -10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAnim_005810); this->frameCount = Animation_GetLastFrame(&gGreatFairyAnim_005810);
Animation_Change(&this->skelAnime, &gGreatFairyAnim_005810, 1.0f, 0.0f, this->frameCount, 2, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyAnim_005810, 1.0f, 0.0f, this->frameCount, ANIMMODE_ONCE,
-10.0f);
} }
this->mouthState = 1; this->mouthState = 1;
this->actionFunc = BgDyYoseizo_Give_Reward; this->actionFunc = BgDyYoseizo_Give_Reward;
@ -674,10 +683,12 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, GlobalContext* globalCtx) {
if ((this->frameCount <= curFrame) && !this->animationChanged) { if ((this->frameCount <= curFrame) && !this->animationChanged) {
if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) { if (globalCtx->sceneNum == SCENE_DAIYOUSEI_IZUMI) {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterUpgradeAnim);
Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyAfterUpgradeAnim, 1.0f, 0.0f, this->frameCount,
ANIMMODE_LOOP, -10.0f);
} else { } else {
this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterSpellAnim); this->frameCount = Animation_GetLastFrame(&gGreatFairyAfterSpellAnim);
Animation_Change(&this->skelAnime, &gGreatFairyAfterSpellAnim, 1.0f, 0.0f, this->frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gGreatFairyAfterSpellAnim, 1.0f, 0.0f, this->frameCount, ANIMMODE_LOOP,
-10.0f);
} }
this->animationChanged = true; this->animationChanged = true;
} }

View file

@ -47,8 +47,8 @@ void BgGndDarkmeiro_ToggleBlock(BgGndDarkmeiro* this, GlobalContext* globalCtx)
} }
} }
void BgGndDarkmeiro_Init(Actor* thisx, GlobalContext* globalCtx) { void BgGndDarkmeiro_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
CollisionHeader* colHeader = NULL; CollisionHeader* colHeader = NULL;
BgGndDarkmeiro* this = THIS; BgGndDarkmeiro* this = THIS;
@ -61,7 +61,7 @@ void BgGndDarkmeiro_Init(Actor* thisx, GlobalContext* globalCtx) {
break; break;
case DARKMEIRO_CLEAR_BLOCK: case DARKMEIRO_CLEAR_BLOCK:
CollisionHeader_GetVirtual(&gClearBlockCol, &colHeader); CollisionHeader_GetVirtual(&gClearBlockCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx2, &globalCtx2->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if (((this->dyna.actor.params >> 8) & 0x3F) == 0x3F) { if (((this->dyna.actor.params >> 8) & 0x3F) == 0x3F) {
this->updateFunc = BgGndDarkmeiro_UpdateStaticBlock; this->updateFunc = BgGndDarkmeiro_UpdateStaticBlock;
this->dyna.actor.draw = BgGndDarkmeiro_DrawStaticBlock; this->dyna.actor.draw = BgGndDarkmeiro_DrawStaticBlock;
@ -69,8 +69,8 @@ void BgGndDarkmeiro_Init(Actor* thisx, GlobalContext* globalCtx) {
this->actionFlags = this->timer1 = this->timer2 = 0; this->actionFlags = this->timer1 = this->timer2 = 0;
thisx->draw = BgGndDarkmeiro_DrawSwitchBlock; thisx->draw = BgGndDarkmeiro_DrawSwitchBlock;
this->updateFunc = BgGndDarkmeiro_UpdateSwitchBlock; this->updateFunc = BgGndDarkmeiro_UpdateSwitchBlock;
if (!Flags_GetSwitch(globalCtx2, (this->dyna.actor.params >> 8) & 0x3F)) { if (!Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
} else { } else {
this->timer1 = 64; this->timer1 = 64;
this->actionFlags |= 2; this->actionFlags |= 2;
@ -81,30 +81,30 @@ void BgGndDarkmeiro_Init(Actor* thisx, GlobalContext* globalCtx) {
this->actionFlags = this->timer1 = this->timer2 = 0; this->actionFlags = this->timer1 = this->timer2 = 0;
this->updateFunc = BgGndDarkmeiro_UpdateBlockTimer; this->updateFunc = BgGndDarkmeiro_UpdateBlockTimer;
thisx->draw = NULL; thisx->draw = NULL;
if (Flags_GetSwitch(globalCtx2, ((this->dyna.actor.params >> 8) & 0x3F) + 1)) { if (Flags_GetSwitch(globalCtx, ((this->dyna.actor.params >> 8) & 0x3F) + 1)) {
this->timer1 = 64; this->timer1 = 64;
this->actionFlags |= 4; this->actionFlags |= 4;
} }
if (Flags_GetSwitch(globalCtx2, ((this->dyna.actor.params >> 8) & 0x3F) + 2)) { if (Flags_GetSwitch(globalCtx, ((this->dyna.actor.params >> 8) & 0x3F) + 2)) {
this->timer2 = 64; this->timer2 = 64;
this->actionFlags |= 8; this->actionFlags |= 8;
} }
if ((this->timer1 != 0) || (this->timer2 != 0)) { if ((this->timer1 != 0) || (this->timer2 != 0)) {
Flags_SetSwitch(globalCtx2, (this->dyna.actor.params >> 8) & 0x3F); Flags_SetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
} else { } else {
Flags_UnsetSwitch(globalCtx2, (this->dyna.actor.params >> 8) & 0x3F); Flags_UnsetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
} }
break; break;
} }
} }
void BgGndDarkmeiro_Destroy(Actor* thisx, GlobalContext* globalCtx) { void BgGndDarkmeiro_Destroy(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
BgGndDarkmeiro* this = THIS; BgGndDarkmeiro* this = THIS;
if ((this->dyna.actor.params & 0xFF) == 1) { if ((this->dyna.actor.params & 0xFF) == 1) {
if (1) {} if (1) {}
DynaPoly_DeleteBgActor(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
} }
} }
@ -170,9 +170,9 @@ void BgGndDarkmeiro_UpdateSwitchBlock(BgGndDarkmeiro* this, GlobalContext* globa
BgGndDarkmeiro_ToggleBlock(this, globalCtx); BgGndDarkmeiro_ToggleBlock(this, globalCtx);
} }
void BgGndDarkmeiro_Update(Actor* thisx, GlobalContext* globalCtx) { void BgGndDarkmeiro_Update(Actor* thisx, GlobalContext* globalCtx2) {
BgGndDarkmeiro* this = THIS; BgGndDarkmeiro* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
this->updateFunc(this, globalCtx2); this->updateFunc(this, globalCtx2);
} }

View file

@ -70,7 +70,7 @@ void func_8087B7E8(BgHaka* this, GlobalContext* globalCtx) {
Player* player = PLAYER; Player* player = PLAYER;
if (this->dyna.unk_150 != 0.0f) { if (this->dyna.unk_150 != 0.0f) {
if (globalCtx->sceneNum == SCENE_SPOT02 && LINK_IS_CHILD && !gSaveContext.nightFlag) { if (globalCtx->sceneNum == SCENE_SPOT02 && !LINK_IS_ADULT && !gSaveContext.nightFlag) {
this->dyna.unk_150 = 0.0f; this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10; player->stateFlags2 &= ~0x10;
if (!Gameplay_InCsMode(globalCtx)) { if (!Gameplay_InCsMode(globalCtx)) {
@ -79,7 +79,7 @@ void func_8087B7E8(BgHaka* this, GlobalContext* globalCtx) {
this->actionFunc = func_8087BAE4; this->actionFunc = func_8087BAE4;
} }
} else if (0.0f < this->dyna.unk_150 || } else if (0.0f < this->dyna.unk_150 ||
(globalCtx->sceneNum == SCENE_SPOT06 && LINK_IS_CHILD && !Flags_GetSwitch(globalCtx, 0x23))) { (globalCtx->sceneNum == SCENE_SPOT06 && !LINK_IS_ADULT && !Flags_GetSwitch(globalCtx, 0x23))) {
this->dyna.unk_150 = 0.0f; this->dyna.unk_150 = 0.0f;
player->stateFlags2 &= ~0x10; player->stateFlags2 &= ~0x10;
} else { } else {
@ -106,7 +106,7 @@ void func_8087B938(BgHaka* this, GlobalContext* globalCtx) {
player->stateFlags2 &= ~0x10; player->stateFlags2 &= ~0x10;
if (this->dyna.actor.params == 1) { if (this->dyna.actor.params == 1) {
func_80078884(NA_SE_SY_CORRECT_CHIME); func_80078884(NA_SE_SY_CORRECT_CHIME);
} else if (gSaveContext.nightFlag && globalCtx->sceneNum == SCENE_SPOT02) { } else if (!IS_DAY && globalCtx->sceneNum == SCENE_SPOT02) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->dyna.actor.home.pos.x, Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_POH, this->dyna.actor.home.pos.x,
this->dyna.actor.home.pos.y, this->dyna.actor.home.pos.z, 0, this->dyna.actor.shape.rot.y, 0, this->dyna.actor.home.pos.y, this->dyna.actor.home.pos.z, 0, this->dyna.actor.shape.rot.y, 0,
1); 1);

View file

@ -95,14 +95,14 @@ void BgHidanHamstep_SetupAction(BgHidanHamstep* this, s32 action) {
this->actionFunc = sActionFuncs[action]; this->actionFunc = sActionFuncs[action];
} }
s32 BgHidanHamstep_SpawnChildren(BgHidanHamstep* this, GlobalContext* globalCtx) { s32 BgHidanHamstep_SpawnChildren(BgHidanHamstep* this, GlobalContext* globalCtx2) {
BgHidanHamstep* step = this; BgHidanHamstep* step = this;
s32 i; s32 i;
Vec3f pos; Vec3f pos;
f32 sin; f32 sin;
f32 cos; f32 cos;
s16 params; s16 params;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
pos = pos; // Required to match pos = pos; // Required to match
pos.y = this->dyna.actor.home.pos.y - 100.0f; pos.y = this->dyna.actor.home.pos.y - 100.0f;
@ -113,11 +113,11 @@ s32 BgHidanHamstep_SpawnChildren(BgHidanHamstep* this, GlobalContext* globalCtx)
pos.x = (((i * 160.0f) + 60.0f) * sin) + this->dyna.actor.home.pos.x; pos.x = (((i * 160.0f) + 60.0f) * sin) + this->dyna.actor.home.pos.x;
pos.z = (((i * 160.0f) + 60.0f) * cos) + this->dyna.actor.home.pos.z; pos.z = (((i * 160.0f) + 60.0f) * cos) + this->dyna.actor.home.pos.z;
params = ((i + 1) & 0xFF); params = (i + 1) & 0xFF;
params |= (this->dyna.actor.params & 0xFF00); params |= (this->dyna.actor.params & 0xFF00);
step = (BgHidanHamstep*)Actor_SpawnAsChild( step = (BgHidanHamstep*)Actor_SpawnAsChild(
&globalCtx2->actorCtx, &step->dyna.actor, globalCtx2, ACTOR_BG_HIDAN_HAMSTEP, pos.x, pos.y, pos.z, &globalCtx->actorCtx, &step->dyna.actor, globalCtx, ACTOR_BG_HIDAN_HAMSTEP, pos.x, pos.y, pos.z,
this->dyna.actor.world.rot.x, this->dyna.actor.world.rot.y, this->dyna.actor.world.rot.z, params); this->dyna.actor.world.rot.x, this->dyna.actor.world.rot.y, this->dyna.actor.world.rot.z, params);
if (step == NULL) { if (step == NULL) {

View file

@ -198,8 +198,8 @@ void BgIceShelter_Destroy(Actor* thisx, GlobalContext* globalCtx) {
Collider_DestroyCylinder(globalCtx, &this->cylinder1); Collider_DestroyCylinder(globalCtx, &this->cylinder1);
} }
s16 D_80891794[] = { 0x0000, 0x4000, 0x2000, 0x6000, 0x1000, 0x5000, 0x3000, 0x7000 }; static s16 D_80891794[] = { 0x0000, 0x4000, 0x2000, 0x6000, 0x1000, 0x5000, 0x3000, 0x7000 };
s16 D_808917A4[] = { 0x0000, 0x003C, 0x0018, 0x0054, 0x0030, 0x000C, 0x0048, 0x0024 }; static s16 D_808917A4[] = { 0x0000, 0x003C, 0x0018, 0x0054, 0x0030, 0x000C, 0x0048, 0x0024 };
void func_80890B8C(BgIceShelter* this, GlobalContext* globalCtx, f32 chance, f32 scale) { void func_80890B8C(BgIceShelter* this, GlobalContext* globalCtx, f32 chance, f32 scale) {
f32 cos; f32 cos;

View file

@ -46,7 +46,7 @@ void BgInGate_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if ((globalCtx->sceneNum != SCENE_SPOT20 || LINK_IS_CHILD) || if ((globalCtx->sceneNum != SCENE_SPOT20 || !LINK_IS_ADULT) ||
(((gSaveContext.eventChkInf[1] & 0x100)) && (gSaveContext.cutsceneIndex != 0xFFF0))) { (((gSaveContext.eventChkInf[1] & 0x100)) && (gSaveContext.cutsceneIndex != 0xFFF0))) {
Actor_Kill(&this->dyna.actor); Actor_Kill(&this->dyna.actor);
return; return;

View file

@ -133,23 +133,23 @@ void BgJyaLift_SetFinalPosY(BgJyaLift* this) {
this->dyna.actor.world.pos.y = 973.0f; this->dyna.actor.world.pos.y = 973.0f;
} }
void BgJyaLift_Update(Actor* thisx, GlobalContext* globalCtx) { void BgJyaLift_Update(Actor* thisx, GlobalContext* globalCtx2) {
BgJyaLift* this = THIS; BgJyaLift* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
if (this->actionFunc != NULL) { if (this->actionFunc != NULL) {
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
} }
if ((this->dyna.unk_160 & 4) && ((this->unk_16B & 4) == 0)) { if ((this->dyna.unk_160 & 4) && ((this->unk_16B & 4) == 0)) {
Camera_ChangeSetting(globalCtx2->cameraPtrs[MAIN_CAM], CAM_SET_TEPPEN); Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], CAM_SET_TEPPEN);
} else if (((this->dyna.unk_160) & 4) == 0 && ((this->unk_16B & 4)) && } else if (((this->dyna.unk_160) & 4) == 0 && ((this->unk_16B & 4)) &&
(globalCtx2->cameraPtrs[MAIN_CAM]->setting == CAM_SET_TEPPEN)) { (globalCtx->cameraPtrs[MAIN_CAM]->setting == CAM_SET_TEPPEN)) {
Camera_ChangeSetting(globalCtx2->cameraPtrs[MAIN_CAM], CAM_SET_DUNGEON0); Camera_ChangeSetting(globalCtx->cameraPtrs[MAIN_CAM], CAM_SET_DUNGEON0);
} }
this->unk_16B = this->dyna.unk_160; this->unk_16B = this->dyna.unk_160;
// Spirit Temple room 5 is the main room with the statue room 25 is directly above room 5 // Spirit Temple room 5 is the main room with the statue room 25 is directly above room 5
if ((globalCtx2->roomCtx.curRoom.num != 5) && (globalCtx2->roomCtx.curRoom.num != 25)) { if ((globalCtx->roomCtx.curRoom.num != 5) && (globalCtx->roomCtx.curRoom.num != 25)) {
Actor_Kill(thisx); Actor_Kill(thisx);
} }
} }

View file

@ -51,7 +51,7 @@ void BgSpot00Break_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Actor_Kill(&this->dyna.actor); Actor_Kill(&this->dyna.actor);
} }
} }

View file

@ -66,22 +66,22 @@ void BgSpot00Hanebasi_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if (this->dyna.actor.params == DT_DRAWBRIDGE) { if (this->dyna.actor.params == DT_DRAWBRIDGE) {
if ((LINK_IS_ADULT) && (gSaveContext.sceneSetupIndex < 4)) { if (LINK_IS_ADULT && (gSaveContext.sceneSetupIndex < 4)) {
Actor_Kill(&this->dyna.actor); Actor_Kill(&this->dyna.actor);
return; return;
} }
if ((gSaveContext.sceneSetupIndex != 6) && if ((gSaveContext.sceneSetupIndex != 6) &&
((gSaveContext.sceneSetupIndex == 4) || (gSaveContext.sceneSetupIndex == 5) || ((gSaveContext.sceneSetupIndex == 4) || (gSaveContext.sceneSetupIndex == 5) ||
((LINK_IS_CHILD) && (gSaveContext.nightFlag != 0)))) { (!LINK_IS_ADULT && !IS_DAY))) {
this->dyna.actor.shape.rot.x = -0x4000; this->dyna.actor.shape.rot.x = -0x4000;
} else { } else {
this->dyna.actor.shape.rot.x = 0; this->dyna.actor.shape.rot.x = 0;
} }
if (gSaveContext.sceneSetupIndex != 6) { if (gSaveContext.sceneSetupIndex != 6) {
if ((CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) && (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) && if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) &&
(CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) && (!(gSaveContext.eventChkInf[8] & 1))) { CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) && !(gSaveContext.eventChkInf[8] & 1)) {
this->dyna.actor.shape.rot.x = -0x4000; this->dyna.actor.shape.rot.x = -0x4000;
} }
} }
@ -140,8 +140,8 @@ void BgSpot00Hanebasi_Destroy(Actor* thisx, GlobalContext* globalCtx) {
void BgSpot00Hanebasi_DrawbridgeWait(BgSpot00Hanebasi* this, GlobalContext* globalCtx) { void BgSpot00Hanebasi_DrawbridgeWait(BgSpot00Hanebasi* this, GlobalContext* globalCtx) {
BgSpot00Hanebasi* child = (BgSpot00Hanebasi*)this->dyna.actor.child; BgSpot00Hanebasi* child = (BgSpot00Hanebasi*)this->dyna.actor.child;
if ((gSaveContext.sceneSetupIndex >= 4) || (!(CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD))) || if ((gSaveContext.sceneSetupIndex >= 4) || !CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) ||
(!(CHECK_QUEST_ITEM(QUEST_GORON_RUBY))) || (!(CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE))) || !CHECK_QUEST_ITEM(QUEST_GORON_RUBY) || !CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) ||
(gSaveContext.eventChkInf[8] & 1)) { (gSaveContext.eventChkInf[8] & 1)) {
if (this->dyna.actor.shape.rot.x != 0) { if (this->dyna.actor.shape.rot.x != 0) {
if (Flags_GetEnv(globalCtx, 0) || ((gSaveContext.sceneSetupIndex < 4) && (gSaveContext.nightFlag == 0))) { if (Flags_GetEnv(globalCtx, 0) || ((gSaveContext.sceneSetupIndex < 4) && (gSaveContext.nightFlag == 0))) {
@ -153,8 +153,7 @@ void BgSpot00Hanebasi_DrawbridgeWait(BgSpot00Hanebasi* this, GlobalContext* glob
if (this) {} // required to match if (this) {} // required to match
} }
if ((this->dyna.actor.shape.rot.x == 0) && (gSaveContext.sceneSetupIndex < 4) && !LINK_IS_ADULT &&
if ((this->dyna.actor.shape.rot.x == 0) && (gSaveContext.sceneSetupIndex < 4) && (LINK_IS_CHILD) &&
(gSaveContext.nightFlag != 0)) { (gSaveContext.nightFlag != 0)) {
this->actionFunc = BgSpot00Hanebasi_DrawbridgeRiseAndFall; this->actionFunc = BgSpot00Hanebasi_DrawbridgeRiseAndFall;
this->destAngle = -0x4000; this->destAngle = -0x4000;
@ -214,9 +213,8 @@ void BgSpot00Hanebasi_Update(Actor* thisx, GlobalContext* globalCtx) {
if (this->dyna.actor.params == DT_DRAWBRIDGE) { if (this->dyna.actor.params == DT_DRAWBRIDGE) {
if (globalCtx->sceneNum == SCENE_SPOT00) { if (globalCtx->sceneNum == SCENE_SPOT00) {
if ((CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) && (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) && if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY) &&
(CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) && (!(gSaveContext.eventChkInf[8] & 1)) && CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) && !(gSaveContext.eventChkInf[8] & 1) && LINK_IS_CHILD) {
(gSaveContext.linkAge == 1)) {
Player* player = PLAYER; Player* player = PLAYER;
if ((player->actor.world.pos.x > -450.0f) && (player->actor.world.pos.x < 450.0f) && if ((player->actor.world.pos.x > -450.0f) && (player->actor.world.pos.x < 450.0f) &&
@ -321,7 +319,7 @@ void BgSpot00Hanebasi_Draw(Actor* thisx, GlobalContext* globalCtx) {
thisx->child->child->world.pos.z = newPos.z; thisx->child->child->world.pos.z = newPos.z;
if (gSaveContext.sceneSetupIndex != 12) { if (gSaveContext.sceneSetupIndex != 12) {
if ((gSaveContext.sceneSetupIndex >= 4) || ((LINK_IS_CHILD) && (thisx->shape.rot.x < -0x2000))) { if ((gSaveContext.sceneSetupIndex >= 4) || (!LINK_IS_ADULT && (thisx->shape.rot.x < -0x2000))) {
BgSpot00Hanebasi_DrawTorches(thisx, globalCtx); BgSpot00Hanebasi_DrawTorches(thisx, globalCtx);
} else { } else {
sTorchFlameScale = 0.0f; sTorchFlameScale = 0.0f;

View file

@ -48,7 +48,7 @@ void BgSpot01Idosoko_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_ProcessInitChain(&this->dyna.actor, sInitChain); Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
CollisionHeader_GetVirtual(&gKakarikoBOTWStoneCol, &colHeader); CollisionHeader_GetVirtual(&gKakarikoBOTWStoneCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Actor_Kill(&this->dyna.actor); Actor_Kill(&this->dyna.actor);
} else { } else {
BgSpot01Idosoko_SetupAction(this, func_808ABF54); BgSpot01Idosoko_SetupAction(this, func_808ABF54);

View file

@ -107,7 +107,7 @@ void func_808AC2BC(BgSpot01Objects2* this, GlobalContext* globalCtx) {
case 3: // Shooting Gallery, spawns Carpenter Sabooro during the day case 3: // Shooting Gallery, spawns Carpenter Sabooro during the day
CollisionHeader_GetVirtual(&D_06001C58, &colHeader); CollisionHeader_GetVirtual(&D_06001C58, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
func_808AC22C(globalCtx->setupPathList, &position, ((s32)thisx->params >> 8) & 0xFF, 0); func_808AC22C(globalCtx->setupPathList, &position, ((s32)thisx->params >> 8) & 0xFF, 0);
Actor_SpawnAsChild(&globalCtx->actorCtx, thisx, globalCtx, ACTOR_EN_DAIKU_KAKARIKO, position.x, Actor_SpawnAsChild(&globalCtx->actorCtx, thisx, globalCtx, ACTOR_EN_DAIKU_KAKARIKO, position.x,
position.y, position.z, thisx->world.rot.x, thisx->world.rot.y, position.y, position.z, thisx->world.rot.x, thisx->world.rot.y,

View file

@ -164,7 +164,7 @@ void func_808ACA08(BgSpot02Objects* this, GlobalContext* globalCtx) {
} }
if (globalCtx->csCtx.frames == 402) { if (globalCtx->csCtx.frames == 402) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE_KID); func_8002F7DC(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE_KID);
} else { } else {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE); func_8002F7DC(&player->actor, NA_SE_VO_LI_DEMO_DAMAGE);

View file

@ -177,7 +177,7 @@ void BgSpot06Objects_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
this->actionFunc = BgSpot06Objects_DoNothing; this->actionFunc = BgSpot06Objects_DoNothing;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Actor_Kill(thisx); Actor_Kill(thisx);
} }
break; break;

View file

@ -100,7 +100,7 @@ void BgSpot07Taki_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, ((frames * -1) & 0x7F), ((frames * 1) & 0x7F), 32, 32, 1, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, ((frames * -1) & 0x7F), ((frames * 1) & 0x7F), 32, 32, 1,
((frames * 1) & 0x7F), ((frames * 1) & 0x7F), 32, 32)); ((frames * 1) & 0x7F), ((frames * 1) & 0x7F), 32, 32));
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, 128); gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, 128);
if (this->dyna.actor.params == 0) { if (this->dyna.actor.params == 0) {
gSPSegment(POLY_XLU_DISP++, 0x09, gSPSegment(POLY_XLU_DISP++, 0x09,

View file

@ -72,7 +72,7 @@ void BgSpot16Doughnut_Init(Actor* thisx, GlobalContext* globalCtx) {
break; break;
} }
osSyncPrintf(VT_FGCOL(CYAN) "%f" VT_RST "\n", this->actor.scale.x); osSyncPrintf(VT_FGCOL(CYAN) "%f" VT_RST "\n", this->actor.scale.x);
if (LINK_IS_CHILD || gSaveContext.eventChkInf[2] & 0x8000) { if (!LINK_IS_ADULT || gSaveContext.eventChkInf[2] & 0x8000) {
this->fireFlag &= ~1; this->fireFlag &= ~1;
} else { } else {
this->fireFlag |= 1; this->fireFlag |= 1;

View file

@ -102,9 +102,9 @@ void func_808BAF40(BgTokiSwd* this, GlobalContext* globalCtx) {
globalCtx->csCtx.segment = D_808BBD90; globalCtx->csCtx.segment = D_808BBD90;
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
if (LINK_IS_CHILD || ((gSaveContext.eventChkInf[5] & 0x20))) { if (!LINK_IS_ADULT || ((gSaveContext.eventChkInf[5] & 0x20))) {
if (Actor_HasParent(&this->actor, globalCtx)) { if (Actor_HasParent(&this->actor, globalCtx)) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Item_Give(globalCtx, ITEM_SWORD_MASTER); Item_Give(globalCtx, ITEM_SWORD_MASTER);
globalCtx->csCtx.segment = D_808BB2F0; globalCtx->csCtx.segment = D_808BB2F0;
} else { } else {
@ -135,7 +135,7 @@ void func_808BB0AC(BgTokiSwd* this, GlobalContext* globalCtx) {
// if sword has a parent it has been pulled/placed from the pedestal // if sword has a parent it has been pulled/placed from the pedestal
if (Actor_HasParent(&this->actor, globalCtx)) { if (Actor_HasParent(&this->actor, globalCtx)) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Audio_PlayActorSound2(&this->actor, NA_SE_IT_SWORD_PUTAWAY_STN); Audio_PlayActorSound2(&this->actor, NA_SE_IT_SWORD_PUTAWAY_STN);
this->actor.draw = NULL; // sword has been pulled, dont draw sword this->actor.draw = NULL; // sword has been pulled, dont draw sword
} else { } else {
@ -161,22 +161,22 @@ void BgTokiSwd_Update(Actor* thisx, GlobalContext* globalCtx) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
} }
void BgTokiSwd_Draw(Actor* thisx, GlobalContext* globalCtx) { void BgTokiSwd_Draw(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
BgTokiSwd* this = THIS; BgTokiSwd* this = THIS;
s32 pad[3]; s32 pad[3];
OPEN_DISPS(globalCtx2->state.gfxCtx, "../z_bg_toki_swd.c", 727); OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_toki_swd.c", 727);
func_80093D18(globalCtx2->state.gfxCtx); func_80093D18(globalCtx->state.gfxCtx);
func_8002EBCC(&this->actor, globalCtx2, 0); func_8002EBCC(&this->actor, globalCtx, 0);
gSPSegment(POLY_OPA_DISP++, 0x08, gSPSegment(POLY_OPA_DISP++, 0x08,
Gfx_TexScroll(globalCtx2->state.gfxCtx, 0, -(globalCtx2->gameplayFrames % 0x80), 32, 32)); Gfx_TexScroll(globalCtx->state.gfxCtx, 0, -(globalCtx->gameplayFrames % 0x80), 32, 32));
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx2->state.gfxCtx, "../z_bg_toki_swd.c", 742), gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_toki_swd.c", 742),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_06001BD0); gSPDisplayList(POLY_OPA_DISP++, D_06001BD0);
CLOSE_DISPS(globalCtx2->state.gfxCtx, "../z_bg_toki_swd.c", 776); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_toki_swd.c", 776);
} }

View file

@ -69,7 +69,7 @@ void BgTreemouth_Init(Actor* thisx, GlobalContext* globalCtx) {
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f); ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);
Actor_SetFocus(thisx, 50.0f); Actor_SetFocus(thisx, 50.0f);
if ((gSaveContext.sceneSetupIndex < 4) && LINK_IS_CHILD) { if ((gSaveContext.sceneSetupIndex < 4) && !LINK_IS_ADULT) {
BgTreemouth_SetupAction(this, func_808BC8B8); BgTreemouth_SetupAction(this, func_808BC8B8);
} else if (LINK_IS_ADULT || (gSaveContext.sceneSetupIndex == 7)) { } else if (LINK_IS_ADULT || (gSaveContext.sceneSetupIndex == 7)) {
this->unk_168 = 0.0f; this->unk_168 = 0.0f;
@ -138,7 +138,7 @@ void func_808BC864(BgTreemouth* this, GlobalContext* globalCtx) {
void func_808BC8B8(BgTreemouth* this, GlobalContext* globalCtx) { void func_808BC8B8(BgTreemouth* this, GlobalContext* globalCtx) {
if ((!(Flags_GetEventChkInf(5))) || LINK_IS_ADULT) { if ((!(Flags_GetEventChkInf(5))) || LINK_IS_ADULT) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetEventChkInf(0xC)) { if (Flags_GetEventChkInf(0xC)) {
if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x7530)) { if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x7530)) {
this->dyna.actor.flags |= 1; this->dyna.actor.flags |= 1;

View file

@ -2,7 +2,7 @@
#include "z64cutscene_commands.h" #include "z64cutscene_commands.h"
// clang-format off // clang-format off
CutsceneData D_808BCE20[] = { static CutsceneData D_808BCE20[] = {
CS_BEGIN_CUTSCENE(12, 3000), CS_BEGIN_CUTSCENE(12, 3000),
CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA_LIST(0x00000015, 1),
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000),
@ -62,7 +62,7 @@ CutsceneData D_808BCE20[] = {
CS_END(), CS_END(),
}; };
CutsceneData D_808BD2A0[] = { static CutsceneData D_808BD2A0[] = {
CS_BEGIN_CUTSCENE(9, 3000), CS_BEGIN_CUTSCENE(9, 3000),
CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA_LIST(0x00000015, 1),
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000),
@ -102,7 +102,7 @@ CutsceneData D_808BD2A0[] = {
CS_END(), CS_END(),
}; };
CutsceneData D_808BD520[] = { static CutsceneData D_808BD520[] = {
CS_BEGIN_CUTSCENE(8, 3000), CS_BEGIN_CUTSCENE(8, 3000),
CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA_LIST(0x00000015, 1),
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000),
@ -137,7 +137,7 @@ CutsceneData D_808BD520[] = {
CS_END(), CS_END(),
}; };
CutsceneData D_808BD790[] = { static CutsceneData D_808BD790[] = {
CS_BEGIN_CUTSCENE(8, 3000), CS_BEGIN_CUTSCENE(8, 3000),
CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA_LIST(0x00000015, 1),
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000),

View file

@ -49,7 +49,7 @@ const ActorInit Boss_Dodongo_InitVars = {
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 12, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x0C, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -3000.0f, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -3000.0f, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 8200.0f, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 8200.0f, ICHAIN_STOP),
}; };
@ -259,7 +259,7 @@ void BossDodongo_Destroy(Actor* thisx, GlobalContext* globalCtx) {
void BossDodongo_SetupIntroCutscene(BossDodongo* this, GlobalContext* globalCtx) { void BossDodongo_SetupIntroCutscene(BossDodongo* this, GlobalContext* globalCtx) {
s16 frames = Animation_GetLastFrame(&D_0600F0D8); s16 frames = Animation_GetLastFrame(&D_0600F0D8);
Animation_Change(&this->skelAnime, &D_0600F0D8, 1.0f, 0.0f, frames, 0, -10.0f); Animation_Change(&this->skelAnime, &D_0600F0D8, 1.0f, 0.0f, frames, ANIMMODE_LOOP, -10.0f);
this->actionFunc = BossDodongo_IntroCutscene; this->actionFunc = BossDodongo_IntroCutscene;
this->csState = 0; this->csState = 0;
this->unk_1BC = 1; this->unk_1BC = 1;
@ -528,7 +528,8 @@ void BossDodongo_SetupBlowFire(BossDodongo* this) {
void BossDodongo_SetupInhale(BossDodongo* this) { void BossDodongo_SetupInhale(BossDodongo* this) {
this->actor.speedXZ = 0.0f; this->actor.speedXZ = 0.0f;
Animation_Change(&this->skelAnime, &D_06008EEC, 1.0f, 0.0f, Animation_GetLastFrame(&D_06008EEC), 2, -5.0f); Animation_Change(&this->skelAnime, &D_06008EEC, 1.0f, 0.0f, Animation_GetLastFrame(&D_06008EEC), ANIMMODE_ONCE,
-5.0f);
this->actionFunc = BossDodongo_Inhale; this->actionFunc = BossDodongo_Inhale;
this->unk_1DA = 100; this->unk_1DA = 100;
this->unk_1AC = 0; this->unk_1AC = 0;

View file

@ -61,7 +61,7 @@ const ActorInit Boss_Fd_InitVars = {
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 33, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x21, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP),
}; };

View file

@ -69,7 +69,7 @@ static Vec3f sHoleLocations[] = {
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 33, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x21, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP),
}; };
@ -951,8 +951,8 @@ void BossFd2_UpdateFace(BossFd2* this, GlobalContext* globalCtx) {
} }
} }
void BossFd2_Update(Actor* thisx, GlobalContext* globalCtx) { void BossFd2_Update(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
BossFd2* this = THIS; BossFd2* this = THIS;
s16 i; s16 i;
@ -962,7 +962,7 @@ void BossFd2_Update(Actor* thisx, GlobalContext* globalCtx) {
this->work[FD2_VAR_TIMER]++; this->work[FD2_VAR_TIMER]++;
this->work[FD2_UNK_TIMER]++; this->work[FD2_UNK_TIMER]++;
this->actionFunc(this, globalCtx2); this->actionFunc(this, globalCtx);
for (i = 0; i < ARRAY_COUNT(this->timers); i++) { for (i = 0; i < ARRAY_COUNT(this->timers); i++) {
if (this->timers[i] != 0) { if (this->timers[i] != 0) {
@ -978,16 +978,16 @@ void BossFd2_Update(Actor* thisx, GlobalContext* globalCtx) {
if (this->deathState == DEATH_START) { if (this->deathState == DEATH_START) {
if (this->work[FD2_INVINC_TIMER] == 0) { if (this->work[FD2_INVINC_TIMER] == 0) {
BossFd2_CollisionCheck(this, globalCtx2); BossFd2_CollisionCheck(this, globalCtx);
} }
CollisionCheck_SetAC(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base); CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
CollisionCheck_SetOC(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (!this->disableAT) { if (!this->disableAT) {
CollisionCheck_SetAT(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base); CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
} }
} }
BossFd2_UpdateFace(this, globalCtx2); BossFd2_UpdateFace(this, globalCtx);
this->fwork[FD2_TEX1_SCROLL_X] += 4.0f; this->fwork[FD2_TEX1_SCROLL_X] += 4.0f;
this->fwork[FD2_TEX1_SCROLL_Y] = 120.0f; this->fwork[FD2_TEX1_SCROLL_Y] = 120.0f;
this->fwork[FD2_TEX2_SCROLL_X] += 3.0f; this->fwork[FD2_TEX2_SCROLL_X] += 3.0f;

View file

@ -201,7 +201,7 @@ static void* sMouthTex_ci8_16x16[] = { gPhantomGanonMouthTex, gPhantomGanonSmile
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 43, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x2B, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP),
}; };

View file

@ -333,7 +333,7 @@ void BossGoma_ClearPixels(u8* clearPixelTable, s16 i) {
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 1, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x01, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_STOP), ICHAIN_F32_DIV1000(gravity, -2000, ICHAIN_STOP),
}; };
@ -843,7 +843,7 @@ void BossGoma_Encounter(BossGoma* this, GlobalContext* globalCtx) {
this->subCameraAt.z = this->actor.world.pos.z; this->subCameraAt.z = this->actor.world.pos.z;
if (this->framesUntilNextAction < 0) { if (this->framesUntilNextAction < 0) {
// @bug ? unreachable, timer is >= 0 //! @bug ? unreachable, timer is >= 0
SkelAnime_Update(&this->skelanime); SkelAnime_Update(&this->skelanime);
Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f); Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f);
} else { } else {
@ -1080,7 +1080,7 @@ void BossGoma_Defeated(BossGoma* this, GlobalContext* globalCtx) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
BossGoma_ClearPixels(sClearPixelTableFirstPass, this->decayingProgress); BossGoma_ClearPixels(sClearPixelTableFirstPass, this->decayingProgress);
// @bug this allows this->decayingProgress = 0x100 = 256 which is out of bounds when accessing //! @bug this allows this->decayingProgress = 0x100 = 256 which is out of bounds when accessing
// sClearPixelTableFirstPass, though timers may prevent this from ever happening? // sClearPixelTableFirstPass, though timers may prevent this from ever happening?
if (this->decayingProgress < 0x100) { if (this->decayingProgress < 0x100) {
this->decayingProgress++; this->decayingProgress++;
@ -1154,7 +1154,7 @@ void BossGoma_Defeated(BossGoma* this, GlobalContext* globalCtx) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
BossGoma_ClearPixels(sClearPixelTableSecondPass, this->decayingProgress); BossGoma_ClearPixels(sClearPixelTableSecondPass, this->decayingProgress);
// @bug same as sClearPixelTableFirstPass //! @bug same as sClearPixelTableFirstPass
if (this->decayingProgress < 0x100) { if (this->decayingProgress < 0x100) {
this->decayingProgress++; this->decayingProgress++;
} }
@ -1164,7 +1164,7 @@ void BossGoma_Defeated(BossGoma* this, GlobalContext* globalCtx) {
case 3: case 3:
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
BossGoma_ClearPixels(sClearPixelTableSecondPass, this->decayingProgress); BossGoma_ClearPixels(sClearPixelTableSecondPass, this->decayingProgress);
// @bug same as sClearPixelTableFirstPass //! @bug same as sClearPixelTableFirstPass
if (this->decayingProgress < 0x100) { if (this->decayingProgress < 0x100) {
this->decayingProgress++; this->decayingProgress++;
} }

View file

@ -259,7 +259,7 @@ static AnimationHeader* sHandPushoffPoses[] = { &gBongoLeftHandPushoffPoseAnim,
static AnimationHeader* sHandHangPoses[] = { &gBongoLeftHandHangPoseAnim, &gBongoRightHandHangPoseAnim }; static AnimationHeader* sHandHangPoses[] = { &gBongoLeftHandHangPoseAnim, &gBongoRightHandHangPoseAnim };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 41, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x29, ICHAIN_CONTINUE),
ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP), ICHAIN_VEC3F_DIV1000(scale, 20, ICHAIN_STOP),
}; };
@ -1862,7 +1862,7 @@ void BossSst_HandCrush(BossSst* this, GlobalContext* globalCtx) {
player->actor.world.pos = this->actor.world.pos; player->actor.world.pos = this->actor.world.pos;
if (this->timer == 0) { if (this->timer == 0) {
this->timer = 20; this->timer = 20;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID); func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID);
} else { } else {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S); func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S);

View file

@ -687,9 +687,9 @@ void func_8096865C(Actor* thisx, GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_6k.c", 1242); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_6k.c", 1242);
} }
void func_809688C4(Actor* thisx, GlobalContext* globalCtx) { void func_809688C4(Actor* thisx, GlobalContext* globalCtx2) {
Demo6K* this = THIS; Demo6K* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
u32 frames = globalCtx->state.frames; u32 frames = globalCtx->state.frames;
s32 i; s32 i;
@ -710,7 +710,7 @@ void func_809688C4(Actor* thisx, GlobalContext* globalCtx) {
Matrix_Scale(this->unk_234[i] * D_8096931C[(frames + i) & 3], Matrix_Scale(this->unk_234[i] * D_8096931C[(frames + i) & 3],
this->unk_234[i] * D_8096931C[(frames + i) & 3], this->unk_234[i] * D_8096931C[(frames + i) & 3],
this->unk_234[i] * D_8096931C[(frames + i) & 3], MTXMODE_APPLY); this->unk_234[i] * D_8096931C[(frames + i) & 3], MTXMODE_APPLY);
func_800D1FD4(&globalCtx2->mf_11DA0); func_800D1FD4(&globalCtx->mf_11DA0);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_6k.c", 1297), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_6k.c", 1297),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL);

View file

@ -504,8 +504,8 @@ void DemoDu_CsGoronsRuby_AdvanceTo04(DemoDu* this, GlobalContext* globalCtx) {
void DemoDu_CsGoronsRuby_AdvanceTo05(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo05(DemoDu* this, s32 animFinished) {
if (animFinished) { if (animFinished) {
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim), 0, Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
0.0f); ANIMMODE_LOOP, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(5); this->updateIndex = CS_GORONSRUBY_SUBSCENE(5);
} }
} }
@ -524,8 +524,8 @@ void DemoDu_CsGoronsRuby_AdvanceTo06(DemoDu* this, GlobalContext* globalCtx) {
void DemoDu_CsGoronsRuby_AdvanceTo07(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo07(DemoDu* this, s32 animFinished) {
if (animFinished) { if (animFinished) {
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim), 0, Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
0.0f); ANIMMODE_LOOP, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(7); this->updateIndex = CS_GORONSRUBY_SUBSCENE(7);
} }
} }
@ -552,8 +552,8 @@ void DemoDu_CsGoronsRuby_AdvanceTo09(DemoDu* this, s32 animFinished) {
void DemoDu_CsGoronsRuby_AdvanceTo10(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo10(DemoDu* this, s32 animFinished) {
if (animFinished) { if (animFinished) {
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim), 0, Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
0.0f); ANIMMODE_LOOP, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(10); this->updateIndex = CS_GORONSRUBY_SUBSCENE(10);
} }
} }
@ -584,7 +584,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo13(DemoDu* this, GlobalContext* globalCtx) {
if ((npcAction != NULL) && (npcAction->action != 6)) { if ((npcAction != NULL) && (npcAction->action != 6)) {
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim), Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
0, 0.0f); ANIMMODE_LOOP, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(13); this->updateIndex = CS_GORONSRUBY_SUBSCENE(13);
} }
} }
@ -703,7 +703,7 @@ void DemoDu_InitCs_AfterGanon(DemoDu* this, GlobalContext* globalCtx) {
f32 lastFrame = Animation_GetLastFrame(&gDaruniaSageFormationAnim); f32 lastFrame = Animation_GetLastFrame(&gDaruniaSageFormationAnim);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gDaruniaSkel, NULL, NULL, NULL, 0); SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gDaruniaSkel, NULL, NULL, NULL, 0);
Animation_Change(&this->skelAnime, &gDaruniaSageFormationAnim, 1.0f, 0.0f, lastFrame, 2, 0.0f); Animation_Change(&this->skelAnime, &gDaruniaSageFormationAnim, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, 0.0f);
this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(0); this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(0);
this->actor.shape.shadowAlpha = 0; this->actor.shape.shadowAlpha = 0;
} }

View file

@ -111,7 +111,7 @@ static s16 sEffectTypeObjects[] = {
static u8 sTimewarpVertexSizeIndices[] = { 1, 1, 2, 0, 1, 1, 2, 0, 1, 2, 0, 2, 1, 0, 1, 0, 2, 0, 2, 2, 0 }; static u8 sTimewarpVertexSizeIndices[] = { 1, 1, 2, 0, 1, 1, 2, 0, 1, 2, 0, 2, 1, 0, 1, 0, 2, 0, 2, 2, 0 };
Color_RGB8 sJewelSparkleColors[5][2] = { static Color_RGB8 sJewelSparkleColors[5][2] = {
{ { 255, 255, 255 }, { 100, 255, 0 } }, { { 255, 255, 255 }, { 200, 0, 150 } }, { { 255, 255, 255 }, { 100, 255, 0 } }, { { 255, 255, 255 }, { 200, 0, 150 } },
{ { 255, 255, 255 }, { 0, 100, 255 } }, { { 0, 0, 0 }, { 0, 0, 0 } }, { { 255, 255, 255 }, { 0, 100, 255 } }, { { 0, 0, 0 }, { 0, 0, 0 } },
{ { 223, 0, 0 }, { 0, 0, 0 } }, { { 223, 0, 0 }, { 0, 0, 0 } },
@ -141,7 +141,7 @@ f32 DemoEffect_InterpolateCsFrames(GlobalContext* globalCtx, s32 csActionId) {
*/ */
void DemoEffect_InitJewel(GlobalContext* globalCtx, DemoEffect* this) { void DemoEffect_InitJewel(GlobalContext* globalCtx, DemoEffect* this) {
this->initDrawFunc = DemoEffect_DrawJewel; this->initDrawFunc = DemoEffect_DrawJewel;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
this->initUpdateFunc = DemoEffect_UpdateJewelChild; this->initUpdateFunc = DemoEffect_UpdateJewelChild;
} else { } else {
this->initUpdateFunc = DemoEffect_UpdateJewelAdult; this->initUpdateFunc = DemoEffect_UpdateJewelAdult;
@ -175,8 +175,8 @@ void DemoEffect_InitGetItem(DemoEffect* this) {
/** /**
* Main Actor Init function * Main Actor Init function
*/ */
void DemoEffect_Init(Actor* thisx, GlobalContext* globalCtx) { void DemoEffect_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
DemoEffect* this = THIS; DemoEffect* this = THIS;
s32 effectType; s32 effectType;
s32 lightEffect; s32 lightEffect;
@ -413,7 +413,7 @@ void DemoEffect_Init(Actor* thisx, GlobalContext* globalCtx) {
} }
lightRing = (DemoEffect*)Actor_SpawnAsChild( lightRing = (DemoEffect*)Actor_SpawnAsChild(
&globalCtx2->actorCtx, &crystalLight->actor, globalCtx2, ACTOR_DEMO_EFFECT, this->actor.world.pos.x, &globalCtx->actorCtx, &crystalLight->actor, globalCtx, ACTOR_DEMO_EFFECT, this->actor.world.pos.x,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, DEMO_EFFECT_LIGHTRING_TRIFORCE); this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, DEMO_EFFECT_LIGHTRING_TRIFORCE);
if (lightRing != NULL) { if (lightRing != NULL) {
@ -1664,9 +1664,9 @@ s32 DemoEffect_CheckCsAction(DemoEffect* this, GlobalContext* globalCtx, s32 csA
/** /**
* Draw function for the Jewel Actor. * Draw function for the Jewel Actor.
*/ */
void DemoEffect_DrawJewel(Actor* thisx, GlobalContext* globalCtx) { void DemoEffect_DrawJewel(Actor* thisx, GlobalContext* globalCtx2) {
DemoEffect* this = THIS; DemoEffect* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
u32 frames = this->jewel.timer; u32 frames = this->jewel.timer;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2543); OPEN_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2543);
@ -1678,21 +1678,21 @@ void DemoEffect_DrawJewel(Actor* thisx, GlobalContext* globalCtx) {
switch (this->jewel.type) { switch (this->jewel.type) {
case DEMO_EFFECT_JEWEL_KOKIRI: case DEMO_EFFECT_JEWEL_KOKIRI:
gSPSegment(POLY_XLU_DISP++, 9, gSPSegment(POLY_XLU_DISP++, 9,
Gfx_TwoTexScroll(globalCtx2->state.gfxCtx, 0, (frames * 4) % 256, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (frames * 4) % 256,
(256 - ((frames * 2) % 256)) - 1, 64, 64, 1, (frames * 2) % 256, (256 - ((frames * 2) % 256)) - 1, 64, 64, 1, (frames * 2) % 256,
(256 - (frames % 256)) - 1, 16, 16)); (256 - (frames % 256)) - 1, 16, 16));
break; break;
case DEMO_EFFECT_JEWEL_GORON: case DEMO_EFFECT_JEWEL_GORON:
gSPSegment(POLY_XLU_DISP++, 9, gSPSegment(POLY_XLU_DISP++, 9,
Gfx_TwoTexScroll(globalCtx2->state.gfxCtx, 0, (frames * 4) % 128, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (frames * 4) % 128,
(256 - ((frames * 2) % 256)) - 1, 32, 64, 1, (frames * 2) % 256, (256 - ((frames * 2) % 256)) - 1, 32, 64, 1, (frames * 2) % 256,
(256 - (frames % 256)) - 1, 16, 8)); (256 - (frames % 256)) - 1, 16, 8));
break; break;
case DEMO_EFFECT_JEWEL_ZORA: case DEMO_EFFECT_JEWEL_ZORA:
gSPSegment(POLY_XLU_DISP++, 9, gSPSegment(POLY_XLU_DISP++, 9,
Gfx_TwoTexScroll(globalCtx2->state.gfxCtx, 0, (frames * 4) % 256, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (frames * 4) % 256,
(256 - ((frames * 2) % 256)) - 1, 32, 32, 1, (frames * 2) % 256, (256 - ((frames * 2) % 256)) - 1, 32, 32, 1, (frames * 2) % 256,
(256 - (frames % 256)) - 1, 16, 16)); (256 - (frames % 256)) - 1, 16, 16));
break; break;
@ -1938,24 +1938,24 @@ void DemoEffect_DrawLgtShower(Actor* thisx, GlobalContext* globalCtx) {
/** /**
* Draw function for the Light Ring Actor. * Draw function for the Light Ring Actor.
*/ */
void DemoEffect_DrawLightRing(Actor* thisx, GlobalContext* globalCtx) { void DemoEffect_DrawLightRing(Actor* thisx, GlobalContext* globalCtx2) {
DemoEffect* this = THIS; DemoEffect* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
u32 frames = this->lightRing.timer; u32 frames = this->lightRing.timer;
OPEN_DISPS(globalCtx2->state.gfxCtx, "../z_demo_effect.c", 2956); OPEN_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2956);
func_80093D84(globalCtx2->state.gfxCtx); func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 170, 255, 255, this->lightRing.alpha); gDPSetPrimColor(POLY_XLU_DISP++, 128, 128, 170, 255, 255, this->lightRing.alpha);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 255); gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 255);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx2->state.gfxCtx, "../z_demo_effect.c", 2963), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2963),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_XLU_DISP++, 8, gSPSegment(POLY_XLU_DISP++, 8,
Gfx_TwoTexScroll(globalCtx2->state.gfxCtx, 0, (frames * 5) % 64, 512 - ((frames * 2) % 512) - 1, 16, 128, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, (frames * 5) % 64, 512 - ((frames * 2) % 512) - 1, 16, 128,
1, 0, 0, 8, 1024)); 1, 0, 0, 8, 1024));
gSPDisplayList(POLY_XLU_DISP++, gGoldenGoddessLightRingDL); gSPDisplayList(POLY_XLU_DISP++, gGoldenGoddessLightRingDL);
CLOSE_DISPS(globalCtx2->state.gfxCtx, "../z_demo_effect.c", 2978); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_demo_effect.c", 2978);
} }
/** /**

View file

@ -1063,11 +1063,11 @@ void func_8098085C(DemoGt* this, GlobalContext* globalCtx) {
} }
} }
void func_809809C0(DemoGt* this, GlobalContext* globalCtx) { void func_809809C0(DemoGt* this, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
DemoGt* this2 = this; DemoGt* this2 = this;
s32 gameplayFrames = globalCtx2->gameplayFrames; s32 gameplayFrames = globalCtx->gameplayFrames;
u16 frames = globalCtx2->csCtx.frames; u16 frames = globalCtx->csCtx.frames;
Vec3f sp54; Vec3f sp54;
s16 pad[3]; s16 pad[3];
@ -1081,7 +1081,7 @@ void func_809809C0(DemoGt* this, GlobalContext* globalCtx) {
sp54.z = this2->dyna.actor.world.pos.z + 23.0f; sp54.z = this2->dyna.actor.world.pos.z + 23.0f;
if (ABS(gameplayFrames % 12) == 0) { if (ABS(gameplayFrames % 12) == 0) {
DemoGt_SpawnExplosionNoSound(globalCtx2, &sp54, &sp40, &sp34, 2.0f); DemoGt_SpawnExplosionNoSound(globalCtx, &sp54, &sp40, &sp34, 2.0f);
} }
} }
} }
@ -1245,9 +1245,9 @@ void DemoGt_Update16(DemoGt* this, GlobalContext* globalCtx) {
} }
} }
void DemoGt_Draw4(DemoGt* this, GlobalContext* globalCtx) { void DemoGt_Draw4(DemoGt* this, GlobalContext* globalCtx2) {
GraphicsContext* gfxCtx; GraphicsContext* gfxCtx;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
u16 frames = globalCtx->csCtx.frames; u16 frames = globalCtx->csCtx.frames;
s32 pad; s32 pad;
s16 sp76; s16 sp76;
@ -1268,7 +1268,7 @@ void DemoGt_Draw4(DemoGt* this, GlobalContext* globalCtx) {
sp6C = kREG(61); sp6C = kREG(61);
sp68 = (s16)((s32)kREG(58)) + 0x4000; sp68 = (s16)((s32)kREG(58)) + 0x4000;
sp6A = kREG(58); sp6A = kREG(58);
gfxCtx = globalCtx2->state.gfxCtx; gfxCtx = globalCtx->state.gfxCtx;
sp60 = Graph_Alloc(gfxCtx, sizeof(Mtx)); sp60 = Graph_Alloc(gfxCtx, sizeof(Mtx));
sp44 = 1.0f - Math_CosS(sp76); sp44 = 1.0f - Math_CosS(sp76);
@ -1288,8 +1288,8 @@ void DemoGt_Draw4(DemoGt* this, GlobalContext* globalCtx) {
Matrix_Translate(sp48.x, sp48.y, sp48.z, MTXMODE_APPLY); Matrix_Translate(sp48.x, sp48.y, sp48.z, MTXMODE_APPLY);
Matrix_ToMtx(sp60, "../z_demo_gt_part4_1.c", 232); Matrix_ToMtx(sp60, "../z_demo_gt_part4_1.c", 232);
if (!FrameAdvance_IsEnabled(globalCtx2)) { if (!FrameAdvance_IsEnabled(globalCtx)) {
func_80980F8C(this, globalCtx2); func_80980F8C(this, globalCtx);
} }
Matrix_Pop(); Matrix_Pop();

View file

@ -200,7 +200,7 @@ void DemoIk_Type1Init(DemoIk* this, GlobalContext* globalCtx) {
} }
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, phi_f0); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, phi_f0);
SkelAnime_Init(globalCtx, &this->skelAnime, skeleton, NULL, this->jointTable, this->morphTable, 2); SkelAnime_Init(globalCtx, &this->skelAnime, skeleton, NULL, this->jointTable, this->morphTable, 2);
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), 2, 0.0f); Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_ONCE, 0.0f);
} }
void func_8098393C(DemoIk* this) { void func_8098393C(DemoIk* this) {
@ -338,7 +338,7 @@ void DemoIk_Type2Init(DemoIk* this, GlobalContext* globalCtx) {
} }
SkelAnime_InitFlex(globalCtx, &this->skelAnime, skeleton, NULL, this->jointTable, this->morphTable, 2); SkelAnime_InitFlex(globalCtx, &this->skelAnime, skeleton, NULL, this->jointTable, this->morphTable, 2);
Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), 2, 0.0f); Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_ONCE, 0.0f);
this->actionMode = 3; this->actionMode = 3;
this->drawMode = 0; this->drawMode = 0;
} }

View file

@ -2,7 +2,7 @@
#include "z64cutscene_commands.h" #include "z64cutscene_commands.h"
// clang-format off // clang-format off
CutsceneData D_8098786C[] = { static CutsceneData D_8098786C[] = {
CS_BEGIN_CUTSCENE(32, 3000), CS_BEGIN_CUTSCENE(32, 3000),
CS_UNK_DATA_LIST(0x00000020, 1), CS_UNK_DATA_LIST(0x00000020, 1),
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000),

View file

@ -328,14 +328,14 @@ void DemoKankyo_SetupType(DemoKankyo* this, GlobalContext* globalCtx) {
if (this->warpTimer == 1) { if (this->warpTimer == 1) {
if (globalCtx->sceneNum == SCENE_TOKINOMA) { if (globalCtx->sceneNum == SCENE_TOKINOMA) {
D_8098CF84 = 25; D_8098CF84 = 25;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
globalCtx->csCtx.segment = gChildWarpInToTCS; globalCtx->csCtx.segment = gChildWarpInToTCS;
} else { } else {
globalCtx->csCtx.segment = gAdultWarpInToTCS; globalCtx->csCtx.segment = gAdultWarpInToTCS;
} }
} else { } else {
D_8098CF84 = 32; D_8098CF84 = 32;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
globalCtx->csCtx.segment = gChildWarpInCS; globalCtx->csCtx.segment = gChildWarpInCS;
} else { } else {
globalCtx->csCtx.segment = gAdultWarpInCS; globalCtx->csCtx.segment = gAdultWarpInCS;
@ -349,13 +349,13 @@ void DemoKankyo_SetupType(DemoKankyo* this, GlobalContext* globalCtx) {
break; break;
case DEMOKANKYO_WARP_IN: case DEMOKANKYO_WARP_IN:
if (globalCtx->sceneNum == SCENE_TOKINOMA) { if (globalCtx->sceneNum == SCENE_TOKINOMA) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
globalCtx->csCtx.segment = gChildWarpOutToTCS; globalCtx->csCtx.segment = gChildWarpOutToTCS;
} else { } else {
globalCtx->csCtx.segment = gAdultWarpOutToTCS; globalCtx->csCtx.segment = gAdultWarpOutToTCS;
} }
} else { } else {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
globalCtx->csCtx.segment = gChildWarpOutCS; globalCtx->csCtx.segment = gChildWarpOutCS;
} else { } else {
globalCtx->csCtx.segment = gAdultWarpOutCS; globalCtx->csCtx.segment = gAdultWarpOutCS;
@ -446,7 +446,7 @@ void DemoKankyo_Draw(Actor* thisx, GlobalContext* globalCtx) {
} else if (!Actor_IsFacingAndNearPlayer(&this->actor, 300.0f, 0x7530)) { } else if (!Actor_IsFacingAndNearPlayer(&this->actor, 300.0f, 0x7530)) {
break; break;
} else { } else {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (globalCtx->csCtx.frames < 170 || globalCtx->csCtx.state == CS_STATE_IDLE) { if (globalCtx->csCtx.frames < 170 || globalCtx->csCtx.state == CS_STATE_IDLE) {
break; break;
} }

View file

@ -1,7 +1,7 @@
#include "ultra64.h" #include "ultra64.h"
#include "global.h" #include "global.h"
UNK_TYPE D_80991680[] = { static UNK_TYPE D_80991680[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -61,7 +61,7 @@ UNK_TYPE D_80991680[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
UNK_TYPE D_80991E80[] = { static UNK_TYPE D_80991E80[] = {
0x2F3E56AB, 0xA4582102, 0x10417AB0, 0x805C312A, 0x32376DD4, 0xA2633907, 0x0B387DA2, 0x6D81470C, 0x3C5C60AC, 0x2F3E56AB, 0xA4582102, 0x10417AB0, 0x805C312A, 0x32376DD4, 0xA2633907, 0x0B387DA2, 0x6D81470C, 0x3C5C60AC,
0xA5571801, 0x154C97B9, 0x68533236, 0x304276D6, 0x9B533108, 0x154A96B7, 0x7C9B400B, 0x3E756FAE, 0xAF5D1301, 0xA5571801, 0x154C97B9, 0x68533236, 0x304276D6, 0x9B533108, 0x154A96B7, 0x7C9B400B, 0x3E756FAE, 0xAF5D1301,
0x1D59B4BF, 0x53432C38, 0x2F487DCC, 0x8A4A2406, 0x1F5DB0C8, 0x90B55110, 0x408B7FAA, 0xB76D1503, 0x286ACCBE, 0x1D59B4BF, 0x53432C38, 0x2F487DCC, 0x8A4A2406, 0x1F5DB0C8, 0x90B55110, 0x408B7FAA, 0xB76D1503, 0x286ACCBE,
@ -121,7 +121,7 @@ UNK_TYPE D_80991E80[] = {
0x242B4FB8, 0xB66A2E06, 0x0D3E66AA, 0x9B663322, 0x3B2D6CDD, 0xB47B450A, 0x062B6E9C, 0x6E705D17, 0x242B4FB8, 0xB66A2E06, 0x0D3E66AA, 0x9B663322, 0x3B2D6CDD, 0xB47B450A, 0x062B6E9C, 0x6E705D17,
}; };
Vtx D_80992680[] = { static Vtx D_80992680[] = {
VTX(405, 1572, -1643, 401, -3470, 0x00, 0x78, 0x00, 0xFF), VTX(405, 1572, -1643, 401, -3470, 0x00, 0x78, 0x00, 0xFF),
VTX(470, 1488, -1799, 512, -3755, 0x00, 0x78, 0x00, 0xFF), VTX(470, 1488, -1799, 512, -3755, 0x00, 0x78, 0x00, 0xFF),
VTX(207, 1312, -1162, 251, -3368, 0x00, 0x78, 0x00, 0xFF), VTX(207, 1312, -1162, 251, -3368, 0x00, 0x78, 0x00, 0xFF),
@ -156,7 +156,7 @@ Vtx D_80992680[] = {
VTX(1915, 295, 1153, 410, 2901, 0x00, 0x78, 0x00, 0xFF), VTX(1915, 295, 1153, 410, 2901, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_80992880[] = { static Vtx D_80992880[] = {
VTX(1905, 295, 1026, 410, 2617, 0x00, 0x78, 0x00, 0xFF), VTX(1940, 295, 1047, 512, 2674, 0x00, 0x78, 0x00, 0xFF), VTX(1905, 295, 1026, 410, 2617, 0x00, 0x78, 0x00, 0xFF), VTX(1940, 295, 1047, 512, 2674, 0x00, 0x78, 0x00, 0xFF),
VTX(1905, 220, 1026, 396, 2481, 0x00, 0x78, 0x00, 0xFF), VTX(1940, 220, 1047, 512, 2560, 0x00, 0x78, 0x00, 0xFF), VTX(1905, 220, 1026, 396, 2481, 0x00, 0x78, 0x00, 0xFF), VTX(1940, 220, 1047, 512, 2560, 0x00, 0x78, 0x00, 0xFF),
VTX(1658, 220, 1169, 101, 2487, 0x00, 0x78, 0x00, 0xFF), VTX(1658, 220, 1215, 0, 2560, 0x00, 0x78, 0x00, 0xFF), VTX(1658, 220, 1169, 101, 2487, 0x00, 0x78, 0x00, 0xFF), VTX(1658, 220, 1215, 0, 2560, 0x00, 0x78, 0x00, 0xFF),
@ -175,7 +175,7 @@ Vtx D_80992880[] = {
VTX(1915, -200, 1153, 410, 4096, 0x00, 0x78, 0x00, 0xFF), VTX(1968, -200, 1172, 512, 4096, 0x00, 0x78, 0x00, 0xFF), VTX(1915, -200, 1153, 410, 4096, 0x00, 0x78, 0x00, 0xFF), VTX(1968, -200, 1172, 512, 4096, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_80992A80[] = { static Vtx D_80992A80[] = {
VTX(1915, 295, 1153, 410, 2901, 0x00, 0x78, 0x00, 0xFF), VTX(1915, 295, 1153, 410, 2901, 0x00, 0x78, 0x00, 0xFF),
VTX(1968, -200, 1172, 512, 4096, 0x00, 0x78, 0x00, 0xFF), VTX(1968, -200, 1172, 512, 4096, 0x00, 0x78, 0x00, 0xFF),
VTX(1968, 295, 1172, 512, 2958, 0x00, 0x78, 0x00, 0xFF), VTX(1968, 295, 1172, 512, 2958, 0x00, 0x78, 0x00, 0xFF),
@ -204,13 +204,13 @@ Vtx D_80992A80[] = {
VTX(-76, 820, -1633, 0, -4096, 0x00, 0x78, 0x00, 0xFF), VTX(-76, 820, -1633, 0, -4096, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_80992C20[] = { static Vtx D_80992C20[] = {
VTX(1658, 295, 1169, 205, 1308, 0x00, 0x78, 0x00, 0xFF), VTX(1658, 295, 1169, 205, 1308, 0x00, 0x78, 0x00, 0xFF),
VTX(1763, 295, 1241, 205, 1451, 0x00, 0x78, 0x00, 0xFF), VTX(1763, 295, 1241, 205, 1451, 0x00, 0x78, 0x00, 0xFF),
VTX(1915, 295, 1153, 819, 1451, 0x00, 0x78, 0x00, 0xFF), VTX(1915, 295, 1153, 819, 1451, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_80992C50[] = { static Vtx D_80992C50[] = {
VTX(-389, 800, -1884, 102, 4096, 0x2E, 0x00, 0x92, 0xFF), VTX(-389, 800, -1884, 102, 4096, 0x2E, 0x00, 0x92, 0xFF),
VTX(-989, 800, -2131, 512, 4096, 0x2E, 0x00, 0x92, 0xFF), VTX(-989, 800, -2131, 512, 4096, 0x2E, 0x00, 0x92, 0xFF),
VTX(-389, 1312, -1884, 102, 3589, 0x2B, 0x29, 0x98, 0xFF), VTX(-389, 1312, -1884, 102, 3589, 0x2B, 0x29, 0x98, 0xFF),
@ -245,7 +245,7 @@ Vtx D_80992C50[] = {
VTX(112, 20, 1211, 256, -12288, 0x00, 0x78, 0x00, 0xFF), VTX(112, 20, 1211, 256, -12288, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_80992E50[] = { static Vtx D_80992E50[] = {
VTX(-1481, 1314, -1874, 512, 2676, 0x4D, 0x56, 0x1F, 0xFF), VTX(-1481, 1314, -1874, 512, 2676, 0x4D, 0x56, 0x1F, 0xFF),
VTX(-2157, 1810, -1555, 512, 1661, 0x49, 0x56, 0x28, 0xFF), VTX(-2157, 1810, -1555, 512, 1661, 0x49, 0x56, 0x28, 0xFF),
VTX(-1708, 1312, -1303, 181, 2088, 0x47, 0x53, 0x31, 0xFF), VTX(-1708, 1312, -1303, 181, 2088, 0x47, 0x53, 0x31, 0xFF),
@ -278,7 +278,7 @@ Vtx D_80992E50[] = {
VTX(-2717, 2160, -1291, 512, 850, 0x48, 0x55, 0x2A, 0xFF), VTX(-2717, 2160, -1291, 512, 850, 0x48, 0x55, 0x2A, 0xFF),
}; };
Vtx D_80993030[] = { static Vtx D_80993030[] = {
VTX(-5196, 1149, 2080, 512, -2955, 0x00, 0x78, 0x00, 0xFF), VTX(-5196, 1149, 2080, 512, -2955, 0x00, 0x78, 0x00, 0xFF),
VTX(-5194, 351, 2079, 512, -3868, 0x00, 0x78, 0x00, 0xFF), VTX(-5194, 351, 2079, 512, -3868, 0x00, 0x78, 0x00, 0xFF),
VTX(-4653, 291, 1728, 0, -3868, 0x00, 0x78, 0x00, 0xFF), VTX(-4653, 291, 1728, 0, -3868, 0x00, 0x78, 0x00, 0xFF),
@ -312,7 +312,7 @@ Vtx D_80993030[] = {
VTX(-4488, 1519, 3360, 512, -6384, 0x00, 0x78, 0x00, 0xFF), VTX(-4488, 1519, 3360, 512, -6384, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_80993220[] = { static Vtx D_80993220[] = {
VTX(-4488, 1519, 3360, 512, -6384, 0x00, 0x78, 0x00, 0xFF), VTX(-4488, 1519, 3360, 512, -6384, 0x00, 0x78, 0x00, 0xFF),
VTX(-3980, 1539, 3206, 512, -6678, 0x00, 0x78, 0x00, 0xFF), VTX(-3980, 1539, 3206, 512, -6678, 0x00, 0x78, 0x00, 0xFF),
VTX(-4281, 1193, 2801, 0, -6531, 0x00, 0x78, 0x00, 0xFF), VTX(-4281, 1193, 2801, 0, -6531, 0x00, 0x78, 0x00, 0xFF),
@ -323,13 +323,13 @@ Vtx D_80993220[] = {
VTX(-4183, 1090, 2614, 0, -7266, 0x00, 0x78, 0x00, 0xFF), VTX(-4183, 1090, 2614, 0, -7266, 0x00, 0x78, 0x00, 0xFF),
}; };
Vtx D_809932A0[] = { static Vtx D_809932A0[] = {
VTX(117, 20, 1458, 1024, -6144, 0x00, 0x78, 0x00, 0xFF), VTX(117, 20, 1458, 1024, -6144, 0x00, 0x78, 0x00, 0xFF),
VTX(112, 20, 1211, 512, -6144, 0x00, 0x78, 0x00, 0xFF), VTX(112, 20, 1211, 512, -6144, 0x00, 0x78, 0x00, 0xFF),
VTX(-261, 20, 1460, 1024, -5941, 0x00, 0x78, 0x00, 0xFF), VTX(-261, 20, 1460, 1024, -5941, 0x00, 0x78, 0x00, 0xFF),
}; };
Gfx D_809932D0[] = { static Gfx D_809932D0[] = {
gsDPPipeSync(), gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE), gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(65535, 65535, 0, G_TX_RENDERTILE, G_ON), gsSPTexture(65535, 65535, 0, G_TX_RENDERTILE, G_ON),
@ -347,7 +347,7 @@ Gfx D_809932D0[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx D_80993390[] = { static Gfx D_80993390[] = {
gsSPVertex(D_80992680, 32, 0), gsSPVertex(D_80992680, 32, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0), gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSP2Triangles(4, 6, 5, 0, 7, 8, 9, 0), gsSP2Triangles(4, 6, 5, 0, 7, 8, 9, 0),
@ -387,7 +387,7 @@ Gfx D_80993390[] = {
gsSPEndDisplayList(), gsSPEndDisplayList(),
}; };
Gfx D_809934B8[] = { static Gfx D_809934B8[] = {
gsSPVertex(D_80992C50, 32, 0), gsSPVertex(D_80992C50, 32, 0),
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
gsSP2Triangles(4, 5, 3, 0, 5, 6, 3, 0), gsSP2Triangles(4, 5, 3, 0, 5, 6, 3, 0),

View file

@ -96,8 +96,8 @@ static DoorKillerTextureEntry sDoorTextures[4] = {
{ OBJECT_GAMEPLAY_KEEP, gWoodenDoorTex }, { OBJECT_GAMEPLAY_KEEP, gWoodenDoorTex },
}; };
void DoorKiller_Init(Actor* thisx, GlobalContext* globalCtx) { void DoorKiller_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
f32 randF; f32 randF;
DoorKiller* this = THIS; DoorKiller* this = THIS;
s32 bankIndex; s32 bankIndex;
@ -106,7 +106,7 @@ void DoorKiller_Init(Actor* thisx, GlobalContext* globalCtx) {
// Look in the object bank for one of the four objects containing door textures // Look in the object bank for one of the four objects containing door textures
bankIndex = -1; bankIndex = -1;
for (i = 0; bankIndex < 0; i++) { for (i = 0; bankIndex < 0; i++) {
bankIndex = Object_GetIndex(&globalCtx2->objectCtx, sDoorTextures[i].objectId); bankIndex = Object_GetIndex(&globalCtx->objectCtx, sDoorTextures[i].objectId);
this->textureEntryIndex = i; this->textureEntryIndex = i;
} }
osSyncPrintf("bank_ID = %d\n", bankIndex); osSyncPrintf("bank_ID = %d\n", bankIndex);
@ -125,19 +125,18 @@ void DoorKiller_Init(Actor* thisx, GlobalContext* globalCtx) {
case DOOR_KILLER_DOOR: case DOOR_KILLER_DOOR:
// `jointTable` is used for both the `jointTable` and `morphTable` args here. Because this actor doesn't // `jointTable` is used for both the `jointTable` and `morphTable` args here. Because this actor doesn't
// play any animations it does not cause problems, but it would need to be changed otherwise. // play any animations it does not cause problems, but it would need to be changed otherwise.
SkelAnime_InitFlex(globalCtx2, &this->skelAnime, &D_06001BC8, NULL, this->jointTable, this->jointTable, 9); SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06001BC8, NULL, this->jointTable, this->jointTable, 9);
this->actionFunc = DoorKiller_SetProperties; this->actionFunc = DoorKiller_SetProperties;
DoorKiller_SetProperties(this, globalCtx2); DoorKiller_SetProperties(this, globalCtx);
// manually set the overall rotation of the door // manually set the overall rotation of the door
this->jointTable[1].x = this->jointTable[1].z = 0x4000; this->jointTable[1].x = this->jointTable[1].z = 0x4000;
// Set a cylinder collider to detect link attacks and larger sphere collider to detect explosions // Set a cylinder collider to detect link attacks and larger sphere collider to detect explosions
Collider_InitCylinder(globalCtx2, &this->colliderCylinder); Collider_InitCylinder(globalCtx, &this->colliderCylinder);
Collider_SetCylinder(globalCtx2, &this->colliderCylinder, &this->actor, &sCylinderInit); Collider_SetCylinder(globalCtx, &this->colliderCylinder, &this->actor, &sCylinderInit);
Collider_InitJntSph(globalCtx2, &this->colliderJntSph); Collider_InitJntSph(globalCtx, &this->colliderJntSph);
Collider_SetJntSph(globalCtx2, &this->colliderJntSph, &this->actor, &sJntSphInit, Collider_SetJntSph(globalCtx, &this->colliderJntSph, &this->actor, &sJntSphInit, this->colliderJntSphItems);
this->colliderJntSphItems);
this->colliderJntSph.elements[0].dim.worldSphere.radius = 80; this->colliderJntSph.elements[0].dim.worldSphere.radius = 80;
this->colliderJntSph.elements[0].dim.worldSphere.center.x = (s16)this->actor.world.pos.x; this->colliderJntSph.elements[0].dim.worldSphere.center.x = (s16)this->actor.world.pos.x;
this->colliderJntSph.elements[0].dim.worldSphere.center.y = (s16)this->actor.world.pos.y + 50; this->colliderJntSph.elements[0].dim.worldSphere.center.y = (s16)this->actor.world.pos.y + 50;
@ -145,7 +144,7 @@ void DoorKiller_Init(Actor* thisx, GlobalContext* globalCtx) {
// If tied to a switch flag and that switch flag is already set, kill the actor. // If tied to a switch flag and that switch flag is already set, kill the actor.
if ((((this->actor.params >> 8) & 0x3F) != 0x3F) && if ((((this->actor.params >> 8) & 0x3F) != 0x3F) &&
Flags_GetSwitch(globalCtx2, ((this->actor.params >> 8) & 0x3F))) { Flags_GetSwitch(globalCtx, ((this->actor.params >> 8) & 0x3F))) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} }
break; break;
@ -154,7 +153,7 @@ void DoorKiller_Init(Actor* thisx, GlobalContext* globalCtx) {
case DOOR_KILLER_RUBBLE_PIECE_3: case DOOR_KILLER_RUBBLE_PIECE_3:
case DOOR_KILLER_RUBBLE_PIECE_4: case DOOR_KILLER_RUBBLE_PIECE_4:
this->actionFunc = DoorKiller_SetProperties; this->actionFunc = DoorKiller_SetProperties;
DoorKiller_SetProperties(this, globalCtx2); DoorKiller_SetProperties(this, globalCtx);
this->actor.gravity = -0.6f; this->actor.gravity = -0.6f;
this->actor.minVelocityY = -6.0f; this->actor.minVelocityY = -6.0f;

View file

@ -211,9 +211,9 @@ s32 DoorShutter_SetupDoor(DoorShutter* this, GlobalContext* globalCtx) {
return false; return false;
} }
void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) { void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx2) {
DoorShutter* this = THIS; DoorShutter* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
s32 phi_a3; s32 phi_a3;
s32 pad; s32 pad;
s32 objectIndex; s32 objectIndex;
@ -228,7 +228,7 @@ void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
ShutterSceneInfo* phi_v1; ShutterSceneInfo* phi_v1;
for (phi_v1 = &sSceneInfo[0], i = 0; i < ARRAY_COUNT(sSceneInfo) - 1; i++, phi_v1++) { for (phi_v1 = &sSceneInfo[0], i = 0; i < ARRAY_COUNT(sSceneInfo) - 1; i++, phi_v1++) {
if (globalCtx2->sceneNum == phi_v1->sceneNum) { if (globalCtx->sceneNum == phi_v1->sceneNum) {
break; break;
} }
} }
@ -237,7 +237,7 @@ void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
BossDoorInfo* phi_v1_2; BossDoorInfo* phi_v1_2;
for (phi_v1_2 = &D_80998288[0], i = 0; i < ARRAY_COUNT(D_80998288) - 1; i++, phi_v1_2++) { for (phi_v1_2 = &D_80998288[0], i = 0; i < ARRAY_COUNT(D_80998288) - 1; i++, phi_v1_2++) {
if (globalCtx2->sceneNum == phi_v1_2->dungeonScene || globalCtx2->sceneNum == phi_v1_2->bossScene) { if (globalCtx->sceneNum == phi_v1_2->dungeonScene || globalCtx->sceneNum == phi_v1_2->bossScene) {
break; break;
} }
} }
@ -245,8 +245,7 @@ void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
} else { } else {
this->dyna.actor.room = -1; this->dyna.actor.room = -1;
} }
if (this->requiredObjBankIndex = objectIndex = if (this->requiredObjBankIndex = objectIndex = Object_GetIndex(&globalCtx->objectCtx, sObjectInfo[phi_a3].objectId),
Object_GetIndex(&globalCtx2->objectCtx, sObjectInfo[phi_a3].objectId),
(s8)objectIndex < 0) { (s8)objectIndex < 0) {
Actor_Kill(&this->dyna.actor); Actor_Kill(&this->dyna.actor);
return; return;
@ -254,7 +253,7 @@ void DoorShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
DoorShutter_SetupAction(this, DoorShutter_SetupType); DoorShutter_SetupAction(this, DoorShutter_SetupType);
this->unk_16B = phi_a3; this->unk_16B = phi_a3;
if (this->doorType == SHUTTER_KEY_LOCKED || this->doorType == SHUTTER_BOSS) { if (this->doorType == SHUTTER_KEY_LOCKED || this->doorType == SHUTTER_BOSS) {
if (!Flags_GetSwitch(globalCtx2, this->dyna.actor.params & 0x3F)) { if (!Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
this->unk_16E = 10; this->unk_16E = 10;
} }
Actor_SetFocus(&this->dyna.actor, 60.0f); Actor_SetFocus(&this->dyna.actor, 60.0f);

View file

@ -308,9 +308,9 @@ void EffDust_DrawFunc_8099E4F4(Actor* thisx, GlobalContext* globalCtx2) {
CLOSE_DISPS(gfxCtx, "../z_eff_dust.c", 458); CLOSE_DISPS(gfxCtx, "../z_eff_dust.c", 458);
} }
void EffDust_DrawFunc_8099E784(Actor* thisx, GlobalContext* globalCtx) { void EffDust_DrawFunc_8099E784(Actor* thisx, GlobalContext* globalCtx2) {
EffDust* this = THIS; EffDust* this = THIS;
GlobalContext* globalCtx2; GlobalContext* globalCtx = globalCtx2;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
f32* distanceTraveled; f32* distanceTraveled;
Vec3f* initialPositions; Vec3f* initialPositions;
@ -320,8 +320,6 @@ void EffDust_DrawFunc_8099E784(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(gfxCtx, "../z_eff_dust.c", 472); OPEN_DISPS(gfxCtx, "../z_eff_dust.c", 472);
globalCtx2 = globalCtx;
func_80093D18(gfxCtx); func_80093D18(gfxCtx);
gDPPipeSync(POLY_XLU_DISP++); gDPPipeSync(POLY_XLU_DISP++);
@ -355,7 +353,7 @@ void EffDust_DrawFunc_8099E784(Actor* thisx, GlobalContext* globalCtx) {
Matrix_Scale(*distanceTraveled * this->scalingFactor, *distanceTraveled * this->scalingFactor, Matrix_Scale(*distanceTraveled * this->scalingFactor, *distanceTraveled * this->scalingFactor,
*distanceTraveled * this->scalingFactor, MTXMODE_APPLY); *distanceTraveled * this->scalingFactor, MTXMODE_APPLY);
func_800D1FD4(&globalCtx2->mf_11DA0); func_800D1FD4(&globalCtx->mf_11DA0);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_eff_dust.c", 506), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_eff_dust.c", 506),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

View file

@ -158,7 +158,7 @@ static DamageTable sDamageTable = {
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 19, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x13, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -4000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -4000, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 5300, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 5300, ICHAIN_STOP),
}; };
@ -936,7 +936,7 @@ void EnAm_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec
} }
} }
Vec3f sIcePosOffsets[] = { static Vec3f sIcePosOffsets[] = {
{ 20.0f, 40.0f, 0.0f }, { 10.0f, 60.0f, 10.0f }, { -10.0f, 60.0f, 10.0f }, { -20.0f, 40.0f, 0.0f }, { 20.0f, 40.0f, 0.0f }, { 10.0f, 60.0f, 10.0f }, { -10.0f, 60.0f, 10.0f }, { -20.0f, 40.0f, 0.0f },
{ 10.0f, 60.0f, -10.0f }, { -10.0f, 60.0f, -10.0f }, { 0.0f, 40.0f, -20.0f }, { 10.0f, 20.0f, 10.0f }, { 10.0f, 60.0f, -10.0f }, { -10.0f, 60.0f, -10.0f }, { 0.0f, 40.0f, -20.0f }, { 10.0f, 20.0f, 10.0f },
{ 10.0f, 20.0f, -10.0f }, { 0.0f, 40.0f, 20.0f }, { -10.0f, 20.0f, 10.0f }, { -10.0f, 20.0f, -10.0f }, { 10.0f, 20.0f, -10.0f }, { 0.0f, 40.0f, 20.0f }, { -10.0f, 20.0f, 10.0f }, { -10.0f, 20.0f, -10.0f },

View file

@ -81,7 +81,7 @@ void EnAni_Init(Actor* thisx, GlobalContext* globalCtx) {
Collider_InitCylinder(globalCtx, &this->collider); Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.colChkInfo.mass = MASS_IMMOVABLE;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
EnAni_SetupAction(this, func_809B064C); EnAni_SetupAction(this, func_809B064C);
} else { } else {
EnAni_SetupAction(this, func_809B07F8); EnAni_SetupAction(this, func_809B07F8);
@ -120,15 +120,15 @@ void func_809B0524(EnAni* this, GlobalContext* globalCtx) {
void func_809B0558(EnAni* this, GlobalContext* globalCtx) { void func_809B0558(EnAni* this, GlobalContext* globalCtx) {
if (Actor_HasParent(&this->actor, globalCtx)) { if (Actor_HasParent(&this->actor, globalCtx)) {
this->actor.parent = NULL; this->actor.parent = NULL;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
EnAni_SetupAction(this, func_809B04F0); EnAni_SetupAction(this, func_809B04F0);
} else { } else {
EnAni_SetupAction(this, func_809B0524); EnAni_SetupAction(this, func_809B0524);
} }
gSaveContext.itemGetInf[1] |= 0x20; gSaveContext.itemGetInf[1] |= 0x20;
return; } else {
func_8002F434(&this->actor, globalCtx, GI_HEART_PIECE, 10000.0f, 200.0f);
} }
func_8002F434(&this->actor, globalCtx, GI_HEART_PIECE, 10000.0f, 200.0f);
} }
void func_809B05F0(EnAni* this, GlobalContext* globalCtx) { void func_809B05F0(EnAni* this, GlobalContext* globalCtx) {
@ -149,15 +149,14 @@ void func_809B064C(EnAni* this, GlobalContext* globalCtx) {
if (!textId) {} if (!textId) {}
if (textId2 == 0) { if (textId2 == 0) {
textId = gSaveContext.nightFlag ? 0x5051 : 0x5050; // "...all I can do is look at the stars." textId = !IS_DAY ? 0x5051 : 0x5050;
// "...all I can do is look at Death Mountain."
} }
yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
if (func_8002F194(&this->actor, globalCtx)) { if (func_8002F194(&this->actor, globalCtx)) {
if (this->actor.textId == 0x5056) { // "To get a good view..." if (this->actor.textId == 0x5056) {
EnAni_SetupAction(this, func_809B04F0); EnAni_SetupAction(this, func_809B04F0);
} else if (this->actor.textId == 0x5055) { // "...I'll give you this as a memento." } else if (this->actor.textId == 0x5055) {
EnAni_SetupAction(this, func_809B05F0); EnAni_SetupAction(this, func_809B05F0);
} else { } else {
EnAni_SetupAction(this, func_809B04F0); EnAni_SetupAction(this, func_809B04F0);
@ -165,9 +164,9 @@ void func_809B064C(EnAni* this, GlobalContext* globalCtx) {
} else if (yawDiff >= -0x36AF && yawDiff < 0 && this->actor.xzDistToPlayer < 150.0f && } else if (yawDiff >= -0x36AF && yawDiff < 0 && this->actor.xzDistToPlayer < 150.0f &&
-80.0f < this->actor.yDistToPlayer) { -80.0f < this->actor.yDistToPlayer) {
if (gSaveContext.itemGetInf[1] & 0x20) { if (gSaveContext.itemGetInf[1] & 0x20) {
EnAni_SetText(this, globalCtx, 0x5056); // "To get a good view..." EnAni_SetText(this, globalCtx, 0x5056);
} else { } else {
EnAni_SetText(this, globalCtx, 0x5055); // "...I'll give you this as a memento." EnAni_SetText(this, globalCtx, 0x5055);
} }
} else if (yawDiff >= -0x3E7 && yawDiff < 0x36B0 && this->actor.xzDistToPlayer < 350.0f) { } else if (yawDiff >= -0x3E7 && yawDiff < 0x36B0 && this->actor.xzDistToPlayer < 350.0f) {
EnAni_SetText(this, globalCtx, textId); EnAni_SetText(this, globalCtx, textId);
@ -181,9 +180,9 @@ void func_809B07F8(EnAni* this, GlobalContext* globalCtx) {
yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
if (func_8002F194(&this->actor, globalCtx)) { if (func_8002F194(&this->actor, globalCtx)) {
if (this->actor.textId == 0x5056) { // "To get a good view..." if (this->actor.textId == 0x5056) {
EnAni_SetupAction(this, func_809B0524); EnAni_SetupAction(this, func_809B0524);
} else if (this->actor.textId == 0x5055) { // "...I'll give you this as a memento." } else if (this->actor.textId == 0x5055) {
EnAni_SetupAction(this, func_809B05F0); EnAni_SetupAction(this, func_809B05F0);
} else { } else {
EnAni_SetupAction(this, func_809B0524); EnAni_SetupAction(this, func_809B0524);
@ -191,16 +190,15 @@ void func_809B07F8(EnAni* this, GlobalContext* globalCtx) {
} else if (yawDiff > -0x36B0 && yawDiff < 0 && this->actor.xzDistToPlayer < 150.0f && } else if (yawDiff > -0x36B0 && yawDiff < 0 && this->actor.xzDistToPlayer < 150.0f &&
-80.0f < this->actor.yDistToPlayer) { -80.0f < this->actor.yDistToPlayer) {
if (gSaveContext.itemGetInf[1] & 0x20) { if (gSaveContext.itemGetInf[1] & 0x20) {
EnAni_SetText(this, globalCtx, 0x5056); // "To get a good view..." EnAni_SetText(this, globalCtx, 0x5056);
} else { } else {
EnAni_SetText(this, globalCtx, 0x5055); // "...I'll give you this as a memento." EnAni_SetText(this, globalCtx, 0x5055);
} }
} else if (yawDiff > -0x3E8 && yawDiff < 0x36B0 && this->actor.xzDistToPlayer < 350.0f) { } else if (yawDiff > -0x3E8 && yawDiff < 0x36B0 && this->actor.xzDistToPlayer < 350.0f) {
if (!(gSaveContext.eventChkInf[2] & 0x8000)) { if (!(gSaveContext.eventChkInf[2] & 0x8000)) {
textId = 0x5052; // "...Something is happening on Death Mountain!" textId = 0x5052;
} else { } else {
textId = (gSaveContext.itemGetInf[1] & 0x20) ? 0x5054 : 0x5053; // "I don't feel like getting down..." textId = (gSaveContext.itemGetInf[1] & 0x20) ? 0x5054 : 0x5053;
// "...Death Mountain is back to normal!"
} }
EnAni_SetText(this, globalCtx, textId); EnAni_SetText(this, globalCtx, textId);
} }

View file

@ -197,7 +197,7 @@ void EnAnubice_FindFlameCircles(EnAnubice* this, GlobalContext* globalCtx) {
void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx) { void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx) {
f32 lastFrame = Animation_GetLastFrame(&gAnubiceIdleAnim); f32 lastFrame = Animation_GetLastFrame(&gAnubiceIdleAnim);
Animation_Change(&this->skelAnime, &gAnubiceIdleAnim, 1.0f, 0.0f, (s16)lastFrame, 0, -10.0f); Animation_Change(&this->skelAnime, &gAnubiceIdleAnim, 1.0f, 0.0f, (s16)lastFrame, ANIMMODE_LOOP, -10.0f);
this->actionFunc = EnAnubice_Idle; this->actionFunc = EnAnubice_Idle;
this->actor.velocity.x = this->actor.velocity.z = this->actor.gravity = 0.0f; this->actor.velocity.x = this->actor.velocity.z = this->actor.gravity = 0.0f;
@ -262,7 +262,7 @@ void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx) {
f32 lastFrame = Animation_GetLastFrame(&gAnubiceAttackingAnim); f32 lastFrame = Animation_GetLastFrame(&gAnubiceAttackingAnim);
this->animLastFrame = lastFrame; this->animLastFrame = lastFrame;
Animation_Change(&this->skelAnime, &gAnubiceAttackingAnim, 1.0f, 0.0f, lastFrame, 2, -10.0f); Animation_Change(&this->skelAnime, &gAnubiceAttackingAnim, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -10.0f);
this->actionFunc = EnAnubis_ShootFireball; this->actionFunc = EnAnubis_ShootFireball;
this->actor.velocity.x = this->actor.velocity.z = 0.0f; this->actor.velocity.x = this->actor.velocity.z = 0.0f;
} }
@ -292,7 +292,7 @@ void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) {
f32 lastFrame = Animation_GetLastFrame(&gAnubiceFallDownAnim); f32 lastFrame = Animation_GetLastFrame(&gAnubiceFallDownAnim);
this->animLastFrame = lastFrame; this->animLastFrame = lastFrame;
Animation_Change(&this->skelAnime, &gAnubiceFallDownAnim, 1.0f, 0.0f, lastFrame, 2, -20.0f); Animation_Change(&this->skelAnime, &gAnubiceFallDownAnim, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -20.0f);
this->unk_256 = false; this->unk_256 = false;
this->unk_258 = 0; this->unk_258 = 0;

View file

@ -86,7 +86,7 @@ void EnBa_SetupAction(EnBa* this, EnBaActionFunc actionFunc) {
static Vec3f D_809B80E4 = { 0.01f, 0.01f, 0.01f }; static Vec3f D_809B80E4 = { 0.01f, 0.01f, 0.01f };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 21, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x15, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 2500, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneDownward, 2500, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 0, ICHAIN_STOP),

View file

@ -109,7 +109,7 @@ static DamageTable sDamageTable = {
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 23, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x17, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP),
}; };

View file

@ -48,29 +48,29 @@ const ActorInit En_Bom_Bowl_Man_InitVars = {
(ActorFunc)EnBomBowlMan_Draw, (ActorFunc)EnBomBowlMan_Draw,
}; };
void EnBomBowlMan_Init(Actor* thisx, GlobalContext* globalCtx) { void EnBomBowlMan_Init(Actor* thisx, GlobalContext* globalCtx2) {
static f32 cuccoColliderDims[][3] = { { 16.0f, 46.0f, 0.0f }, { 36.0f, 56.0f, 0.0f } }; static f32 cuccoColliderDims[][3] = { { 16.0f, 46.0f, 0.0f }, { 36.0f, 56.0f, 0.0f } };
static Vec3f cuccoSpawnPos[] = { { 60, -60, -430 }, { 0, -120, -620 } }; static Vec3f cuccoSpawnPos[] = { { 60, -60, -430 }, { 0, -120, -620 } };
static f32 cuccoScales[] = { 0.01f, 0.03f }; static f32 cuccoScales[] = { 0.01f, 0.03f };
EnBomBowlMan* this = THIS; EnBomBowlMan* this = THIS;
EnSyatekiNiw* cucco; EnSyatekiNiw* cucco;
s32 i; s32 i;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(globalCtx2, &this->skelAnime, &gChuGirlSkel, &gChuGirlNoddingOffAnim, this->jointTable, SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gChuGirlSkel, &gChuGirlNoddingOffAnim, this->jointTable,
this->morphTable, 11); this->morphTable, 11);
// ☆ Man, my shoulders hurt~ ☆ // ☆ Man, my shoulders hurt~ ☆
osSyncPrintf(VT_FGCOL(GREEN) "☆ もー 肩こっちゃうよねぇ〜 \t\t\n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) "☆ もー 肩こっちゃうよねぇ〜 \t\t\n" VT_RST);
// ☆ Isn't there some sort of job that will pay better and be more relaxing? ☆ %d // ☆ Isn't there some sort of job that will pay better and be more relaxing? ☆ %d
osSyncPrintf(VT_FGCOL(GREEN) "☆ もっとラクしてもうかるバイトないかしら? ☆ %d\n" VT_RST, osSyncPrintf(VT_FGCOL(GREEN) "☆ もっとラクしてもうかるバイトないかしら? ☆ %d\n" VT_RST,
globalCtx2->bombchuBowlingStatus); globalCtx->bombchuBowlingStatus);
this->posCopy = this->actor.world.pos; this->posCopy = this->actor.world.pos;
this->actor.shape.yOffset = -60.0f; this->actor.shape.yOffset = -60.0f;
Actor_SetScale(&this->actor, 0.013f); Actor_SetScale(&this->actor, 0.013f);
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
cucco = (EnSyatekiNiw*)Actor_Spawn(&globalCtx2->actorCtx, globalCtx2, ACTOR_EN_SYATEKI_NIW, cuccoSpawnPos[i].x, cucco = (EnSyatekiNiw*)Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_SYATEKI_NIW, cuccoSpawnPos[i].x,
cuccoSpawnPos[i].y, cuccoSpawnPos[i].z, 0, 0, 0, 1); cuccoSpawnPos[i].y, cuccoSpawnPos[i].z, 0, 0, 0, 1);
if (cucco != NULL) { if (cucco != NULL) {

View file

@ -90,8 +90,8 @@ void EnBox_ClipToGround(EnBox* this, GlobalContext* globalCtx) {
} }
} }
void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) { void EnBox_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
EnBox* this = THIS; EnBox* this = THIS;
AnimationHeader* anim; AnimationHeader* anim;
CollisionHeader* colHeader; CollisionHeader* colHeader;
@ -106,8 +106,8 @@ void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) {
DynaPolyActor_Init(&this->dyna, DPM_UNK); DynaPolyActor_Init(&this->dyna, DPM_UNK);
CollisionHeader_GetVirtual(&gTreasureChestCol, &colHeader); CollisionHeader_GetVirtual(&gTreasureChestCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx2, &globalCtx2->colCtx.dyna, &this->dyna.actor, colHeader); this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
func_8003ECA8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); func_8003ECA8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
this->movementFlags = 0; this->movementFlags = 0;
this->type = thisx->params >> 12 & 0xF; this->type = thisx->params >> 12 & 0xF;
@ -117,17 +117,17 @@ void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) {
this->switchFlag = this->dyna.actor.world.rot.z; this->switchFlag = this->dyna.actor.world.rot.z;
this->dyna.actor.minVelocityY = -50.0f; this->dyna.actor.minVelocityY = -50.0f;
if (globalCtx2) {} // helps the compiler store globalCtx2 into s1 if (globalCtx) {} // helps the compiler store globalCtx2 into s1
if (Flags_GetTreasure(globalCtx2, this->dyna.actor.params & 0x1F)) { if (Flags_GetTreasure(globalCtx, this->dyna.actor.params & 0x1F)) {
this->alpha = 255; this->alpha = 255;
this->iceSmokeTimer = 100; this->iceSmokeTimer = 100;
EnBox_SetupAction(this, EnBox_Open); EnBox_SetupAction(this, EnBox_Open);
this->movementFlags |= ENBOX_MOVE_STICK_TO_GROUND; this->movementFlags |= ENBOX_MOVE_STICK_TO_GROUND;
animFrameStart = endFrame; animFrameStart = endFrame;
} else if ((this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_BIG || this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL) && } else if ((this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_BIG || this->type == ENBOX_TYPE_SWITCH_FLAG_FALL_SMALL) &&
!Flags_GetSwitch(globalCtx2, this->switchFlag)) { !Flags_GetSwitch(globalCtx, this->switchFlag)) {
func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
if (Rand_ZeroOne() < 0.5f) { if (Rand_ZeroOne() < 0.5f) {
this->movementFlags |= ENBOX_MOVE_FALL_ANGLE_SIDE; this->movementFlags |= ENBOX_MOVE_FALL_ANGLE_SIDE;
} }
@ -137,9 +137,9 @@ void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) {
this->movementFlags |= ENBOX_MOVE_IMMOBILE; this->movementFlags |= ENBOX_MOVE_IMMOBILE;
this->dyna.actor.flags |= 0x10; this->dyna.actor.flags |= 0x10;
} else if ((this->type == ENBOX_TYPE_ROOM_CLEAR_BIG || this->type == ENBOX_TYPE_ROOM_CLEAR_SMALL) && } else if ((this->type == ENBOX_TYPE_ROOM_CLEAR_BIG || this->type == ENBOX_TYPE_ROOM_CLEAR_SMALL) &&
!Flags_GetClear(globalCtx2, this->dyna.actor.room)) { !Flags_GetClear(globalCtx, this->dyna.actor.room)) {
EnBox_SetupAction(this, EnBox_AppearOnRoomClear); EnBox_SetupAction(this, EnBox_AppearOnRoomClear);
func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
this->movementFlags |= ENBOX_MOVE_IMMOBILE; this->movementFlags |= ENBOX_MOVE_IMMOBILE;
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 50.0f; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 50.0f;
this->alpha = 0; this->alpha = 0;
@ -147,14 +147,14 @@ void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) {
} else if (this->type == ENBOX_TYPE_9 || this->type == ENBOX_TYPE_10) { } else if (this->type == ENBOX_TYPE_9 || this->type == ENBOX_TYPE_10) {
EnBox_SetupAction(this, func_809C9700); EnBox_SetupAction(this, func_809C9700);
this->dyna.actor.flags |= 0x2000000; this->dyna.actor.flags |= 0x2000000;
func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
this->movementFlags |= ENBOX_MOVE_IMMOBILE; this->movementFlags |= ENBOX_MOVE_IMMOBILE;
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 50.0f; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 50.0f;
this->alpha = 0; this->alpha = 0;
this->dyna.actor.flags |= 0x10; this->dyna.actor.flags |= 0x10;
} else if (this->type == ENBOX_TYPE_SWITCH_FLAG_BIG && !Flags_GetSwitch(globalCtx2, this->switchFlag)) { } else if (this->type == ENBOX_TYPE_SWITCH_FLAG_BIG && !Flags_GetSwitch(globalCtx, this->switchFlag)) {
EnBox_SetupAction(this, EnBox_AppearOnSwitchFlag); EnBox_SetupAction(this, EnBox_AppearOnSwitchFlag);
func_8003EBF8(globalCtx2, &globalCtx2->colCtx.dyna, this->dyna.bgId); func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
this->movementFlags |= ENBOX_MOVE_IMMOBILE; this->movementFlags |= ENBOX_MOVE_IMMOBILE;
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 50.0f; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y - 50.0f;
this->alpha = 0; this->alpha = 0;
@ -171,7 +171,7 @@ void EnBox_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.actor.world.rot.y += 0x8000; this->dyna.actor.world.rot.y += 0x8000;
this->dyna.actor.home.rot.z = this->dyna.actor.world.rot.z = this->dyna.actor.shape.rot.z = 0; this->dyna.actor.home.rot.z = this->dyna.actor.world.rot.z = this->dyna.actor.shape.rot.z = 0;
SkelAnime_Init(globalCtx2, &this->skelanime, &gTreasureChestSkel, anim, this->jointTable, this->morphTable, 5); SkelAnime_Init(globalCtx, &this->skelanime, &gTreasureChestSkel, anim, this->jointTable, this->morphTable, 5);
Animation_Change(&this->skelanime, anim, 1.5f, animFrameStart, endFrame, ANIMMODE_ONCE, 0.0f); Animation_Change(&this->skelanime, anim, 1.5f, animFrameStart, endFrame, ANIMMODE_ONCE, 0.0f);
switch (this->type) { switch (this->type) {

View file

@ -119,7 +119,7 @@ void EnCow_Init(Actor* thisx, GlobalContext* globalCtx) {
func_809DEE9C(this); func_809DEE9C(this);
this->actionFunc = func_809DF96C; this->actionFunc = func_809DF96C;
if (globalCtx->sceneNum == SCENE_LINK_HOME) { if (globalCtx->sceneNum == SCENE_LINK_HOME) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }

View file

@ -100,7 +100,7 @@ static u32 sDeathCount = 0;
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 88, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x58, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -200, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -200, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_STOP),
}; };

View file

@ -119,7 +119,7 @@ void EnCs_Init(Actor* thisx, GlobalContext* globalCtx) {
EnCs* this = THIS; EnCs* this = THIS;
s32 pad; s32 pad;
if (gSaveContext.nightFlag != 0) { if (!IS_DAY) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }

View file

@ -61,7 +61,40 @@ static ColliderCylinderInit sCylinderInit = {
static CollisionCheckInfoInit2 sColChkInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; static CollisionCheckInfoInit2 sColChkInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
static DamageTable sDamageTable = { 0 }; static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, 0x0),
/* Deku stick */ DMG_ENTRY(0, 0x0),
/* Slingshot */ DMG_ENTRY(0, 0x0),
/* Explosive */ DMG_ENTRY(0, 0x0),
/* Boomerang */ DMG_ENTRY(0, 0x0),
/* Normal arrow */ DMG_ENTRY(0, 0x0),
/* Hammer swing */ DMG_ENTRY(0, 0x0),
/* Hookshot */ DMG_ENTRY(0, 0x0),
/* Kokiri sword */ DMG_ENTRY(0, 0x0),
/* Master sword */ DMG_ENTRY(0, 0x0),
/* Giant's Knife */ DMG_ENTRY(0, 0x0),
/* Fire arrow */ DMG_ENTRY(0, 0x0),
/* Ice arrow */ DMG_ENTRY(0, 0x0),
/* Light arrow */ DMG_ENTRY(0, 0x0),
/* Unk arrow 1 */ DMG_ENTRY(0, 0x0),
/* Unk arrow 2 */ DMG_ENTRY(0, 0x0),
/* Unk arrow 3 */ DMG_ENTRY(0, 0x0),
/* Fire magic */ DMG_ENTRY(0, 0x0),
/* Ice magic */ DMG_ENTRY(0, 0x0),
/* Light magic */ DMG_ENTRY(0, 0x0),
/* Shield */ DMG_ENTRY(0, 0x0),
/* Mirror Ray */ DMG_ENTRY(0, 0x0),
/* Kokiri spin */ DMG_ENTRY(0, 0x0),
/* Giant spin */ DMG_ENTRY(0, 0x0),
/* Master spin */ DMG_ENTRY(0, 0x0),
/* Kokiri jump */ DMG_ENTRY(0, 0x0),
/* Giant jump */ DMG_ENTRY(0, 0x0),
/* Master jump */ DMG_ENTRY(0, 0x0),
/* Unknown 1 */ DMG_ENTRY(0, 0x0),
/* Unblockable */ DMG_ENTRY(0, 0x0),
/* Hammer jump */ DMG_ENTRY(0, 0x0),
/* Unknown 2 */ DMG_ENTRY(0, 0x0),
};
static struct_D_80AA1678 sAnimations[] = { static struct_D_80AA1678 sAnimations[] = {
{ 0x06001AB0, 1.0f, 2, -7.0f }, { 0x06007DE0, 1.0f, 0, -7.0f }, { 0x0600885C, 1.0f, 0, -7.0f }, { 0x06001AB0, 1.0f, 2, -7.0f }, { 0x06007DE0, 1.0f, 0, -7.0f }, { 0x0600885C, 1.0f, 0, -7.0f },
@ -92,13 +125,13 @@ void EnDaikuKakariko_Init(Actor* thisx, GlobalContext* globalCtx) {
if (LINK_AGE_IN_YEARS == YEARS_CHILD) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
switch (globalCtx->sceneNum) { switch (globalCtx->sceneNum) {
case SCENE_SPOT01: case SCENE_SPOT01:
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
this->flags |= 1; this->flags |= 1;
this->flags |= initFlags[this->actor.params & 3]; this->flags |= initFlags[this->actor.params & 3];
} }
break; break;
case SCENE_KAKARIKO: case SCENE_KAKARIKO:
if (gSaveContext.nightFlag == 1) { if (IS_NIGHT) {
this->flags |= 2; this->flags |= 2;
} }
break; break;
@ -112,7 +145,7 @@ void EnDaikuKakariko_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} }
if (gSaveContext.nightFlag == 1) { if (IS_NIGHT) {
this->flags |= 8; this->flags |= 8;
} }

View file

@ -244,7 +244,7 @@ void EnDekubaba_Init(Actor* thisx, GlobalContext* globalCtx) {
// This and its counterpart below mean that a Deku Stick jumpslash will not trigger the Deku Stick drop route. // This and its counterpart below mean that a Deku Stick jumpslash will not trigger the Deku Stick drop route.
// (Of course they reckoned without each age being able to use the other's items, so Stick and Master Sword // (Of course they reckoned without each age being able to use the other's items, so Stick and Master Sword
// jumpslash can give the Stick drop as adult, and neither will as child.) // jumpslash can give the Stick drop as adult, and neither will as child.)
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
sBigDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE); // DMG_JUMP_MASTER sBigDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE); // DMG_JUMP_MASTER
} }
@ -259,7 +259,7 @@ void EnDekubaba_Init(Actor* thisx, GlobalContext* globalCtx) {
this->collider.elements[i].dim.worldSphere.radius = this->collider.elements[i].dim.modelSphere.radius; this->collider.elements[i].dim.worldSphere.radius = this->collider.elements[i].dim.modelSphere.radius;
} }
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
sDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE); // DMG_JUMP_MASTER sDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE); // DMG_JUMP_MASTER
} }

View file

@ -179,7 +179,7 @@ void EnDekunuts_SetupBurrow(EnDekunuts* this) {
void EnDekunuts_SetupBeginRun(EnDekunuts* this) { void EnDekunuts_SetupBeginRun(EnDekunuts* this) {
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuNutsUnburrowAnim, -3.0f); Animation_MorphToPlayOnce(&this->skelAnime, &gDekuNutsUnburrowAnim, -3.0f);
this->collider.dim.height = 0x25; this->collider.dim.height = 37;
this->actor.colChkInfo.mass = 0x32; this->actor.colChkInfo.mass = 0x32;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_DAMAGE); Audio_PlayActorSound2(&this->actor, NA_SE_EN_NUTS_DAMAGE);
this->collider.base.acFlags &= ~AC_ON; this->collider.base.acFlags &= ~AC_ON;

View file

@ -138,7 +138,7 @@ static DamageTable D_809EC620 = {
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 47, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x2F, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 2000, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -3500, ICHAIN_STOP), ICHAIN_F32_DIV1000(gravity, -3500, ICHAIN_STOP),

View file

@ -205,7 +205,7 @@ void EnDha_Wait(EnDha* this, GlobalContext* globalCtx) {
playerPos.x += Math_SinS(player->actor.shape.rot.y) * -5.0f; playerPos.x += Math_SinS(player->actor.shape.rot.y) * -5.0f;
playerPos.z += Math_CosS(player->actor.shape.rot.y) * -5.0f; playerPos.z += Math_CosS(player->actor.shape.rot.y) * -5.0f;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
playerPos.y += 38.0f; playerPos.y += 38.0f;
} else { } else {
playerPos.y += 56.0f; playerPos.y += 56.0f;

View file

@ -177,7 +177,7 @@ s32 EnDivingGame_HasMinigameFinished(EnDivingGame* this, GlobalContext* globalCt
void func_809EDCB0(EnDivingGame* this, GlobalContext* globalCtx) { void func_809EDCB0(EnDivingGame* this, GlobalContext* globalCtx) {
f32 frameCount = Animation_GetLastFrame(&gZoraIdleAnim); f32 frameCount = Animation_GetLastFrame(&gZoraIdleAnim);
Animation_Change(&this->skelAnime, &gZoraIdleAnim, 1.0f, 0.0f, (s16)frameCount, 0, -10.0f); Animation_Change(&this->skelAnime, &gZoraIdleAnim, 1.0f, 0.0f, (s16)frameCount, ANIMMODE_LOOP, -10.0f);
this->notPlayingMinigame = true; this->notPlayingMinigame = true;
this->actionFunc = EnDivingGame_Talk; this->actionFunc = EnDivingGame_Talk;
} }
@ -282,7 +282,7 @@ void func_809EE048(EnDivingGame* this, GlobalContext* globalCtx) {
void func_809EE0FC(EnDivingGame* this, GlobalContext* globalCtx) { void func_809EE0FC(EnDivingGame* this, GlobalContext* globalCtx) {
f32 frameCount = Animation_GetLastFrame(&gZoraThrowRupeesAnim); f32 frameCount = Animation_GetLastFrame(&gZoraThrowRupeesAnim);
Animation_Change(&this->skelAnime, &gZoraThrowRupeesAnim, 1.0f, 0.0f, (s16)frameCount, 2, -10.0f); Animation_Change(&this->skelAnime, &gZoraThrowRupeesAnim, 1.0f, 0.0f, (s16)frameCount, ANIMMODE_ONCE, -10.0f);
this->notPlayingMinigame = false; this->notPlayingMinigame = false;
this->actionFunc = func_809EE194; this->actionFunc = func_809EE194;
} }

View file

@ -76,48 +76,48 @@ static ColliderCylinderInitType1 sCylinderInit = {
{ 18, 32, 0, { 0, 0, 0 } }, { 18, 32, 0, { 0, 0, 0 } },
}; };
u16 D_809F040C[] = { static u16 D_809F040C[] = {
0x10A0, 0x10A1, 0x10A2, 0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF, 0x10DC, 0x10DD, 0x10A0, 0x10A1, 0x10A2, 0x10CA, 0x10CB, 0x10CC, 0x10CD, 0x10CE, 0x10CF, 0x10DC, 0x10DD,
}; };
// Debug text: sells { Deku Nuts, Deku Sticks, Piece of Heart, Deku Seeds, // Debug text: sells { Deku Nuts, Deku Sticks, Piece of Heart, Deku Seeds,
// Deku Shield, Bombs, Arrows, Red Potion, // Deku Shield, Bombs, Arrows, Red Potion,
// Green Potion, Deku Stick Upgrade, Deku Nut Upgrade } // Green Potion, Deku Stick Upgrade, Deku Nut Upgrade }
char* D_809F0424[] = { static char* D_809F0424[] = {
"デクの実売り ", "デクの棒売り ", "ハートの欠片売り ", "デクの種売り ", "デクの実売り ", "デクの棒売り ", "ハートの欠片売り ", "デクの種売り ",
"デクの盾売り ", "バクダン売り ", "矢売り ", "赤のくすり売り ", "デクの盾売り ", "バクダン売り ", "矢売り ", "赤のくすり売り ",
"緑のくすり売り ", "デクの棒持てる数を増やす", "デクの実持てる数を増やす", "緑のくすり売り ", "デクの棒持てる数を増やす", "デクの実持てる数を増やす",
}; };
DnsItemEntry D_809F0450 = { 20, 5, GI_NUTS_5_2, func_809EF5A4, func_809EFA28 }; static DnsItemEntry D_809F0450 = { 20, 5, GI_NUTS_5_2, func_809EF5A4, func_809EFA28 };
DnsItemEntry D_809F0460 = { 15, 1, GI_STICKS_1, func_809EF658, func_809EF9F8 }; static DnsItemEntry D_809F0460 = { 15, 1, GI_STICKS_1, func_809EF658, func_809EF9F8 };
DnsItemEntry D_809F0470 = { 10, 1, GI_HEART_PIECE, func_809EF70C, func_809EFA58 }; static DnsItemEntry D_809F0470 = { 10, 1, GI_HEART_PIECE, func_809EF70C, func_809EFA58 };
DnsItemEntry D_809F0480 = { 40, 30, GI_SEEDS_30, func_809EF73C, func_809EF9F8 }; static DnsItemEntry D_809F0480 = { 40, 30, GI_SEEDS_30, func_809EF73C, func_809EF9F8 };
DnsItemEntry D_809F0490 = { 50, 1, GI_SHIELD_DEKU, func_809EF800, func_809EF9F8 }; static DnsItemEntry D_809F0490 = { 50, 1, GI_SHIELD_DEKU, func_809EF800, func_809EF9F8 };
DnsItemEntry D_809F04A0 = { 40, 5, GI_BOMBS_5, func_809EF854, func_809EFA9C }; static DnsItemEntry D_809F04A0 = { 40, 5, GI_BOMBS_5, func_809EF854, func_809EFA9C };
DnsItemEntry D_809F04B0 = { 70, 20, GI_ARROWS_LARGE, func_809EF8F4, func_809EFACC }; static DnsItemEntry D_809F04B0 = { 70, 20, GI_ARROWS_LARGE, func_809EF8F4, func_809EFACC };
DnsItemEntry D_809F04C0 = { 40, 1, GI_POTION_RED, func_809EF9A4, func_809EF9F8 }; static DnsItemEntry D_809F04C0 = { 40, 1, GI_POTION_RED, func_809EF9A4, func_809EF9F8 };
DnsItemEntry D_809F04D0 = { 40, 1, GI_POTION_GREEN, func_809EF9A4, func_809EF9F8 }; static DnsItemEntry D_809F04D0 = { 40, 1, GI_POTION_GREEN, func_809EF9A4, func_809EF9F8 };
DnsItemEntry D_809F04E0 = { 40, 1, GI_STICK_UPGRADE_20, func_809EF70C, func_809EFAFC }; static DnsItemEntry D_809F04E0 = { 40, 1, GI_STICK_UPGRADE_20, func_809EF70C, func_809EFAFC };
DnsItemEntry D_809F04F0 = { 40, 1, GI_NUT_UPGRADE_30, func_809EF70C, func_809EFB40 }; static DnsItemEntry D_809F04F0 = { 40, 1, GI_NUT_UPGRADE_30, func_809EF70C, func_809EFB40 };
DnsItemEntry* D_809F0500[] = { static DnsItemEntry* sItemEntries[] = {
&D_809F0450, &D_809F0460, &D_809F0470, &D_809F0480, &D_809F0490, &D_809F04A0, &D_809F0450, &D_809F0460, &D_809F0470, &D_809F0480, &D_809F0490, &D_809F04A0,
&D_809F04B0, &D_809F04C0, &D_809F04D0, &D_809F04E0, &D_809F04F0, &D_809F04B0, &D_809F04C0, &D_809F04D0, &D_809F04E0, &D_809F04F0,
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 78, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x4E, ICHAIN_CONTINUE),
ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP),
}; };
@ -128,10 +128,10 @@ typedef struct {
/* 0x08 */ f32 transitionRate; /* 0x08 */ f32 transitionRate;
} DnsAnimInfo; // size = 0xC } DnsAnimInfo; // size = 0xC
DnsAnimInfo D_809F0538[] = { static DnsAnimInfo sAnimInfo[] = {
{ &gBusinessScrubNervousIdleAnim, 0x00, 0.0f }, { &gBusinessScrubNervousIdleAnim, ANIMMODE_LOOP, 0.0f },
{ &gBusinessScrubAnim_4404, 0x02, 0.0f }, { &gBusinessScrubAnim_4404, ANIMMODE_ONCE, 0.0f },
{ &gBusinessScrubNervousTransitionAnim, 0x02, 0.0f }, { &gBusinessScrubNervousTransitionAnim, ANIMMODE_ONCE, 0.0f },
}; };
void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) { void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) {
@ -165,7 +165,7 @@ void EnDns_Init(Actor* thisx, GlobalContext* globalCtx) {
this->actor.speedXZ = 0.0f; this->actor.speedXZ = 0.0f;
this->actor.velocity.y = 0.0f; this->actor.velocity.y = 0.0f;
this->actor.gravity = -1.0f; this->actor.gravity = -1.0f;
this->dnsItemEntry = D_809F0500[this->actor.params]; this->dnsItemEntry = sItemEntries[this->actor.params];
this->actionFunc = EnDns_SetupWait; this->actionFunc = EnDns_SetupWait;
} }
@ -178,10 +178,10 @@ void EnDns_Destroy(Actor* thisx, GlobalContext* globalCtx) {
void EnDns_Change(EnDns* this, u8 arg1) { void EnDns_Change(EnDns* this, u8 arg1) {
s16 frameCount; s16 frameCount;
frameCount = Animation_GetLastFrame(D_809F0538[arg1].anim); frameCount = Animation_GetLastFrame(sAnimInfo[arg1].anim);
this->unk_2BA = arg1; // Not used anywhere else? this->unk_2BA = arg1; // Not used anywhere else?
Animation_Change(&this->skelAnime, D_809F0538[arg1].anim, 1.0f, 0.0f, (f32)frameCount, D_809F0538[arg1].mode, Animation_Change(&this->skelAnime, sAnimInfo[arg1].anim, 1.0f, 0.0f, (f32)frameCount, sAnimInfo[arg1].mode,
D_809F0538[arg1].transitionRate); sAnimInfo[arg1].transitionRate);
} }
/* Item give checking functions */ /* Item give checking functions */

View file

@ -248,7 +248,7 @@ void EnDntNomal_TargetWait(EnDntNomal* this, GlobalContext* globalCtx) {
func_80078884(NA_SE_SY_TRE_BOX_APPEAR); func_80078884(NA_SE_SY_TRE_BOX_APPEAR);
// Big hit // Big hit
osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 大当り ☆☆☆☆☆ %d\n" VT_RST, this->hitCounter); osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 大当り ☆☆☆☆☆ %d\n" VT_RST, this->hitCounter);
if (LINK_IS_CHILD && !(gSaveContext.itemGetInf[1] & 0x2000)) { if (!LINK_IS_ADULT && !(gSaveContext.itemGetInf[1] & 0x2000)) {
this->hitCounter++; this->hitCounter++;
if (this->hitCounter >= 3) { if (this->hitCounter >= 3) {
OnePointCutscene_Init(globalCtx, 4140, -99, &this->actor, MAIN_CAM); OnePointCutscene_Init(globalCtx, 4140, -99, &this->actor, MAIN_CAM);

View file

@ -301,7 +301,7 @@ void EnDodongo_SpawnBombSmoke(EnDodongo* this, GlobalContext* globalCtx) {
} }
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 13, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x0D, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2800, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 2800, ICHAIN_STOP),
}; };

View file

@ -63,7 +63,7 @@ static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP), ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_STOP),
}; };
AnimationHeader* D_809FCECC[] = { &gDoor3Anim, &gDoor1Anim, &gDoor4Anim, &gDoor2Anim }; static AnimationHeader* D_809FCECC[] = { &gDoor3Anim, &gDoor1Anim, &gDoor4Anim, &gDoor2Anim };
static u8 sDoorAnimOpenFrames[] = { 25, 25, 25, 25 }; static u8 sDoorAnimOpenFrames[] = { 25, 25, 25, 25 };

View file

@ -138,7 +138,7 @@ s16 func_809FDCDC(GlobalContext* globalCtx, Actor* actor) {
} }
s32 func_809FDDB4(EnDu* this, GlobalContext* globalCtx) { s32 func_809FDDB4(EnDu* this, GlobalContext* globalCtx) {
if (globalCtx->sceneNum == SCENE_SPOT18 && gSaveContext.linkAge == 1) { if (globalCtx->sceneNum == SCENE_SPOT18 && LINK_IS_CHILD) {
return 1; return 1;
} else if (globalCtx->sceneNum == SCENE_HIDAN && !(gSaveContext.infTable[0x11] & 0x400) && LINK_IS_ADULT) { } else if (globalCtx->sceneNum == SCENE_HIDAN && !(gSaveContext.infTable[0x11] & 0x400) && LINK_IS_ADULT) {
return 1; return 1;
@ -277,7 +277,7 @@ void EnDu_Init(Actor* thisx, GlobalContext* globalCtx) {
EnDu_SetupAction(this, func_809FE890); EnDu_SetupAction(this, func_809FE890);
} else if (globalCtx->sceneNum == 4) { } else if (globalCtx->sceneNum == 4) {
EnDu_SetupAction(this, func_809FE638); EnDu_SetupAction(this, func_809FE638);
} else if (LINK_IS_CHILD) { } else if (!LINK_IS_ADULT) {
EnDu_SetupAction(this, func_809FE3C0); EnDu_SetupAction(this, func_809FE3C0);
} else { } else {
EnDu_SetupAction(this, func_809FE3B4); EnDu_SetupAction(this, func_809FE3B4);

View file

@ -107,7 +107,7 @@ static DamageTable sDamageTable = {
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 25, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x19, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 5, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 2500, ICHAIN_STOP),
}; };

View file

@ -233,7 +233,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, GlobalContext* globalCt
this->outOfRangeTimer++; this->outOfRangeTimer++;
return; return;
} }
} else if (!gSaveContext.nightFlag || (Player_GetMask(globalCtx) == PLAYER_MASK_BUNNY)) { } else if (IS_DAY || (Player_GetMask(globalCtx) == PLAYER_MASK_BUNNY)) {
this->killCount = 0; this->killCount = 0;
return; return;
} }

View file

@ -199,7 +199,7 @@ void EnEncount2_SpawnRocks(EnEncount2* this, GlobalContext* globalCtx) {
if (spawnerState == ENCOUNT2_ACTIVE_DEATH_MOUNTAIN) { if (spawnerState == ENCOUNT2_ACTIVE_DEATH_MOUNTAIN) {
this->timerBetweenRockSpawns = 4; this->timerBetweenRockSpawns = 4;
spawnedRockType = FIRE_ROCK_SPAWNED_FALLING1; spawnedRockType = FIRE_ROCK_SPAWNED_FALLING1;
if ((Rand_ZeroFloat(1.99f) < 1.0f) && (LINK_IS_CHILD)) { if ((Rand_ZeroFloat(1.99f) < 1.0f) && !LINK_IS_ADULT) {
// rock spawn pos X, Z near player // rock spawn pos X, Z near player
tempVec2X = Rand_CenteredFloat(10.0f) + player->actor.world.pos.x; tempVec2X = Rand_CenteredFloat(10.0f) + player->actor.world.pos.x;
tempVec2Z = Rand_CenteredFloat(10.0f) + player->actor.world.pos.z; tempVec2Z = Rand_CenteredFloat(10.0f) + player->actor.world.pos.z;

View file

@ -454,7 +454,6 @@ void EnFirefly_Die(EnFirefly* this, GlobalContext* globalCtx) {
void EnFirefly_DiveAttack(EnFirefly* this, GlobalContext* globalCtx) { void EnFirefly_DiveAttack(EnFirefly* this, GlobalContext* globalCtx) {
Player* player = PLAYER; Player* player = PLAYER;
Vec3f preyPos; Vec3f preyPos;
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
@ -586,6 +585,7 @@ void EnFirefly_Perch(EnFirefly* this, GlobalContext* globalCtx) {
void EnFirefly_DisturbDiveAttack(EnFirefly* this, GlobalContext* globalCtx) { void EnFirefly_DisturbDiveAttack(EnFirefly* this, GlobalContext* globalCtx) {
Player* player = PLAYER; Player* player = PLAYER;
Vec3f preyPos; Vec3f preyPos;
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if (this->timer != 0) { if (this->timer != 0) {
@ -742,8 +742,8 @@ void EnFirefly_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList
static Vec3f limbSrc = { 0.0f, 0.0f, 0.0f }; static Vec3f limbSrc = { 0.0f, 0.0f, 0.0f };
Vec3f effPos; Vec3f effPos;
Vec3f* limbDest; Vec3f* limbDest;
void* effPrimColor; Color_RGBA8* effPrimColor;
void* effEnvColor; Color_RGBA8* effEnvColor;
MtxF mtx; MtxF mtx;
s16 effScaleStep; s16 effScaleStep;
s16 effLife; s16 effLife;

View file

@ -117,13 +117,13 @@ static DamageTable sDamageTable = {
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 0x31, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x31, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 0x157C, ICHAIN_CONTINUE), ICHAIN_F32(targetArrowOffset, 5500, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP), ICHAIN_F32_DIV1000(gravity, -1000, ICHAIN_STOP),
}; };
void EnFloormas_Init(Actor* thisx, GlobalContext* globalCtx) { void EnFloormas_Init(Actor* thisx, GlobalContext* globalCtx2) {
EnFloormas* this = THIS; EnFloormas* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
s32 invisble; s32 invisble;
s32 pad; s32 pad;
@ -151,7 +151,7 @@ void EnFloormas_Init(Actor* thisx, GlobalContext* globalCtx) {
} else { } else {
// spawn first small floormaster // spawn first small floormaster
this->actor.parent = this->actor.parent =
Actor_Spawn(&globalCtx2->actorCtx, globalCtx2, ACTOR_EN_FLOORMAS, this->actor.world.pos.x, Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_FLOORMAS, this->actor.world.pos.x,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, invisble + SPAWN_SMALL); this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, invisble + SPAWN_SMALL);
if (this->actor.parent == NULL) { if (this->actor.parent == NULL) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -159,7 +159,7 @@ void EnFloormas_Init(Actor* thisx, GlobalContext* globalCtx) {
} }
// spawn 2nd small floormaster // spawn 2nd small floormaster
this->actor.child = this->actor.child =
Actor_Spawn(&globalCtx2->actorCtx, globalCtx2, ACTOR_EN_FLOORMAS, this->actor.world.pos.x, Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_FLOORMAS, this->actor.world.pos.x,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, invisble + SPAWN_SMALL); this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, invisble + SPAWN_SMALL);
if (this->actor.child == NULL) { if (this->actor.child == NULL) {
Actor_Kill(this->actor.parent); Actor_Kill(this->actor.parent);
@ -351,7 +351,7 @@ void EnFloormas_SetupGrabLink(EnFloormas* this, Player* player) {
this->actor.speedXZ = 0.0f; this->actor.speedXZ = 0.0f;
this->actor.velocity.y = 0.0f; this->actor.velocity.y = 0.0f;
EnFloormas_MakeInvulnerable(this); EnFloormas_MakeInvulnerable(this);
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
yDelta = CLAMP(-this->actor.yDistToPlayer, 20.0f, 30.0f); yDelta = CLAMP(-this->actor.yDistToPlayer, 20.0f, 30.0f);
xzDelta = -10.0f; xzDelta = -10.0f;
} else { } else {
@ -779,7 +779,7 @@ void EnFloormas_GrabLink(EnFloormas* this, GlobalContext* globalCtx) {
} }
} }
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
yDelta = CLAMP(-this->actor.yDistToPlayer, 20.0f, 30.0f); yDelta = CLAMP(-this->actor.yDistToPlayer, 20.0f, 30.0f);
xzDelta = -10.0f; xzDelta = -10.0f;
} else { } else {
@ -812,7 +812,7 @@ void EnFloormas_GrabLink(EnFloormas* this, GlobalContext* globalCtx) {
} else { } else {
// Damage link every 20 frames // Damage link every 20 frames
if ((this->actionTarget % 20) == 0) { if ((this->actionTarget % 20) == 0) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID); func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S_KID);
} else { } else {
func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S); func_8002F7DC(&player->actor, NA_SE_VO_LI_DAMAGE_S);

View file

@ -100,7 +100,7 @@ typedef struct {
f32 yDist; f32 yDist;
} LogSpotToFromWater; } LogSpotToFromWater;
EnFrPointers sEnFrPointers = { static EnFrPointers sEnFrPointers = {
0x00, 0x00,
{ {
NULL, NULL,
@ -112,12 +112,12 @@ EnFrPointers sEnFrPointers = {
}; };
// Flags for gSaveContext.eventChkInf[13] // Flags for gSaveContext.eventChkInf[13]
u16 sSongIndex[] = { static u16 sSongIndex[] = {
0x0002, 0x0004, 0x0010, 0x0008, 0x0020, 0x0040, 0x0001, 0x0000, 0x0002, 0x0004, 0x0010, 0x0008, 0x0020, 0x0040, 0x0001, 0x0000,
}; };
// Frog to Index for Song Flag (sSongIndex) Mapping // Frog to Index for Song Flag (sSongIndex) Mapping
u8 sFrogToSongIndex[] = { static u8 sFrogToSongIndex[] = {
FROG_SARIA, FROG_SUNS, FROG_SOT, FROG_ZL, FROG_EPONA, FROG_SARIA, FROG_SUNS, FROG_SOT, FROG_ZL, FROG_EPONA,
}; };
@ -397,7 +397,8 @@ void EnFr_DecrementBlinkTimerUpdate(EnFr* this) {
void EnFr_SetupJumpingOutOfWater(EnFr* this, GlobalContext* globalCtx) { void EnFr_SetupJumpingOutOfWater(EnFr* this, GlobalContext* globalCtx) {
if (sEnFrPointers.flags == sTimerJumpingOutOfWater[this->actor.params - 1]) { if (sEnFrPointers.flags == sTimerJumpingOutOfWater[this->actor.params - 1]) {
Animation_Change(&this->skelAnime, &D_060007BC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060007BC), 2, 0.0f); Animation_Change(&this->skelAnime, &D_060007BC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060007BC), ANIMMODE_ONCE,
0.0f);
EnFr_DrawActive(this); EnFr_DrawActive(this);
this->actionFunc = EnFr_JumpingOutOfWater; this->actionFunc = EnFr_JumpingOutOfWater;
} }
@ -445,17 +446,20 @@ void EnFr_OrientOnLogSpot(EnFr* this, GlobalContext* globalCtx) {
if ((rotYRemaining == 0) && (this->skelAnime.curFrame == this->skelAnime.endFrame)) { if ((rotYRemaining == 0) && (this->skelAnime.curFrame == this->skelAnime.endFrame)) {
sEnFrPointers.flags++; sEnFrPointers.flags++;
this->actionFunc = EnFr_ChooseJumpFromLogSpot; this->actionFunc = EnFr_ChooseJumpFromLogSpot;
Animation_Change(&this->skelAnime, &D_06001534, 1.0f, 0.0f, Animation_GetLastFrame(&D_06001534), 0, 0.0f); Animation_Change(&this->skelAnime, &D_06001534, 1.0f, 0.0f, Animation_GetLastFrame(&D_06001534), ANIMMODE_LOOP,
0.0f);
} }
} }
void EnFr_ChooseJumpFromLogSpot(EnFr* this, GlobalContext* globalCtx) { void EnFr_ChooseJumpFromLogSpot(EnFr* this, GlobalContext* globalCtx) {
if (sEnFrPointers.flags == 12) { if (sEnFrPointers.flags == 12) {
this->actor.world.rot.y = ((f32)0x8000 / M_PI) * sLogSpotToFromWater[this->actor.params].yaw; this->actor.world.rot.y = ((f32)0x8000 / M_PI) * sLogSpotToFromWater[this->actor.params].yaw;
Animation_Change(&this->skelAnime, &D_060007BC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060007BC), 2, 0.0f); Animation_Change(&this->skelAnime, &D_060007BC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060007BC), ANIMMODE_ONCE,
0.0f);
this->actionFunc = EnFr_JumpingBackIntoWater; this->actionFunc = EnFr_JumpingBackIntoWater;
} else if (this->isJumpingUp) { } else if (this->isJumpingUp) {
Animation_Change(&this->skelAnime, &D_060007BC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060007BC), 2, 0.0f); Animation_Change(&this->skelAnime, &D_060007BC, 1.0f, 0.0f, Animation_GetLastFrame(&D_060007BC), ANIMMODE_ONCE,
0.0f);
this->actionFunc = EnFr_JumpingUp; this->actionFunc = EnFr_JumpingUp;
} }
} }
@ -477,7 +481,8 @@ void EnFr_JumpingUp(EnFr* this, GlobalContext* globalCtx) {
if (EnFr_IsBelowLogSpot(this, &yDistToLogSpot)) { if (EnFr_IsBelowLogSpot(this, &yDistToLogSpot)) {
this->isJumpingUp = false; this->isJumpingUp = false;
this->actor.gravity = 0.0f; this->actor.gravity = 0.0f;
Animation_Change(&this->skelAnime, &D_060011C0, 1.0f, 0.0f, Animation_GetLastFrame(&D_060011C0), 0, 0.0f); Animation_Change(&this->skelAnime, &D_060011C0, 1.0f, 0.0f, Animation_GetLastFrame(&D_060011C0), ANIMMODE_LOOP,
0.0f);
this->actionFunc = EnFr_ChooseJumpFromLogSpot; this->actionFunc = EnFr_ChooseJumpFromLogSpot;
} else if ((this->actor.velocity.y <= 0.0f) && (yDistToLogSpot < 40.0f)) { } else if ((this->actor.velocity.y <= 0.0f) && (yDistToLogSpot < 40.0f)) {
this->skelAnime.playSpeed = 1.0f; this->skelAnime.playSpeed = 1.0f;
@ -498,7 +503,8 @@ void EnFr_JumpingBackIntoWater(EnFr* this, GlobalContext* globalCtx) {
// Final Spot Reached // Final Spot Reached
if ((this->actor.velocity.y < 0.0f) && (this->actor.world.pos.y < yUnderwater)) { if ((this->actor.velocity.y < 0.0f) && (this->actor.world.pos.y < yUnderwater)) {
Animation_Change(&this->skelAnime, &D_06001534, 1.0f, 0.0f, Animation_GetLastFrame(&D_06001534), 0, 0.0f); Animation_Change(&this->skelAnime, &D_06001534, 1.0f, 0.0f, Animation_GetLastFrame(&D_06001534), ANIMMODE_LOOP,
0.0f);
this->actionFunc = EnFr_SetupJumpingOutOfWater; this->actionFunc = EnFr_SetupJumpingOutOfWater;
EnFr_DrawIdle(this); EnFr_DrawIdle(this);
this->isDeactivating = true; this->isDeactivating = true;

View file

@ -85,7 +85,7 @@ void EnFu_Init(Actor* thisx, GlobalContext* globalCtx) {
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.colChkInfo.mass = MASS_IMMOVABLE; this->actor.colChkInfo.mass = MASS_IMMOVABLE;
Actor_SetScale(&this->actor, 0.01f); Actor_SetScale(&this->actor, 0.01f);
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
this->actionFunc = EnFu_WaitChild; this->actionFunc = EnFu_WaitChild;
this->facialExpression = FU_FACE_CALM; this->facialExpression = FU_FACE_CALM;
} else { } else {

View file

@ -116,7 +116,7 @@ static ColliderCylinderInitType1 sCylinderInit3 = {
{ 20, 30, -15, { 0, 0, 0 } }, { 20, 30, -15, { 0, 0, 0 } },
}; };
DamageTable sDamageTable = { static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, 0x0), /* Deku nut */ DMG_ENTRY(0, 0x0),
/* Deku stick */ DMG_ENTRY(0, 0xF), /* Deku stick */ DMG_ENTRY(0, 0xF),
/* Slingshot */ DMG_ENTRY(0, 0xF), /* Slingshot */ DMG_ENTRY(0, 0xF),
@ -152,7 +152,7 @@ DamageTable sDamageTable = {
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_S8(naviEnemyId, 59, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x3B, ICHAIN_CONTINUE),
ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 2, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 30, ICHAIN_STOP),
}; };

View file

@ -377,7 +377,7 @@ void func_80A2FC0C(EnGb* this, GlobalContext* globalCtx) {
void func_80A2FC70(EnGb* this, GlobalContext* globalCtx) { void func_80A2FC70(EnGb* this, GlobalContext* globalCtx) {
if (this->skelAnime.curFrame == Animation_GetLastFrame(&gPoeSellerSwingStickAnim)) { if (this->skelAnime.curFrame == Animation_GetLastFrame(&gPoeSellerSwingStickAnim)) {
Animation_Change(&this->skelAnime, &gPoeSellerIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gPoeSellerIdleAnim), Animation_Change(&this->skelAnime, &gPoeSellerIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gPoeSellerIdleAnim),
0, 0.0f); ANIMMODE_LOOP, 0.0f);
this->actionFunc = func_80A2F83C; this->actionFunc = func_80A2F83C;
} else if (this->skelAnime.curFrame == 18.0f) { } else if (this->skelAnime.curFrame == 18.0f) {
this->cagedSouls[1].unk_1 = 3; this->cagedSouls[1].unk_1 = 3;
@ -395,21 +395,21 @@ void func_80A2FC70(EnGb* this, GlobalContext* globalCtx) {
} }
} }
void EnGb_Update(Actor* thisx, GlobalContext* globalCtx) { void EnGb_Update(Actor* thisx, GlobalContext* globalCtx2) {
EnGb* this = THIS; EnGb* this = THIS;
GlobalContext* globalCtx2 = globalCtx; GlobalContext* globalCtx = globalCtx2;
s32 i; s32 i;
f32 rand; f32 rand;
this->frameTimer++; this->frameTimer++;
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
this->actionFunc(this, globalCtx2); this->actionFunc(this, globalCtx);
this->dyna.actor.textId = this->textId; this->dyna.actor.textId = this->textId;
func_80A2F608(this); func_80A2F608(this);
CollisionCheck_SetOC(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
for (i = 0; i < ARRAY_COUNT(this->bottlesColliders); i++) { for (i = 0; i < ARRAY_COUNT(this->bottlesColliders); i++) {
CollisionCheck_SetOC(globalCtx2, &globalCtx2->colChkCtx, &this->bottlesColliders[i].base); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->bottlesColliders[i].base);
} }
rand = Rand_ZeroOne(); rand = Rand_ZeroOne();
@ -417,7 +417,7 @@ void EnGb_Update(Actor* thisx, GlobalContext* globalCtx) {
this->lightColor.g = (s8)(rand * 100.0f) + 155; this->lightColor.g = (s8)(rand * 100.0f) + 155;
this->lightColor.b = (s8)(rand * 160.0f) + 95; this->lightColor.b = (s8)(rand * 160.0f) + 95;
this->lightColor.a = 200; this->lightColor.a = 200;
EnGb_UpdateCagedSouls(this, globalCtx2); EnGb_UpdateCagedSouls(this, globalCtx);
} }
void EnGb_Draw(Actor* thisx, GlobalContext* globalCtx) { void EnGb_Draw(Actor* thisx, GlobalContext* globalCtx) {

View file

@ -181,7 +181,7 @@ void EnGe2_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 Ge2_DetectPlayerInAction(GlobalContext* globalCtx, EnGe2* this) { s32 Ge2_DetectPlayerInAction(GlobalContext* globalCtx, EnGe2* this) {
f32 visionScale; f32 visionScale;
visionScale = ((gSaveContext.nightFlag != 0) ? 0.75f : 1.5f); visionScale = (!IS_DAY ? 0.75f : 1.5f);
if ((250.0f * visionScale) < this->actor.xzDistToPlayer) { if ((250.0f * visionScale) < this->actor.xzDistToPlayer) {
return 0; return 0;
@ -203,7 +203,7 @@ s32 Ge2_DetectPlayerInUpdate(GlobalContext* globalCtx, EnGe2* this, Vec3f* pos,
CollisionPoly* outPoly; CollisionPoly* outPoly;
f32 visionScale; f32 visionScale;
visionScale = ((gSaveContext.nightFlag != 0) ? 0.75f : 1.5f); visionScale = (!IS_DAY ? 0.75f : 1.5f);
if ((250.0f * visionScale) < this->actor.xzDistToPlayer) { if ((250.0f * visionScale) < this->actor.xzDistToPlayer) {
return 0; return 0;

View file

@ -364,11 +364,11 @@ s32 EnGo_IsActorSpawned(EnGo* this, GlobalContext* globalCtx) {
return true; return true;
} else if (globalCtx->sceneNum == SCENE_SPOT18 && LINK_IS_ADULT && (this->actor.params & 0xF0) == 0x00) { } else if (globalCtx->sceneNum == SCENE_SPOT18 && LINK_IS_ADULT && (this->actor.params & 0xF0) == 0x00) {
return true; return true;
} else if (globalCtx->sceneNum == SCENE_SPOT16 && gSaveContext.linkAge == 1 && } else if (globalCtx->sceneNum == SCENE_SPOT16 && LINK_IS_CHILD &&
((this->actor.params & 0xF0) == 0x20 || (this->actor.params & 0xF0) == 0x30 || ((this->actor.params & 0xF0) == 0x20 || (this->actor.params & 0xF0) == 0x30 ||
(this->actor.params & 0xF0) == 0x40)) { (this->actor.params & 0xF0) == 0x40)) {
return true; return true;
} else if (globalCtx->sceneNum == SCENE_SPOT18 && gSaveContext.linkAge == 1 && } else if (globalCtx->sceneNum == SCENE_SPOT18 && LINK_IS_CHILD &&
((this->actor.params & 0xF0) == 0x50 || (this->actor.params & 0xF0) == 0x60 || ((this->actor.params & 0xF0) == 0x50 || (this->actor.params & 0xF0) == 0x60 ||
(this->actor.params & 0xF0) == 0x70)) { (this->actor.params & 0xF0) == 0x70)) {
return true; return true;

View file

@ -643,7 +643,7 @@ s16 EnGo2_GetStateGoronFireGeneric(GlobalContext* globalCtx, EnGo2* this) {
} }
u16 EnGo2_GetTextIdGoronCityStairwell(GlobalContext* globalCtx, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityStairwell(GlobalContext* globalCtx, EnGo2* this) {
return LINK_IS_CHILD ? gSaveContext.infTable[14] & 0x8 ? 0x3022 : 0x300E : 0x3043; return !LINK_IS_ADULT ? gSaveContext.infTable[14] & 0x8 ? 0x3022 : 0x300E : 0x3043;
} }
s16 EnGo2_GetStateGoronCityStairwell(GlobalContext* globalCtx, EnGo2* this) { s16 EnGo2_GetStateGoronCityStairwell(GlobalContext* globalCtx, EnGo2* this) {
@ -671,7 +671,7 @@ s16 EnGo2_GetStateGoronMarketBazaar(GlobalContext* globalCtx, EnGo2* this) {
} }
u16 EnGo2_GetTextIdGoronCityLostWoods(GlobalContext* globalCtx, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityLostWoods(GlobalContext* globalCtx, EnGo2* this) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
if (Flags_GetSwitch(globalCtx, 0x1C)) { if (Flags_GetSwitch(globalCtx, 0x1C)) {
return 0x302F; return 0x302F;
} else { } else {
@ -695,7 +695,7 @@ s16 EnGo2_GetStateGoronCityLostWoods(GlobalContext* globalCtx, EnGo2* this) {
// Goron at base of DMT summit // Goron at base of DMT summit
u16 EnGo2_GetTextIdGoronDmtFairyHint(GlobalContext* globalCtx, EnGo2* this) { u16 EnGo2_GetTextIdGoronDmtFairyHint(GlobalContext* globalCtx, EnGo2* this) {
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
return CHECK_QUEST_ITEM(QUEST_GORON_RUBY) ? 0x3065 : 0x3064; return CHECK_QUEST_ITEM(QUEST_GORON_RUBY) ? 0x3065 : 0x3064;
} else { } else {
return 0x3043; return 0x3043;
@ -1139,7 +1139,7 @@ s32 EnGo2_IsCameraModified(EnGo2* this, GlobalContext* globalCtx) {
(this->actor.params & 0x1F) == GORON_CITY_STAIRWELL || (this->actor.params & 0x1F) == GORON_DMT_BIGGORON || (this->actor.params & 0x1F) == GORON_CITY_STAIRWELL || (this->actor.params & 0x1F) == GORON_DMT_BIGGORON ||
(this->actor.params & 0x1F) == GORON_MARKET_BAZAAR) { (this->actor.params & 0x1F) == GORON_MARKET_BAZAAR) {
return true; return true;
} else if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && (CHECK_OWNED_EQUIP(EQUIP_TUNIC, 1))) { } else if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && CHECK_OWNED_EQUIP(EQUIP_TUNIC, 1)) {
return true; return true;
} else { } else {
return false; return false;
@ -1533,7 +1533,7 @@ void EnGo2_Init(Actor* thisx, GlobalContext* globalCtx) {
if ((gSaveContext.infTable[16] & 0x200)) { if ((gSaveContext.infTable[16] & 0x200)) {
Path_CopyLastPoint(this->path, &this->actor.world.pos); Path_CopyLastPoint(this->path, &this->actor.world.pos);
this->actor.home.pos = this->actor.world.pos; this->actor.home.pos = this->actor.world.pos;
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && (CHECK_OWNED_EQUIP(EQUIP_TUNIC, 1))) { if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && CHECK_OWNED_EQUIP(EQUIP_TUNIC, 1)) {
EnGo2_GetItemAnimation(this, globalCtx); EnGo2_GetItemAnimation(this, globalCtx);
} else { } else {
this->actionFunc = EnGo2_CurledUp; this->actionFunc = EnGo2_CurledUp;

View file

@ -101,7 +101,7 @@ static Vec3f sDeadEffectVel = { 0.0f, 0.0f, 0.0f };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE), ICHAIN_U8(targetMode, 3, ICHAIN_CONTINUE),
ICHAIN_S8(naviEnemyId, 3, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x03, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, 0, ICHAIN_CONTINUE),
ICHAIN_F32(targetArrowOffset, 20, ICHAIN_STOP), ICHAIN_F32(targetArrowOffset, 20, ICHAIN_STOP),
}; };
@ -784,7 +784,7 @@ void EnGoma_Draw(Actor* thisx, GlobalContext* globalCtx) {
switch (this->gomaType) { switch (this->gomaType) {
case ENGOMA_NORMAL: case ENGOMA_NORMAL:
this->actor.naviEnemyId = 3; this->actor.naviEnemyId = 0x03;
Matrix_Translate(this->actor.world.pos.x, Matrix_Translate(this->actor.world.pos.x,
this->actor.world.pos.y + ((this->actor.shape.yOffset * this->actor.scale.y) + this->actor.world.pos.y + ((this->actor.shape.yOffset * this->actor.scale.y) +
globalCtx->mainCamera.skyboxOffset.y), globalCtx->mainCamera.skyboxOffset.y),
@ -800,7 +800,7 @@ void EnGoma_Draw(Actor* thisx, GlobalContext* globalCtx) {
break; break;
case ENGOMA_EGG: case ENGOMA_EGG:
this->actor.naviEnemyId = 2; this->actor.naviEnemyId = 0x02;
y = (s16)(sinf((this->eggTimer * 5.0f * 3.1415f) / 180.0f) * 31.9f); y = (s16)(sinf((this->eggTimer * 5.0f * 3.1415f) / 180.0f) * 31.9f);
y = (s16)(y + 31); y = (s16)(y + 31);
gSPSegment(POLY_OPA_DISP++, 0x08, func_80094E78(globalCtx->state.gfxCtx, 0, y)); gSPSegment(POLY_OPA_DISP++, 0x08, func_80094E78(globalCtx->state.gfxCtx, 0, y));

View file

@ -119,13 +119,13 @@ void EnHeishi1_Init(Actor* thisx, GlobalContext* globalCtx) {
} }
if (this->type != 5) { if (this->type != 5) {
if (((gSaveContext.dayTime < 0xB888) || (gSaveContext.nightFlag == 0)) && !(gSaveContext.eventChkInf[8] & 1)) { if (((gSaveContext.dayTime < 0xB888) || IS_DAY) && !(gSaveContext.eventChkInf[8] & 1)) {
this->actionFunc = EnHeishi1_SetupWalk; this->actionFunc = EnHeishi1_SetupWalk;
} else { } else {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} }
} else { } else {
if ((gSaveContext.dayTime >= 0xB889) || (gSaveContext.nightFlag != 0) || (gSaveContext.eventChkInf[8] & 1)) { if ((gSaveContext.dayTime >= 0xB889) || !IS_DAY || (gSaveContext.eventChkInf[8] & 1)) {
this->actionFunc = EnHeishi1_SetupWaitNight; this->actionFunc = EnHeishi1_SetupWaitNight;
} else { } else {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -451,7 +451,7 @@ void EnHeishi1_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
if (this->linkDetected) { if (this->linkDetected) {
// ! @bug This appears to be a check to make sure that link is standing on the ground //! @bug This appears to be a check to make sure that link is standing on the ground
// before getting caught. However this is an issue for two reasons: // before getting caught. However this is an issue for two reasons:
// 1: When doing a backflip or falling from the upper path, links y velocity will reach // 1: When doing a backflip or falling from the upper path, links y velocity will reach
// less than -4.0 before even touching the ground. // less than -4.0 before even touching the ground.

View file

@ -126,8 +126,8 @@ void EnHeishi2_Init(Actor* thisx, GlobalContext* globalCtx) {
Collider_InitCylinder(globalCtx, collider); Collider_InitCylinder(globalCtx, collider);
Collider_SetCylinder(globalCtx, collider, &this->actor, &sCylinderInit); Collider_SetCylinder(globalCtx, collider, &this->actor, &sCylinderInit);
this->collider.dim.yShift = 0; this->collider.dim.yShift = 0;
this->collider.dim.radius = 0xF; this->collider.dim.radius = 15;
this->collider.dim.height = 0x46; this->collider.dim.height = 70;
this->actor.targetMode = 6; this->actor.targetMode = 6;
switch (this->type) { switch (this->type) {
@ -195,31 +195,31 @@ void func_80A53278(EnHeishi2* this, GlobalContext* globalCtx) {
// "Get all spiritual stones!" // "Get all spiritual stones!"
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 全部の精霊石GET ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 全部の精霊石GET ☆☆☆☆☆ \n" VT_RST);
this->unk_300 = 6; this->unk_300 = 6;
this->actor.textId = 0x7006; // "There's a lot going on in the castle right now. I can't allow even..." this->actor.textId = 0x7006;
this->actionFunc = func_80A5475C; this->actionFunc = func_80A5475C;
} else if (gSaveContext.nightFlag != 0) { } else if (!IS_DAY) {
// "Sleep early for children!" // "Sleep early for children!"
osSyncPrintf(VT_FGCOL(YELLOW) " ☆☆☆☆☆ 子供ははやくネロ! ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(YELLOW) " ☆☆☆☆☆ 子供ははやくネロ! ☆☆☆☆☆ \n" VT_RST);
this->unk_300 = 6; this->unk_300 = 6;
this->actor.textId = 0x7002; // "Welcome to Hyrule Castle Town. It's a peaceful, prosperous town." this->actor.textId = 0x7002;
this->actionFunc = func_80A5475C; this->actionFunc = func_80A5475C;
} else if (this->unk_30C != 0) { } else if (this->unk_30C != 0) {
// "Anything passes" // "Anything passes"
osSyncPrintf(VT_FGCOL(BLUE) " ☆☆☆☆☆ なんでも通るよ ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(BLUE) " ☆☆☆☆☆ なんでも通るよ ☆☆☆☆☆ \n" VT_RST);
this->unk_300 = 6; this->unk_300 = 6;
this->actor.textId = 0x7099; // "KEEP IT A SECRET FROM EVERYONE" this->actor.textId = 0x7099;
this->actionFunc = func_80A5475C; this->actionFunc = func_80A5475C;
} else if (gSaveContext.eventChkInf[1] & 4) { } else if (gSaveContext.eventChkInf[1] & 4) {
if (this->unk_30E == 0) { if (this->unk_30E == 0) {
// "Start under the first sleeve!" // "Start under the first sleeve!"
osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ 1回目袖の下開始! ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ 1回目袖の下開始! ☆☆☆☆☆ \n" VT_RST);
this->actor.textId = 0x7071; // "Do you really want to go through this gate that much?..." this->actor.textId = 0x7071;
this->unk_30E = 1; this->unk_30E = 1;
} else { } else {
// "Start under the second sleeve!" // "Start under the second sleeve!"
osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ 2回目袖の下開始! ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(PURPLE) " ☆☆☆☆☆ 2回目袖の下開始! ☆☆☆☆☆ \n" VT_RST);
this->actor.textId = 0x7072; // "Give me 10 Rupees...Yes...No" this->actor.textId = 0x7072;
} }
this->unk_300 = 4; this->unk_300 = 4;
this->actionFunc = func_80A5475C; this->actionFunc = func_80A5475C;
@ -228,7 +228,7 @@ void func_80A53278(EnHeishi2* this, GlobalContext* globalCtx) {
// "That's okay" // "That's okay"
osSyncPrintf(VT_FGCOL(CYAN) " ☆☆☆☆☆ それはとおらんよぉ ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(CYAN) " ☆☆☆☆☆ それはとおらんよぉ ☆☆☆☆☆ \n" VT_RST);
this->unk_300 = 6; this->unk_300 = 6;
this->actor.textId = 0x7029; // "So you say you want to see Princess Zelda, eh?..." this->actor.textId = 0x7029;
this->actionFunc = func_80A5475C; this->actionFunc = func_80A5475C;
} }
} }
@ -241,16 +241,16 @@ void func_80A5344C(EnHeishi2* this, GlobalContext* globalCtx) {
case 0: case 0:
if (gSaveContext.rupees >= 10) { if (gSaveContext.rupees >= 10) {
Rupees_ChangeBy(-10); Rupees_ChangeBy(-10);
this->actor.textId = 0x7098; // "OK, I'll let you pass, quickly!" this->actor.textId = 0x7098;
this->actionFunc = func_80A53538; this->actionFunc = func_80A53538;
break; break;
} else { } else {
this->actor.textId = 0x7097; // "Well, maybe that's too much for a kid to pay." this->actor.textId = 0x7097;
this->actionFunc = func_80A54954; this->actionFunc = func_80A54954;
break; break;
} }
case 1: case 1:
this->actor.textId = 0x7096; // "Tsk tsk." this->actor.textId = 0x7096;
this->actionFunc = func_80A54954; this->actionFunc = func_80A54954;
break; break;
@ -360,21 +360,20 @@ void func_80A5399C(EnHeishi2* this, GlobalContext* globalCtx) {
if (!(gSaveContext.infTable[7] & 0x80)) { if (!(gSaveContext.infTable[7] & 0x80)) {
if (Player_GetMask(globalCtx) == PLAYER_MASK_KEATON) { if (Player_GetMask(globalCtx) == PLAYER_MASK_KEATON) {
if (this->unk_309 == 0) { if (this->unk_309 == 0) {
this->actor.textId = 0x200A; // "Wha-ha-ha-hah! Do you think you're in disguise, Mr. Hero?" this->actor.textId = 0x200A;
} else { } else {
this->actor.textId = 0x200B; // "Will you sell it to me? Yes/No way" this->actor.textId = 0x200B;
} }
this->unk_300 = 4; this->unk_300 = 4;
this->unk_30B = 1; this->unk_30B = 1;
var = 1; var = 1;
} else { } else {
this->actor.textId = 0x2016; this->actor.textId = 0x2016;
// "I wish I could go to the mask shop in town to buy a present for my kid..sigh.."
this->unk_300 = 6; this->unk_300 = 6;
var = 1; var = 1;
} }
} else { } else {
this->actor.textId = 0x2020; // "My boy will be very happy with this!" this->actor.textId = 0x2020;
this->unk_300 = 5; this->unk_300 = 5;
this->unk_30E = 0; this->unk_30E = 0;
} }
@ -404,18 +403,18 @@ void func_80A53AD4(EnHeishi2* this, GlobalContext* globalCtx) {
if (Text_GetFaceReaction(globalCtx, 5) != 0) { if (Text_GetFaceReaction(globalCtx, 5) != 0) {
this->actor.textId = Text_GetFaceReaction(globalCtx, 5); this->actor.textId = Text_GetFaceReaction(globalCtx, 5);
} else { } else {
this->actor.textId = 0x200E; // "The road is closed beyond this point! Can't you read..." this->actor.textId = 0x200E;
} }
this->unk_300 = 6; this->unk_300 = 6;
if (func_8002F194(&this->actor, globalCtx) != 0) { if (func_8002F194(&this->actor, globalCtx) != 0) {
exchangeItemId = func_8002F368(globalCtx); exchangeItemId = func_8002F368(globalCtx);
if (exchangeItemId == EXCH_ITEM_LETTER_ZELDA) { if (exchangeItemId == EXCH_ITEM_LETTER_ZELDA) {
func_80078884(NA_SE_SY_CORRECT_CHIME); func_80078884(NA_SE_SY_CORRECT_CHIME);
player->actor.textId = 0x2010; // "Oh, this is...this is surely Princess Zelda's handwriting!" player->actor.textId = 0x2010;
this->unk_300 = 5; this->unk_300 = 5;
this->actionFunc = func_80A53C0C; this->actionFunc = func_80A53C0C;
} else if (exchangeItemId != EXCH_ITEM_NONE) { } else if (exchangeItemId != EXCH_ITEM_NONE) {
player->actor.textId = 0x200F; // "I don't want that!" player->actor.textId = 0x200F;
} }
} else { } else {
yawDiffTemp = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; yawDiffTemp = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
@ -510,7 +509,7 @@ void func_80A53F30(EnHeishi2* this, GlobalContext* globalCtx) {
Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_ACTIVE); Gameplay_ChangeCameraStatus(globalCtx, MAIN_CAM, CAM_STAT_ACTIVE);
if ((this->unk_30A != 2)) { if ((this->unk_30A != 2)) {
if (this->unk_30A == 0) { if (this->unk_30A == 0) {
this->actor.textId = 0x2015; // "By the way Mr. Hero..If you're going to climb Death Mountain..." this->actor.textId = 0x2015;
func_8010B720(globalCtx, this->actor.textId); func_8010B720(globalCtx, this->actor.textId);
this->actionFunc = func_80A54038; this->actionFunc = func_80A54038;
} else { } else {
@ -520,7 +519,7 @@ void func_80A53F30(EnHeishi2* this, GlobalContext* globalCtx) {
} }
} else { } else {
this->unk_30E = 0; this->unk_30E = 0;
this->actor.textId = 0x2021; // "You sold the 10-Rupee mask for 15 Rupees. You earned a little profit." this->actor.textId = 0x2021;
Rupees_ChangeBy(15); Rupees_ChangeBy(15);
func_8010B720(globalCtx, this->actor.textId); func_8010B720(globalCtx, this->actor.textId);
this->actionFunc = func_80A5427C; this->actionFunc = func_80A5427C;
@ -545,7 +544,7 @@ void func_80A540C0(EnHeishi2* this, GlobalContext* globalCtx) {
if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) { if ((func_8010BDBC(&globalCtx->msgCtx) == 4) && (func_80106BC8(globalCtx) != 0)) {
switch (globalCtx->msgCtx.choiceIndex) { switch (globalCtx->msgCtx.choiceIndex) {
case 0: case 0:
this->actor.textId = 0x2020; // "My boy will be very happy with this!.." this->actor.textId = 0x2020;
func_8010B720(globalCtx, this->actor.textId); func_8010B720(globalCtx, this->actor.textId);
Player_UnsetMask(globalCtx); Player_UnsetMask(globalCtx);
gSaveContext.infTable[7] |= 0x80; gSaveContext.infTable[7] |= 0x80;
@ -562,7 +561,7 @@ void func_80A540C0(EnHeishi2* this, GlobalContext* globalCtx) {
break; break;
case 1: case 1:
this->unk_30E = 1; this->unk_30E = 1;
this->actor.textId = 0x200C; // "I won't give up! I have plenty of patience.." this->actor.textId = 0x200C;
func_8010B720(globalCtx, this->actor.textId); func_8010B720(globalCtx, this->actor.textId);
this->unk_300 = 5; this->unk_300 = 5;
if (this->unk_30A == 0) { if (this->unk_30A == 0) {
@ -577,8 +576,7 @@ void func_80A540C0(EnHeishi2* this, GlobalContext* globalCtx) {
void func_80A541FC(EnHeishi2* this, GlobalContext* globalCtx) { void func_80A541FC(EnHeishi2* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
this->actor.textId = 0x2021; // "You sold the 10-Rupee mask for 15 Rupees. You earned a little profit. Let's this->actor.textId = 0x2021;
// go to the Mask Shop..."
Rupees_ChangeBy(15); Rupees_ChangeBy(15);
func_8010B720(globalCtx, this->actor.textId); func_8010B720(globalCtx, this->actor.textId);
this->actionFunc = func_80A5427C; this->actionFunc = func_80A5427C;

View file

@ -118,13 +118,13 @@ void EnHeishi3_StandSentinelInGrounds(EnHeishi3* this, GlobalContext* globalCtx)
yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; yawDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
yawDiffNew = ABS(yawDiff); yawDiffNew = ABS(yawDiff);
if (yawDiffNew < 0x4300) { if (yawDiffNew < 0x4300) {
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
sightRange = 250.0f; sightRange = 250.0f;
} else { } else {
sightRange = 200.0f; sightRange = 200.0f;
} }
} else { } else {
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
sightRange = 150.0f; sightRange = 150.0f;
} else { } else {
sightRange = 100.0f; sightRange = 100.0f;

View file

@ -148,7 +148,7 @@ void func_80A563BC(EnHeishi4* this, GlobalContext* globalCtx) {
} else { } else {
this->actor.textId = 0x507A; this->actor.textId = 0x507A;
} }
} else if (gSaveContext.nightFlag == 0) { } else if (IS_DAY) {
if (this->unk_284 == 0) { if (this->unk_284 == 0) {
this->actor.textId = 0x5063; this->actor.textId = 0x5063;
} else { } else {
@ -194,13 +194,13 @@ void func_80A56614(EnHeishi4* this, GlobalContext* globalCtx) {
return; return;
} }
if (globalCtx->sceneNum == SCENE_MIHARIGOYA) { if (globalCtx->sceneNum == SCENE_MIHARIGOYA) {
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
this->actor.textId = 0x7004; this->actor.textId = 0x7004;
} else { } else {
this->actor.textId = 0x709A; this->actor.textId = 0x709A;
} }
} else if (globalCtx->sceneNum != SCENE_MARKET_NIGHT) { } else if (globalCtx->sceneNum != SCENE_MARKET_NIGHT) {
if (gSaveContext.nightFlag == 0) { if (IS_DAY) {
this->actor.textId = 0x7002; this->actor.textId = 0x7002;
} else { } else {
this->actor.textId = 0x7003; this->actor.textId = 0x7003;
@ -351,7 +351,7 @@ void EnHeishi4_Update(Actor* thisx, GlobalContext* globalCtx) {
Actor_SetFocus(thisx, this->height); Actor_SetFocus(thisx, this->height);
if (this->type != HEISHI4_AT_MARKET_DYING) { if (this->type != HEISHI4_AT_MARKET_DYING) {
this->unk_28C.unk_18 = player->actor.world.pos; this->unk_28C.unk_18 = player->actor.world.pos;
if (LINK_IS_CHILD) { if (!LINK_IS_ADULT) {
this->unk_28C.unk_18.y = (player->actor.world.pos.y - 10.0f); this->unk_28C.unk_18.y = (player->actor.world.pos.y - 10.0f);
} }
func_80034A14(thisx, &this->unk_28C, 2, 4); func_80034A14(thisx, &this->unk_28C, 2, 4);

Some files were not shown because too many files have changed in this diff Show more