1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-07 14:50:15 +00:00

Fix most actor compiler warnings (#656)

* functions.h

* Bg_Hidan_Kowarerukabe

* Demo_Geff

* Arrow_Fire

* Demo_Sa

* Arms_Hook

* En_Okarina_Effect

* Demo_Im

* Bg_Menkuri_Kaiten

* Bg_Spot09_Obj (minus CollisionHeader)

* Obj_Hsblock

* Obj_Elevator

* En_Anubice_Tag

* Bg_Ydan_Hasi
(minus BgYdanHasi_MoveWater return shenanigans)

* En_Heishi4

* Demo_Go

* Bg_Spot00_Break

* Bg_Hidan_Kousi

* Bg_Spot17_Bakudankabe

* Bg_Spot18_Basket

* En_Dha

* Bg_Jya_Goroiwa

* En_Js

* Bg_Mori_Hineri

* Bg_Spot18_Shutter

* Bg_Jya_Bombchuiwa

* Bg_Bdan_Objects

* Bg_Jya_Amishutter

* Bg_Toki_Swd

* En_Heishi2

* En_Fu

* Bg_Jya_Kanaami

* Bg_Pushbox

* Bg_Spot12_Saku

* En_Ani

* En_Zl1

* En_Vase

* Bg_Spot05_Soko

* En_Crow (and a rename in En_Firefly)

* Bg_Hidan_Fslift

* En_Dog

* Bg_Heavy_Block

* En_Boom

* Bg_Ddan_Kd

* Bg_Spot16_Bombstone

* Demo_Effect

* Bg_Hidan_Syoku

* En_Firefly

* En_Fw

* Bg_Jya_Bombiwa

* En_Fd

* ovl_Bg_Spot15_Saku

* En_Mb

* Bg_Spot18_Obj

* Bg_Zg

* Bg_Bdan_Switch

* En_Md

* En_Box

* En_Bw

* En_Viewer

* En_Hs2

* Bg_Ydan_Maruta

* En_St

* En_Ru1

* Bg_Ddan_Jd

* En_Sb

* Bg_Jya_Cobra

* Bg_Spot12_Gate

* Bg_Haka_Trap

* En_Ms

* En_Kakasi2

* En_Horse_Link_Child

* Obj_Bombiwa

* En_Ds

* En_Kz

* Bg_Umajump

* Bg_Spot03_Taki

* Door_Toki

* Item_Etcetera

* En_Ru2

* En_Niw

* Bg_Spot15_Rrbox

* Demo_Tre_Lgt

* Obj_Oshihiki

* Bg_Mjin

* Bg_Spot18_Futa

* Bg_Spot01_Idosoko

* En_Arow_Trap

* Bg_Mizu_Uzu

* En_Horse_Zelda

* Player

* fix func_800358DC to work in functions.h

* fix fix to functions.h

* enum fixes

* Some review comments addressed

* DynaPoly_GetActor standardisation

* ovl_Daiku_Kakariko

* ovl_En_Vase

* ovl_En_Mk

* ovl_Bg_Spot00_Hanebasi

* ovl_Bg_Spot06_Objects

* ovl_En_Go

* ovl_En_Go2

* ovl_Bg_Jya_Bombiwa

* ovl_En_Cs

* ovl_En_Dodojr

* ovl_En_Ny

* ovl_En_Mm2

* Apply review suggestion
This commit is contained in:
EllipticEllipsis 2021-02-02 23:44:24 +00:00 committed by GitHub
parent ced724fb9b
commit 02b3640bde
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
122 changed files with 1129 additions and 1125 deletions

View file

@ -1,7 +1,7 @@
/*
* File: z_en_ru1.c
* Overlay: En_Ru1
* Description:
* Description: Ruto (child)
*/
#include "z_en_ru1.h"
@ -302,7 +302,7 @@ s32 func_80AEB020(EnRu1* this, GlobalContext* globalCtx) {
while (actorIt != NULL) {
if (actorIt->id == ACTOR_EN_RU1) {
someEnRu1 = actorIt;
someEnRu1 = (EnRu1*)actorIt;
if (someEnRu1 != this) {
if ((someEnRu1->action == 31) || (someEnRu1->action == 32) || (someEnRu1->action == 24)) {
return 1;
@ -362,16 +362,14 @@ s32 func_80AEB1B4(GlobalContext* globalCtx) {
}
void func_80AEB1D8(EnRu1* this) {
Actor* thisx = &this->actor;
this->action = 36;
this->drawConfig = 0;
thisx->velocity.x = 0.0f;
thisx->velocity.y = 0.0f;
thisx->velocity.z = 0.0f;
thisx->speedXZ = 0.0f;
thisx->gravity = 0.0f;
thisx->minVelocityY = 0.0f;
this->actor.velocity.x = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.velocity.z = 0.0f;
this->actor.speedXZ = 0.0f;
this->actor.gravity = 0.0f;
this->actor.minVelocityY = 0.0f;
func_80AEB0EC(this, 0);
}
@ -449,9 +447,9 @@ void EnRu1_SpawnRipple(EnRu1* this, GlobalContext* globalCtx, s16 radiusMax, s16
Vec3f pos;
Actor* thisx = &this->actor;
pos.x = thisx->world.pos.x;
pos.y = thisx->world.pos.y + thisx->yDistToWater;
pos.z = thisx->world.pos.z;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + this->actor.yDistToWater;
pos.z = this->actor.world.pos.z;
EffectSsGRipple_Spawn(globalCtx, &pos, 100, radiusMax, life);
}
@ -471,11 +469,10 @@ void func_80AEB59C(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEB680(EnRu1* this, GlobalContext* globalCtx) {
Vec3f pos;
Actor* thisx = &this->actor;
pos.x = thisx->world.pos.x;
pos.y = thisx->world.pos.y + thisx->yDistToWater;
pos.z = thisx->world.pos.z;
pos.x = this->actor.world.pos.x;
pos.y = this->actor.world.pos.y + this->actor.yDistToWater;
pos.z = this->actor.world.pos.z;
EffectSsGSplash_Spawn(globalCtx, &pos, 0, 0, 1, 0);
}
@ -521,17 +518,16 @@ f32 func_80AEB87C(f32 arg0, s32 arg1, s32 arg2) {
}
void func_80AEB89C(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
CsCmdActorAction* npcAction = func_80AEB438(globalCtx);
s16 npcActionRotY;
if (npcAction != NULL) {
npcActionRotY = npcAction->rot.y;
thisx->shape.rot.y = npcActionRotY;
thisx->world.rot.y = npcActionRotY;
thisx->world.pos.x = npcAction->startPos.x;
thisx->world.pos.y = npcAction->startPos.y;
thisx->world.pos.z = npcAction->startPos.z;
this->actor.shape.rot.y = npcActionRotY;
this->actor.world.rot.y = npcActionRotY;
this->actor.world.pos.x = npcAction->startPos.x;
this->actor.world.pos.y = npcAction->startPos.y;
this->actor.world.pos.z = npcAction->startPos.z;
}
}
@ -551,11 +547,11 @@ void func_80AEB974(EnRu1* this, GlobalContext* globalCtx) {
Vec3f* thisPos;
f32 sp30;
CsCmdActorAction* csCmdNPCAction = func_80AEB438(globalCtx);
Actor* thisx = &this->actor;
s32 pad;
if (csCmdNPCAction != NULL) {
sp30 = func_80AEB7E0(csCmdNPCAction, globalCtx);
thisPos = &thisx->world.pos;
thisPos = &this->actor.world.pos;
thisPos->x = func_80AEB87C(sp30, csCmdNPCAction->startPos.x, csCmdNPCAction->endPos.x);
thisPos->y = func_80AEB87C(sp30, csCmdNPCAction->startPos.y, csCmdNPCAction->endPos.y);
thisPos->z = func_80AEB87C(sp30, csCmdNPCAction->startPos.z, csCmdNPCAction->endPos.z);
@ -572,11 +568,11 @@ void func_80AEBA2C(EnRu1* this, GlobalContext* globalCtx) {
Vec3f* thisPos;
f32 temp_ret_2;
CsCmdActorAction* csCmdNPCAction = func_80AEB438(globalCtx);
Actor* thisx = &this->actor;
s32 pad2;
if (csCmdNPCAction != NULL) {
temp_ret_2 = func_80AEB7E0(csCmdNPCAction, globalCtx);
thisPos = &thisx->world.pos;
thisPos = &this->actor.world.pos;
thisPos->x = func_80AEB87C(temp_ret_2, unk_364->x, csCmdNPCAction->endPos.x);
thisPos->y = func_80AEB87C(temp_ret_2, unk_364->y, csCmdNPCAction->endPos.y);
thisPos->z = func_80AEB87C(temp_ret_2, unk_364->z, csCmdNPCAction->endPos.z);
@ -785,7 +781,6 @@ void func_80AEC2C0(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEC320(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s8 actorRoom;
if (!(gSaveContext.infTable[20] & 2)) {
@ -798,63 +793,59 @@ void func_80AEC320(EnRu1* this, GlobalContext* globalCtx) {
(!(gSaveContext.infTable[20] & 0x20))) {
if (!func_80AEB020(this, globalCtx)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
actorRoom = thisx->room;
actorRoom = this->actor.room;
this->action = 22;
thisx->room = -1;
this->actor.room = -1;
this->drawConfig = 0;
this->roomNum1 = actorRoom;
this->roomNum3 = actorRoom;
this->roomNum2 = actorRoom;
} else {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
} else {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
}
void func_80AEC40C(EnRu1* this) {
Actor* thisx = &this->actor;
f32 unk_26C = this->unk_26C;
if (unk_26C < 8.0f) {
thisx->speedXZ = (((kREG(3) * 0.01f) + 2.7f) * 0.125f) * unk_26C;
this->actor.speedXZ = (((kREG(3) * 0.01f) + 2.7f) * 0.125f) * unk_26C;
} else {
thisx->speedXZ = (kREG(3) * 0.01f) + 2.7f;
this->actor.speedXZ = (kREG(3) * 0.01f) + 2.7f;
}
thisx->velocity.y = -1.0f;
Actor_MoveForward(thisx);
this->actor.velocity.y = -1.0f;
Actor_MoveForward(&this->actor);
}
void func_80AEC4CC(EnRu1* this) {
Actor* thisx = &this->actor;
thisx->velocity.y = -1.0f;
Actor_MoveForward(thisx);
this->actor.velocity.y = -1.0f;
Actor_MoveForward(&this->actor);
}
void func_80AEC4F4(EnRu1* this) {
Actor* thisx = &this->actor;
f32* speedXZ = &thisx->speedXZ;
f32* speedXZ = &this->actor.speedXZ;
f32* unk_26C = &this->unk_26C;
if (this->unk_26C < 8.0f) {
*unk_26C += 1.0f;
*speedXZ *= (8.0f - *unk_26C) * 0.125f;
thisx->velocity.y = -*unk_26C * (((kREG(4) * 0.01f) + 13.0f) * 0.125f);
this->actor.velocity.y = -*unk_26C * (((kREG(4) * 0.01f) + 13.0f) * 0.125f);
} else {
*speedXZ = 0.0f;
thisx->velocity.y = -((kREG(4) * 0.01f) + 13.0f);
this->actor.velocity.y = -((kREG(4) * 0.01f) + 13.0f);
}
Actor_MoveForward(thisx);
Actor_MoveForward(&this->actor);
}
s32 func_80AEC5FC(EnRu1* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Actor* thisx = &this->actor;
f32 thisPosZ = thisx->world.pos.z;
f32 thisPosZ = this->actor.world.pos.z;
f32 playerPosZ = player->actor.world.pos.z;
if ((playerPosZ - thisPosZ <= 265.0f) && (player->actor.world.pos.y >= thisx->world.pos.y)) {
if ((playerPosZ - thisPosZ <= 265.0f) && (player->actor.world.pos.y >= this->actor.world.pos.y)) {
return 1;
}
return 0;
@ -898,18 +889,17 @@ void func_80AEC780(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEC81C(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
CsCmdActorAction* csCmdNPCAction;
s16 newRotY;
if (func_80AEAFE0(globalCtx, 1, 3)) {
csCmdNPCAction = globalCtx->csCtx.npcActions[3];
thisx->world.pos.x = csCmdNPCAction->startPos.x;
thisx->world.pos.y = csCmdNPCAction->startPos.y;
thisx->world.pos.z = csCmdNPCAction->startPos.z;
this->actor.world.pos.x = csCmdNPCAction->startPos.x;
this->actor.world.pos.y = csCmdNPCAction->startPos.y;
this->actor.world.pos.z = csCmdNPCAction->startPos.z;
newRotY = csCmdNPCAction->rot.y;
thisx->shape.rot.y = newRotY;
thisx->world.rot.y = newRotY;
this->actor.shape.rot.y = newRotY;
this->actor.world.rot.y = newRotY;
this->action = 9;
this->drawConfig = 1;
}
@ -943,11 +933,10 @@ void func_80AEC9C4(EnRu1* this) {
}
void func_80AECA18(EnRu1* this) {
Actor* thisx = &this->actor;
if (!(thisx->bgCheckFlags & 1)) {
if (!(this->actor.bgCheckFlags & 1)) {
this->action = 13;
this->unk_26C = 0.0f;
thisx->velocity.y = 0.0f;
this->actor.velocity.y = 0.0f;
}
}
@ -1018,20 +1007,20 @@ void func_80AECC84(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AECCB0(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s32 pad;
Vec3f* pos;
s16 yawTowardsPlayer;
f32 spawnX;
f32 spawnY;
f32 spawnZ;
s32 pad[2];
s32 pad2[2];
yawTowardsPlayer = thisx->yawTowardsPlayer;
pos = &thisx->world.pos;
yawTowardsPlayer = this->actor.yawTowardsPlayer;
pos = &this->actor.world.pos;
spawnX = ((kREG(1) + 12.0f) * Math_SinS(yawTowardsPlayer)) + pos->x;
spawnY = pos->y;
spawnZ = ((kREG(1) + 12.0f) * Math_CosS(yawTowardsPlayer)) + pos->z;
this->unk_278 = (DoorWarp1*)Actor_SpawnAsChild(&globalCtx->actorCtx, this, globalCtx, ACTOR_DOOR_WARP1, spawnX,
this->unk_278 = (DoorWarp1*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_DOOR_WARP1, spawnX,
spawnY, spawnZ, 0, yawTowardsPlayer, 0, 5);
}
@ -1048,13 +1037,13 @@ void func_80AECE04(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AECE20(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s32 pad2;
Player* player = PLAYER;
Vec3f* playerPos = &player->actor.world.pos;
s16 shapeRotY = player->actor.shape.rot.y;
s32 pad;
f32 unk_27C = this->unk_27C;
Vec3f* pos = &thisx->world.pos;
Vec3f* pos = &this->actor.world.pos;
pos->x = (Math_SinS(shapeRotY) * unk_27C) + playerPos->x;
pos->y = playerPos->y;
@ -1062,11 +1051,11 @@ void func_80AECE20(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AECEB4(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s32 pad;
Player* player = PLAYER;
Vec3f* player_unk_450 = &player->unk_450;
Vec3f* pos = &thisx->world.pos;
s16 shapeRotY = thisx->shape.rot.y;
Vec3f* pos = &this->actor.world.pos;
s16 shapeRotY = this->actor.shape.rot.y;
player_unk_450->x = ((kREG(2) + 30.0f) * Math_SinS(shapeRotY)) + pos->x;
player_unk_450->z = ((kREG(2) + 30.0f) * Math_CosS(shapeRotY)) + pos->z;
@ -1127,10 +1116,9 @@ void func_80AED0D8(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AED110(EnRu1* this) {
Actor* thisx = &this->actor;
if (thisx->shape.yOffset >= 0.0f) {
if (this->actor.shape.yOffset >= 0.0f) {
this->action = 18;
thisx->shape.yOffset = 0.0f;
this->actor.shape.yOffset = 0.0f;
func_80AED0B0(this, 1);
}
}
@ -1202,24 +1190,23 @@ void func_80AED414(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AED44C(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s8 actorRoom;
if ((gSaveContext.infTable[20] & 2) && (!(gSaveContext.infTable[20] & 0x20)) &&
(!(gSaveContext.infTable[20] & 1)) && (!(gSaveContext.infTable[20] & 0x80))) {
if (!func_80AEB020(this, globalCtx)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
actorRoom = thisx->room;
actorRoom = this->actor.room;
this->action = 22;
thisx->room = -1;
this->actor.room = -1;
this->roomNum1 = actorRoom;
this->roomNum3 = actorRoom;
this->roomNum2 = actorRoom;
} else {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
} else {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
}
@ -1254,14 +1241,13 @@ void func_80AED600(EnRu1* this) {
}
s32 func_80AED624(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s8 curRoomNum = globalCtx->roomCtx.curRoom.num;
if (this->roomNum2 != curRoomNum) {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
return 0;
} else if (((this->roomNum1 != curRoomNum) || (this->roomNum2 != curRoomNum)) &&
(thisx->yDistToWater > kREG(16) + 50.0f) && (this->action != 33)) {
(this->actor.yDistToWater > kREG(16) + 50.0f) && (this->action != 33)) {
this->action = 33;
this->drawConfig = 2;
this->unk_2A8 = 0xFF;
@ -1349,16 +1335,15 @@ void func_80AED8DC(EnRu1* this) {
}
void func_80AEDAE0(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
Actor* dyna = DynaPoly_GetActor(&globalCtx->colCtx, thisx->floorBgId);
DynaPolyActor* dynaPolyActor = DynaPoly_GetActor(&globalCtx->colCtx, this->actor.floorBgId);
if (dyna == NULL || dyna->id == ACTOR_EN_BOX) {
thisx->bgCheckFlags &= ~0x19;
if (dynaPolyActor == NULL || dynaPolyActor->actor.id == ACTOR_EN_BOX) {
this->actor.bgCheckFlags &= ~0x19;
}
}
void func_80AEDB30(EnRu1* this, GlobalContext* globalCtx) {
Actor* temp_dyna;
DynaPolyActor* dynaPolyActor;
f32* velocityY;
f32* speedXZ;
f32* gravity;
@ -1370,11 +1355,11 @@ void func_80AEDB30(EnRu1* this, GlobalContext* globalCtx) {
if (this->actor.bgCheckFlags & 1) {
velocityY = &this->actor.velocity.y;
temp_dyna = DynaPoly_GetActor(&globalCtx->colCtx, this->actor.floorBgId);
dynaPolyActor = DynaPoly_GetActor(&globalCtx->colCtx, this->actor.floorBgId);
if (*velocityY <= 0.0f) {
speedXZ = &this->actor.speedXZ;
if (temp_dyna != NULL) {
if (temp_dyna->id != ACTOR_EN_BOX) {
if (dynaPolyActor != NULL) {
if (dynaPolyActor->actor.id != ACTOR_EN_BOX) {
*speedXZ = 0.0f;
}
} else {
@ -1385,8 +1370,8 @@ void func_80AEDB30(EnRu1* this, GlobalContext* globalCtx) {
}
}
gravity = &this->actor.gravity;
if (temp_dyna != NULL) {
if (temp_dyna->id != ACTOR_EN_BOX) {
if (dynaPolyActor != NULL) {
if (dynaPolyActor->actor.id != ACTOR_EN_BOX) {
*velocityY = 0.0f;
this->actor.minVelocityY = 0.0f;
*gravity = 0.0f;
@ -1445,9 +1430,9 @@ void func_80AEDB30(EnRu1* this, GlobalContext* globalCtx) {
void func_80AEDEF4(EnRu1* this, GlobalContext* globalCtx) {
f32* speedXZ = &this->actor.speedXZ;
Actor* dyna = DynaPoly_GetActor(&globalCtx->colCtx, this->actor.floorBgId);
DynaPolyActor* dynaPolyActor = DynaPoly_GetActor(&globalCtx->colCtx, this->actor.floorBgId);
if (dyna != NULL && dyna->id == ACTOR_EN_BOX) {
if (dynaPolyActor != NULL && dynaPolyActor->actor.id == ACTOR_EN_BOX) {
if (*speedXZ != 0.0f) {
*speedXZ *= 1.1f;
} else {
@ -1468,14 +1453,12 @@ void func_80AEDFF4(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEE02C(EnRu1* this) {
Actor* thisx = &this->actor;
thisx->velocity.x = 0.0f;
thisx->velocity.y = 0.0f;
thisx->velocity.z = 0.0f;
thisx->speedXZ = 0.0f;
thisx->gravity = 0.0f;
thisx->minVelocityY = 0.0f;
this->actor.velocity.x = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.velocity.z = 0.0f;
this->actor.speedXZ = 0.0f;
this->actor.gravity = 0.0f;
this->actor.minVelocityY = 0.0f;
}
void func_80AEE050(EnRu1* this) {
@ -1506,7 +1489,7 @@ void func_80AEE050(EnRu1* this) {
}
this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ;
this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ;
func_8002D7EC(this);
func_8002D7EC(&this->actor);
}
} else {
if (this->unk_350 == 1) {
@ -1532,19 +1515,17 @@ void func_80AEE050(EnRu1* this) {
}
s32 func_80AEE264(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if (!func_8002F194(thisx, globalCtx)) {
thisx->flags |= 9;
if (!func_8002F194(&this->actor, globalCtx)) {
this->actor.flags |= 9;
if ((gSaveContext.infTable[20] & 8)) {
thisx->textId = 0x404E;
func_8002F2F4(thisx, globalCtx);
this->actor.textId = 0x404E;
func_8002F2F4(&this->actor, globalCtx);
} else if (gSaveContext.infTable[20] & 4) {
thisx->textId = 0x404D;
func_8002F2F4(thisx, globalCtx);
this->actor.textId = 0x404D;
func_8002F2F4(&this->actor, globalCtx);
} else {
thisx->textId = 0x404C;
func_8002F2F4(thisx, globalCtx);
this->actor.textId = 0x404C;
func_8002F2F4(&this->actor, globalCtx);
}
return 0;
}
@ -1552,13 +1533,13 @@ s32 func_80AEE264(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEE2F8(EnRu1* this, GlobalContext* globalCtx) {
Actor* dyna;
DynaPolyActor* dynaPolyActor;
s32 floorBgId;
if ((this->actor.bgCheckFlags & 1) && (this->actor.floorBgId != BGCHECK_SCENE)) {
floorBgId = this->actor.floorBgId;
dyna = DynaPoly_GetActor(&globalCtx->colCtx, floorBgId);
if ((dyna != NULL) && (dyna->id == ACTOR_BG_BDAN_SWITCH)) {
if (((dyna->params >> 8) & 0x3F) == 0x38) {
dynaPolyActor = DynaPoly_GetActor(&globalCtx->colCtx, floorBgId);
if ((dynaPolyActor != NULL) && (dynaPolyActor->actor.id == ACTOR_BG_BDAN_SWITCH)) {
if (((dynaPolyActor->actor.params >> 8) & 0x3F) == 0x38) {
gSaveContext.infTable[20] |= 1;
return;
}
@ -1570,21 +1551,21 @@ void func_80AEE2F8(EnRu1* this, GlobalContext* globalCtx) {
s32 func_80AEE394(EnRu1* this, GlobalContext* globalCtx) {
s32 pad[2];
CollisionContext* colCtx;
DynaPolyActor* dynaActor;
DynaPolyActor* dynaPolyActor;
s32 floorBgId;
if ((this->actor.bgCheckFlags & 1) && this->actor.floorBgId != BGCHECK_SCENE) {
colCtx = &globalCtx->colCtx;
floorBgId = this->actor.floorBgId; // necessary match, can't move this out of this block unfortunately
dynaActor = DynaPoly_GetActor(colCtx, floorBgId);
if (dynaActor != NULL && dynaActor->actor.id == ACTOR_BG_BDAN_OBJECTS && dynaActor->actor.params == 0 &&
dynaPolyActor = DynaPoly_GetActor(colCtx, floorBgId);
if (dynaPolyActor != NULL && dynaPolyActor->actor.id == ACTOR_BG_BDAN_OBJECTS && dynaPolyActor->actor.params == 0 &&
!Player_InCsMode(globalCtx) && globalCtx->msgCtx.unk_E300 == 0) {
func_80AEE02C(this);
globalCtx->csCtx.segment = &D_80AF10A4;
gSaveContext.cutsceneTrigger = 1;
this->action = 36;
this->drawConfig = 0;
this->unk_28C = (BgBdanObjects*)dynaActor;
this->unk_28C = (BgBdanObjects*)dynaPolyActor;
this->actor.shape.shadowAlpha = 0;
return 1;
}
@ -1593,31 +1574,28 @@ s32 func_80AEE394(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEE488(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s8 curRoomNum;
if (Actor_HasParent(thisx, globalCtx)) {
if (Actor_HasParent(&this->actor, globalCtx)) {
curRoomNum = globalCtx->roomCtx.curRoom.num;
this->roomNum3 = curRoomNum;
this->action = 31;
func_80AED520(this, globalCtx);
} else if ((!func_80AEE394(this, globalCtx)) && (!(thisx->bgCheckFlags & 1))) {
thisx->minVelocityY = -((kREG(24) * 0.01f) + 6.8f);
thisx->gravity = -((kREG(23) * 0.01f) + 1.3f);
} else if ((!func_80AEE394(this, globalCtx)) && (!(this->actor.bgCheckFlags & 1))) {
this->actor.minVelocityY = -((kREG(24) * 0.01f) + 6.8f);
this->actor.gravity = -((kREG(23) * 0.01f) + 1.3f);
this->action = 28;
}
}
void func_80AEE568(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if (!func_80AEE394(this, globalCtx)) {
if ((thisx->bgCheckFlags & 1) && (thisx->speedXZ == 0.0f) && (thisx->minVelocityY == 0.0f)) {
if ((this->actor.bgCheckFlags & 1) && (this->actor.speedXZ == 0.0f) && (this->actor.minVelocityY == 0.0f)) {
func_80AEE02C(this);
func_8002F580(this, globalCtx);
func_8002F580(&this->actor, globalCtx);
this->action = 27;
func_80AEADD8(this);
} else if (thisx->yDistToWater > 0.0f) {
} else if (this->actor.yDistToWater > 0.0f) {
this->action = 29;
this->unk_350 = 0;
}
@ -1664,7 +1642,7 @@ void func_80AEE7C4(EnRu1* this, GlobalContext* globalCtx) {
Player* player;
f32* unk_370 = &this->unk_370;
if (Actor_HasNoParent(this, globalCtx)) {
if (Actor_HasNoParent(&this->actor, globalCtx)) {
frameCount = Animation_GetLastFrame(&D_06006B9C);
Animation_Change(&this->skelAnime, &D_06006B9C, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
func_80AED6DC(this, globalCtx);
@ -1714,7 +1692,7 @@ void func_80AEE7C4(EnRu1* this, GlobalContext* globalCtx) {
s32 func_80AEEAC8(EnRu1* this, GlobalContext* globalCtx) {
if (this->actor.bgCheckFlags & 1) {
func_80AEE02C(this);
func_8002F580(this, globalCtx);
func_8002F580(&this->actor, globalCtx);
this->action = 27;
func_80AEADD8(this);
return 1;
@ -1723,18 +1701,16 @@ s32 func_80AEEAC8(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEEB24(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if ((func_80AEEAC8(this, globalCtx) == 0) && (this->unk_350 == 3)) {
this->action = 30;
func_80AEE02C(this);
thisx->gravity = -0.1f;
thisx->minVelocityY = -((kREG(18) * 0.1f) + 0.7f);
this->actor.gravity = -0.1f;
this->actor.minVelocityY = -((kREG(18) * 0.1f) + 0.7f);
}
}
void func_80AEEBB4(EnRu1* this, GlobalContext* globalCtx) {
func_8002F580(this, globalCtx);
func_8002F580(&this->actor, globalCtx);
}
void func_80AEEBD4(EnRu1* this, GlobalContext* globalCtx) {
@ -1886,7 +1862,7 @@ void func_80AEF1F0(EnRu1* this, GlobalContext* globalCtx, UNK_TYPE arg2) {
func_80106CCC(globalCtx);
gSaveContext.infTable[20] |= 8;
func_80AED6DC(this, globalCtx);
func_8002F580(this, globalCtx);
func_8002F580(&this->actor, globalCtx);
this->action = 27;
func_80AEADD8(this);
}
@ -1984,7 +1960,6 @@ void func_80AEF5B8(EnRu1* this) {
}
void func_80AEF624(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
f32 frameCount;
CsCmdActorAction* csCmdNPCAction;
CsCmdActorAction* csCmdNPCAction2;
@ -1995,23 +1970,23 @@ void func_80AEF624(EnRu1* this, GlobalContext* globalCtx) {
// this weird part with the redundant variable is necessary to match for some reason
csCmdNPCAction2 = globalCtx->csCtx.npcActions[3];
csCmdNPCAction = csCmdNPCAction2;
thisx->world.pos.x = csCmdNPCAction->startPos.x;
thisx->world.pos.y = csCmdNPCAction->startPos.y;
thisx->world.pos.z = csCmdNPCAction->startPos.z;
this->actor.world.pos.x = csCmdNPCAction->startPos.x;
this->actor.world.pos.y = csCmdNPCAction->startPos.y;
this->actor.world.pos.z = csCmdNPCAction->startPos.z;
newRotTmp = csCmdNPCAction->rot.x;
thisx->shape.rot.x = newRotTmp;
thisx->world.rot.x = newRotTmp;
this->actor.shape.rot.x = newRotTmp;
this->actor.world.rot.x = newRotTmp;
newRotTmp = csCmdNPCAction->rot.y;
thisx->shape.rot.y = newRotTmp;
thisx->world.rot.y = newRotTmp;
this->actor.shape.rot.y = newRotTmp;
this->actor.world.rot.y = newRotTmp;
newRotTmp = csCmdNPCAction->rot.z;
thisx->shape.rot.z = newRotTmp;
thisx->world.rot.z = newRotTmp;
this->actor.shape.rot.z = newRotTmp;
this->actor.world.rot.z = newRotTmp;
Animation_Change(&this->skelAnime, &D_060063F4, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f);
func_80AEB3A4(this, globalCtx);
this->action = 37;
this->drawConfig = 1;
thisx->shape.shadowAlpha = 0xFF;
this->actor.shape.shadowAlpha = 0xFF;
}
}
@ -2055,12 +2030,10 @@ void func_80AEF890(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEF930(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if (func_80AEB104(this) == 3) {
thisx->flags |= 9;
thisx->textId = 0x4048;
func_8010B720(globalCtx, thisx->textId);
this->actor.flags |= 9;
this->actor.textId = 0x4048;
func_8010B720(globalCtx, this->actor.textId);
func_80AEF4A8(this, globalCtx);
this->action = 43;
this->drawConfig = 0;
@ -2139,16 +2112,14 @@ void func_80AEFC24(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEFC54(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if ((gSaveContext.infTable[20] & 0x20) && (!(gSaveContext.infTable[20] & 0x40))) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
this->action = 41;
this->unk_28C = func_80AEB088(globalCtx);
func_80AEB0EC(this, 1);
thisx->flags &= ~0x9;
this->actor.flags &= ~0x9;
} else {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
}
@ -2162,28 +2133,24 @@ void func_80AEFCE8(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEFD38(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if ((gSaveContext.eventChkInf[3] & 0x80) && (gSaveContext.linkAge == 1)) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
thisx->flags &= ~0x10;
this->actor.flags &= ~0x10;
this->action = 44;
this->drawConfig = 1;
} else {
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
}
s32 func_80AEFDC0(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
if (!func_8002F194(thisx, globalCtx)) {
thisx->flags |= 9;
thisx->textId = Text_GetFaceReaction(globalCtx, 0x1F);
if (thisx->textId == 0) {
thisx->textId = 0x402C;
if (!func_8002F194(&this->actor, globalCtx)) {
this->actor.flags |= 9;
this->actor.textId = Text_GetFaceReaction(globalCtx, 0x1F);
if (this->actor.textId == 0) {
this->actor.textId = 0x402C;
}
func_8002F2F4(thisx, globalCtx);
func_8002F2F4(&this->actor, globalCtx);
return 0;
}
return 1;
@ -2227,23 +2194,24 @@ void func_80AEFF40(EnRu1* this, GlobalContext* globalCtx) {
}
void func_80AEFF94(EnRu1* this, GlobalContext* globalCtx) {
Actor* thisx = &this->actor;
s8 actorRoom;
if ((gSaveContext.infTable[20] & 2) && (gSaveContext.infTable[20] & 1) && (!(gSaveContext.infTable[20] & 0x20)) &&
(!(func_80AEB020(this, globalCtx)))) {
func_80AEB264(this, &D_060097B8, 0, 0, 0);
actorRoom = thisx->room;
actorRoom = this->actor.room;
this->action = 22;
thisx->room = -1;
this->actor.room = -1;
this->drawConfig = 0;
this->roomNum1 = actorRoom;
this->roomNum3 = actorRoom;
this->roomNum2 = actorRoom;
// Ruto switch set
osSyncPrintf("スイッチルトセット!!!!!!!!!!!!!!!!!!!!!!\n");
} else {
// Ruto switch not set
osSyncPrintf("スイッチルトセットしない!!!!!!!!!!!!!!!!!!!!!!\n");
Actor_Kill(thisx);
Actor_Kill(&this->actor);
}
}
@ -2258,7 +2226,8 @@ void func_80AF0050(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_Update(Actor* thisx, GlobalContext* globalCtx) {
EnRu1* this = THIS;
if (this->action < 0 || this->action >= 46 || sActionFuncs[this->action] == NULL) {
if (this->action < 0 || this->action >= ARRAY_COUNT(sActionFuncs) || sActionFuncs[this->action] == NULL) {
// Main mode is improper!
osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
return;
}
@ -2266,12 +2235,12 @@ void EnRu1_Update(Actor* thisx, GlobalContext* globalCtx) {
}
void EnRu1_Init(Actor* thisx, GlobalContext* globalCtx) {
EnRu1* this = THIS;
s32 pad;
EnRu1* this = THIS;
ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06012700, NULL, this->jointTable, this->morphTable, 17);
func_80AEAD20(this, globalCtx);
func_80AEAD20(&this->actor, globalCtx);
switch (func_80AEADF0(this)) {
case 0:
func_80AECDA0(this, globalCtx);
@ -2298,7 +2267,8 @@ void EnRu1_Init(Actor* thisx, GlobalContext* globalCtx) {
func_80AF0050(this, globalCtx);
break;
default:
Actor_Kill(thisx);
Actor_Kill(&this->actor);
// Relevant arge_data = %d unacceptable
osSyncPrintf("該当 arge_data = %d 無し\n", func_80AEADF0(this));
break;
}
@ -2325,6 +2295,7 @@ s32 EnRu1_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
EnRu1* this = THIS;
if ((this->unk_290 < 0) || (this->unk_290 > 0) || (*sPreLimbDrawFuncs[this->unk_290] == NULL)) {
// Neck rotation mode is improper!
osSyncPrintf(VT_FGCOL(RED) "首回しモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
} else {
sPreLimbDrawFuncs[this->unk_290](this, globalCtx, limbIndex, rot);
@ -2405,7 +2376,8 @@ void func_80AF05D4(EnRu1* this, GlobalContext* globalCtx) {
void EnRu1_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnRu1* this = THIS;
if (this->drawConfig < 0 || this->drawConfig >= 3 || sDrawFuncs[this->drawConfig] == 0) {
if (this->drawConfig < 0 || this->drawConfig >= ARRAY_COUNT(sDrawFuncs) || sDrawFuncs[this->drawConfig] == 0) {
// Draw mode is improper!
osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
return;
}