Merge branch 'master' into gyorg

This commit is contained in:
Ibot02
2022-01-09 20:46:03 +01:00
1301 changed files with 26072 additions and 28415 deletions
+2 -3
View File
@@ -1,6 +1,5 @@
#include "global.h"
#include "entity.h"
#include "overworld.h"
#include "game.h"
void Archway(Entity* this) {
if (this->action == 0) {
@@ -9,7 +8,7 @@ void Archway(Entity* this) {
this->frameIndex = this->type2;
this->collisionLayer = 2;
UpdateSpriteForCollisionLayer(this);
if (CheckIsDungeon()) {
if (AreaIsDungeon()) {
this->spritePriority.b0 = 1;
}
}
+3 -4
View File
@@ -1,5 +1,4 @@
#include "object.h"
#include "functions.h"
extern void (*const gUnk_08121EA4[])(Entity*);
extern const u8 gUnk_08121EB0[];
@@ -18,8 +17,8 @@ void sub_0808F658(Entity* this) {
this->frameIndex = this->type;
this->direction = 8;
this->speed = gUnk_08121EB0[this->type];
this->field_0x78.HWORD = gRoomControls.roomOriginX - 0x60;
this->field_0x7a.HWORD = gRoomControls.roomOriginX + gRoomControls.width + 0x60;
this->field_0x78.HWORD = gRoomControls.origin_x - 0x60;
this->field_0x7a.HWORD = gRoomControls.origin_x + gRoomControls.width + 0x60;
this->animationState = 0;
this->x.HALF.HI += (Random() & 0xf) << 4;
this->actionDelay = 0;
@@ -27,7 +26,7 @@ void sub_0808F658(Entity* this) {
}
void sub_0808F6E0(Entity* this) {
sub_0806F69C(this);
LinearMoveUpdate(this);
if ((s16)this->x.HALF.HI < (s16)this->field_0x78.HWORD || (s16)this->x.HALF.HI > (s16)this->field_0x7a.HWORD)
this->action = 2;
+4 -4
View File
@@ -1,6 +1,6 @@
#include "object.h"
extern void sub_0800449C(Entity*, u32);
extern void SoundReqClipped(Entity*, u32);
extern u32 sub_0806FC80(Entity*, Entity*, s32);
extern void sub_0809CDF0(Entity*);
@@ -61,7 +61,7 @@ void sub_0809CD0C(Entity* this) {
sub_0806FC80(this, &gPlayerEntity, 4)) {
this->field_0xf++;
ModHealth(-2);
sub_0800449C(&gPlayerEntity, 0x7a);
SoundReqClipped(&gPlayerEntity, 0x7a);
gPlayerEntity.iframes = 16;
gPlayerEntity.knockbackDirection = 16;
gPlayerEntity.knockbackDuration = 12;
@@ -85,8 +85,8 @@ void sub_0809CDB4(Entity* this) {
void sub_0809CDF0(Entity* this) {
u32 y;
this->field_0x80.HWORD = (((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3f) |
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4 & 0x3f) << 6);
this->field_0x80.HWORD = (((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3f) |
(((this->y.HALF.HI - gRoomControls.origin_y) >> 4 & 0x3f) << 6);
y = this->field_0x80.HWORD;
SetTile(0x402e, y - 0x01, this->collisionLayer);
+1 -2
View File
@@ -3,7 +3,6 @@
#include "flags.h"
#include "object.h"
#include "functions.h"
#include "effects.h"
extern void sub_08098E3C(Entity*);
extern void sub_08098E88(Entity*);
@@ -67,7 +66,7 @@ void sub_08098DC4(Entity* this) {
sub_08004542(&gPlayerEntity);
gPlayerEntity.collisionLayer = 1;
ResolveEntityOnTop(this, &gPlayerEntity);
gPlayerState.playerAction = 0x1f;
gPlayerState.queued_action = PLAYER_PARACHUTE;
gPlayerState.field_0x34[4] = 1;
gPlayerState.field_0x34[5] = this->type2;
this->action = 4;
+5 -4
View File
@@ -1,6 +1,7 @@
#include "save.h"
#include "object.h"
#include "functions.h"
#include "item.h"
extern void (*const gUnk_08123EC0[])(Entity*);
extern void (*const gUnk_08123EEC[])(Entity*);
@@ -29,7 +30,7 @@ void sub_0809CF54(Entity* this) {
this->speed = 0x280;
this->direction = 8;
this->collisionLayer = 2;
this->x.HALF.HI = gRoomControls.roomScrollX;
this->x.HALF.HI = gRoomControls.scroll_x;
SoundReq(SFX_123);
UpdateSpriteForCollisionLayer(this);
InitAnimationForceUpdate(this, 0);
@@ -43,13 +44,13 @@ void sub_0809CF54(Entity* this) {
void sub_0809CFEC(Entity* this) {
sub_0806F69C(this);
sub_08003FC4(this, *(s16*)&this->field_0x68.HWORD);
LinearMoveUpdate(this);
GravityUpdate(this, *(s16*)&this->field_0x68.HWORD);
if (this->actionDelay != 0) {
if (--this->actionDelay == 0) {
this->field_0xf = 0;
}
} else if (sub_080040A8(this) == 0) {
} else if (CheckOnScreen(this) == 0) {
DeleteThisEntity();
}
UpdateAnimationSingleFrame(this);
+6 -6
View File
@@ -1,7 +1,7 @@
#include "object.h"
#include "functions.h"
#include "script.h"
#include "textbox.h"
#include "message.h"
#include "item.h"
extern void (*const BookActionFuncs[])(Entity*);
extern s8 const gUnk_08123D94[];
@@ -55,7 +55,7 @@ void sub_0809B3C4(Entity* this) {
u32 scroll;
u32 height;
this->action = 3;
scroll = (u16)gRoomControls.roomScrollY - 0x10;
scroll = (u16)gRoomControls.scroll_y - 0x10;
height = (u16)this->y.HALF.HI - scroll;
this->z.HALF.HI -= height;
return;
@@ -92,8 +92,8 @@ void sub_0809B4A8(Entity* this) {
this->direction = 16;
gPlayerState.pushedObject = 0x9e;
gPlayerState.playerAction = 5;
gPlayerState.flags |= 1;
gPlayerState.queued_action = PLAYER_PUSH;
gPlayerState.flags |= PL_BUSY;
gPlayerEntity.x.HALF.LO = 0;
gPlayerEntity.y.HALF.LO = 0;
@@ -117,7 +117,7 @@ void sub_0809B524(Entity* this) {
}
}
sub_0806F69C(this);
LinearMoveUpdate(this);
}
void sub_0809B56C(Entity* this) {
+13 -14
View File
@@ -16,8 +16,8 @@ void sub_08081AE0(Entity* this) {
if (this->cutsceneBeh.HWORD != 0) {
this->collisionLayer = this->cutsceneBeh.HWORD;
}
this->field_0x74.HWORD = (((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) |
((((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) << 6);
this->field_0x74.HWORD = (((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3F) |
((((this->y.HALF.HI - gRoomControls.origin_y) >> 4) & 0x3F) << 6);
this->field_0x70.HALF.HI = GetTileType(this->field_0x74.HWORD, this->collisionLayer);
if (this->type == 0 && CheckFlags(this->field_0x86.HWORD)) {
this->action = 5;
@@ -39,7 +39,6 @@ void sub_08081B84(Entity* this) {
}
u32 sub_08081CB0(Entity*);
void RequestPriorityDuration(Entity*, u32);
void sub_08081FF8(Entity*);
void sub_08081BAC(Entity* this) {
@@ -138,7 +137,7 @@ u32 sub_08081D28(Entity* this) {
}
extern u32 sub_080002E0(u32, u32);
extern Entity* gUnk_03004040[3];
extern Entity* gPlayerClones[3];
u32 sub_08081E0C(Entity*);
Entity* sub_08081D74(Entity* this) {
@@ -148,17 +147,17 @@ Entity* sub_08081D74(Entity* this) {
}
ent = 0;
if (sub_08081E0C(this)) {
if (!(gPlayerState.flags & 0x10) && !(gPlayerState.flags & PL_MINISH)) {
if ((gPlayerState.flags & PL_CAPTURED) == 0 && (gPlayerState.flags & PL_MINISH) == 0) {
ent = &gPlayerEntity;
}
} else {
if (gPlayerState.flags & 0x400000) {
if (EntityInRectRadius(this, gUnk_03004040[0], 5, 6)) {
ent = gUnk_03004040[0];
} else if (EntityInRectRadius(this, gUnk_03004040[1], 5, 6)) {
ent = gUnk_03004040[1];
} else if (EntityInRectRadius(this, gUnk_03004040[2], 5, 6)) {
ent = gUnk_03004040[2];
if (gPlayerState.flags & PL_CLONING) {
if (EntityInRectRadius(this, gPlayerClones[0], 5, 6)) {
ent = gPlayerClones[0];
} else if (EntityInRectRadius(this, gPlayerClones[1], 5, 6)) {
ent = gPlayerClones[1];
} else if (EntityInRectRadius(this, gPlayerClones[2], 5, 6)) {
ent = gPlayerClones[2];
}
}
}
@@ -272,8 +271,8 @@ void sub_08081FF8(Entity* this) {
direction = GetFacingDirection(this->child, this);
sub_080044AE(this->child, 0x200, direction);
for (i = 0; i < 3; i++) {
if (gUnk_03004040[i]) {
sub_080044AE(gUnk_03004040[i], 0x200, direction);
if (gPlayerClones[i]) {
sub_080044AE(gPlayerClones[i], 0x200, direction);
}
}
}
+15 -13
View File
@@ -2,6 +2,8 @@
#include "structures.h"
#include "functions.h"
void sub_0809F814(u32 r0);
extern void sub_0809F7BC(Entity*);
extern void sub_0809F7F4(Entity*);
extern void (*gUnk_08124798[])(Entity*);
@@ -30,7 +32,7 @@ void sub_0809F514(Entity* this) {
this->actionDelay = 120;
this->spriteSettings.draw = 0;
this->field_0x68.HALF.LO = 12;
gRoomControls.cameraTarget = this;
gRoomControls.camera_target = this;
gUnk_02034490[0] = 255;
sub_0809F7BC(this);
}
@@ -41,10 +43,10 @@ void sub_0809F548(Entity* this) {
this->action = 2;
this->actionDelay = 90;
SoundReq(SFX_11D);
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
sub_0809F814((((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 63) |
(((this->y.HALF.HI - gRoomControls.origin_y) >> 4) & 63) << 6);
} else {
if ((gScreenTransition.frameCount & 7) == 0) {
if ((gRoomTransition.frameCount & 7) == 0) {
sub_0809F7BC(this);
}
sub_0809F7F4(this);
@@ -75,13 +77,13 @@ void sub_0809F5F0(Entity* this) {
this->actionDelay = 120;
SetPlayerControl(3);
sub_08078B48();
gRoomControls.cameraTarget = this;
gRoomControls.camera_target = this;
}
}
void sub_0809F61C(Entity* this) {
if ((gRoomControls.unk6 & 4) == 0) {
if ((gRoomControls.scroll_flags & 4) == 0) {
if (this->actionDelay == 30) {
SetLocalFlag(this->type2);
}
@@ -89,10 +91,10 @@ void sub_0809F61C(Entity* this) {
this->action = 3;
this->actionDelay = 120;
SoundReq(SFX_11D);
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
sub_0809F814((((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 63) |
(((this->y.HALF.HI - gRoomControls.origin_y) >> 4) & 63) << 6);
} else {
if ((gScreenTransition.frameCount & 7) == 0) {
if ((gRoomTransition.frameCount & 7) == 0) {
sub_0809F7BC(this);
}
sub_0809F7F4(this);
@@ -105,14 +107,14 @@ void sub_0809F69C(Entity* this) {
if (--this->actionDelay == 0) {
this->actionDelay = 30;
this->action = 4;
gRoomControls.cameraTarget = &gPlayerEntity;
gRoomControls.camera_target = &gPlayerEntity;
SoundReq(SFX_SECRET_BIG);
}
}
void sub_0809F6CC(Entity* this) {
if (((gRoomControls.unk6 & 4) == 0) && (--this->actionDelay == 0)) {
if (((gRoomControls.scroll_flags & 4) == 0) && (--this->actionDelay == 0)) {
gPlayerState.controlMode = 1;
DeleteThisEntity();
}
@@ -127,12 +129,12 @@ void sub_0809F700(Entity* this) {
this->actionDelay = (Random() & 30) + 8;
this->flags = this->flags | 12;
}
if ((gScreenTransition.frameCount & 3) == 0) {
if ((gRoomTransition.frameCount & 3) == 0) {
uVar2 = Random();
this->spriteOffsetX = gUnk_081247C0[uVar2 & 7];
this->spriteOffsetY = gUnk_081247C0[uVar2 >> 4 & 7];
}
sub_0806F69C(this);
LinearMoveUpdate(this);
if (--this->actionDelay == 0) {
DeleteThisEntity();
}
+8 -10
View File
@@ -1,9 +1,7 @@
#include "object.h"
#include "main.h"
#include "menu.h"
#include "npc.h"
#include "fileScreen.h"
#include "structures.h"
#include "fileselect.h"
#include "functions.h"
extern int sub_0807A094(int);
@@ -177,7 +175,7 @@ void sub_0808EA28(Entity* this) {
u32 var1;
if (this->type == 3) {
if (gSaveHeader->gameLanguage > LANGUAGE_EN) {
if (gSaveHeader->language > LANGUAGE_EN) {
this->spriteSettings.draw = 2;
} else {
this->spriteSettings.draw = 0;
@@ -296,7 +294,7 @@ void sub_0808EBB8(Entity* this) {
case 0:
break;
case 1:
y = ((struct_02000000*)0x2000000)->gameLanguage * 16 + 24;
y = ((SaveHeader*)0x2000000)->language * 16 + 24;
x = 112;
break;
case 2:
@@ -321,7 +319,7 @@ void sub_0808EBB8(Entity* this) {
}
static Entity* sub_0808EC80(int form) {
Entity* entityA = (Entity*)&gUnk_03003DA0;
Entity* entityA = (Entity*)&gEntityLists[6];
Entity* entityB = entityA->next;
while (entityB != entityA) {
if ((entityB->kind == 0x6 && entityB->id == 0x48) && form == entityB->type) {
@@ -404,7 +402,7 @@ void sub_0808ED98(Entity* this) {
void sub_0808EE00(Entity* this) {
int var0, var1, var2;
var0 = ((struct_02000000*)0x2000000)->gameLanguage != 0;
var0 = ((SaveHeader*)0x2000000)->language != 0;
var1 = this->type - 10;
this->frameIndex = gUnk_08121D38[var0][var1];
this->x.HALF.HI = gUnk_08121D18[var0][var1];
@@ -454,9 +452,9 @@ void sub_0808EF24(Entity* this) {
} else {
this->spriteSettings.draw = 2;
if (this->type == 21) {
var0 = ((struct_02000000*)0x2000000)->messageSpeed;
var0 = ((SaveHeader*)0x2000000)->msg_speed;
} else {
var0 = ((struct_02000000*)0x2000000)->brightnessPref;
var0 = ((SaveHeader*)0x2000000)->brightness;
}
this->frameIndex = this->lastFrameIndex + var0;
}
@@ -506,7 +504,7 @@ static u32 sub_0808EF6C(Entity* this) {
}
this->speed = var7;
this->direction = sub_080045DA(var0, var2) >> 3;
sub_0806F69C(this);
LinearMoveUpdate(this);
return 1;
}
+1 -2
View File
@@ -1,10 +1,9 @@
#include "object.h"
#include "script.h"
#include "functions.h"
extern void (*gUnk_08123D98[])(Entity*);
void sub_0809B7A0(Entity* e);
void sub_0809B7A0(Entity* this);
void sub_0809B7DC(Entity* this);
void sub_0809B7C0(Entity* this);
+2 -2
View File
@@ -22,8 +22,8 @@ void sub_0808D618(Entity* ent) {
u32 i;
arr = (ent->type != 0) ? gUnk_0812176A : gUnk_08121750;
tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) |
((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64);
tilePos = (((ent->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3F) |
((((ent->y.HALF.HI - gRoomControls.origin_y) >> 4) & 0x3F) * 64);
for (i = 0; i < 13; i++) {
SetTile(16500, tilePos + arr[i], 1);
+10 -11
View File
@@ -1,13 +1,12 @@
#include "object.h"
#include "save.h"
#include "script.h"
#include "structures.h"
#include "functions.h"
#include "screen.h"
void GreatFairy_InitializeAnimation(Entity*);
Entity* GreatFairy_CreateForm(Entity*, u32, u32);
void sub_080873D0();
void sub_080873D0(Entity*);
extern void (*const GreatFairy_Main[])(Entity*);
extern void (*const GreatFairy_Behaviors[])(Entity*);
extern void (*const GreatFairy_WingsBehaviors[])(Entity*);
@@ -53,12 +52,12 @@ void GreatFairy(Entity* this) {
void GreatFairy_CallBehavior(Entity* this) {
GreatFairy_Behaviors[this->action](this);
if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < 168) {
if ((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) < 168) {
gRoomControls.cameraTarget = this;
gRoomControls.camera_target = this;
gRoomControls.unk5 = 2;
} else {
gRoomControls.cameraTarget = &gPlayerEntity;
gRoomControls.camera_target = &gPlayerEntity;
gRoomControls.unk5 = 2;
}
}
@@ -120,7 +119,7 @@ void GreatFairy_SpawningUpdate(Entity* this) {
mini = GreatFairy_CreateForm(this, WAKE, 0); //???
if (mini != NULL) {
CopyPosition(this, mini);
DoFade(6, 4);
SetFade(6, 4);
SoundReq(SFX_145);
this->action = 4;
this->actionDelay = 60;
@@ -422,7 +421,7 @@ void sub_080871F8(Entity* this) {
this->action = 2;
} else {
this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, temp->x.HALF.HI, temp->y.HALF.HI - 32);
sub_0806F69C(this);
LinearMoveUpdate(this);
}
}
@@ -437,7 +436,7 @@ void sub_08087240(Entity* this) {
void sub_08087264(Entity* this) {
if (this->actionDelay != 0) {
this->actionDelay--;
sub_0806F69C(this);
LinearMoveUpdate(this);
}
}
@@ -464,7 +463,7 @@ void sub_080872AC(Entity* this) {
void sub_080872F8(Entity* this) {
s32 temp;
sub_0806F69C(this);
LinearMoveUpdate(this);
GetNextFrame(this);
if (((u16)(this->field_0x68.HWORD - this->x.HALF.HI) > 0xc) ||
((u16)(this->field_0x6a.HWORD - this->y.HALF.HI) > 0xc)) {
@@ -516,7 +515,7 @@ void sub_080873FC(void) {
Entity* ent;
SoundReq(SFX_APPARATE);
gRoomControls.cameraTarget = NULL;
gRoomControls.camera_target = NULL;
while (ent = FindEntityByID(0x6, 0x1b, 0x6), ent != NULL) {
DeleteEntity(ent);
@@ -526,7 +525,7 @@ void sub_080873FC(void) {
void sub_08087424(Entity* this, ScriptExecutionContext* context) {
Entity* ent;
sub_080791D0();
ResetPlayerAnimationAndAction();
ent = CreateObject(OBJECT_64, 0, 0);
if (ent != NULL) {
ent->parent = &gPlayerEntity;
+44 -44
View File
@@ -64,20 +64,20 @@ void sub_080A1704(GyorgBossObjectEntity* this) {
tmp->myHeap = heap;
heap->female = (GyorgFemaleEntity*)tmp;
tmp = CreateEnemy(GYORG_MALE, 0);
tmp->x.HALF.HI = gRoomControls.roomOriginX + 0x200;
tmp->x.HALF.HI = gRoomControls.origin_x + 0x200;
#ifdef EU
tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x380;
tmp->y.HALF.HI = gRoomControls.origin_y + 0x380;
#else
tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x330;
tmp->y.HALF.HI = gRoomControls.origin_y + 0x330;
#endif
tmp->myHeap = heap;
heap->male1 = (GyorgMaleEntity*)tmp;
tmp = CreateEnemy(GYORG_MALE, 1);
tmp->x.HALF.HI = gRoomControls.roomOriginX + 0x260;
tmp->x.HALF.HI = gRoomControls.origin_x + 0x260;
#ifdef EU
tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x360;
tmp->y.HALF.HI = gRoomControls.origin_y + 0x360;
#else
tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x310;
tmp->y.HALF.HI = gRoomControls.origin_y + 0x310;
#endif
tmp->myHeap = heap;
heap->male2 = (GyorgMaleEntity*)tmp;
@@ -89,13 +89,13 @@ void sub_080A1704(GyorgBossObjectEntity* this) {
this->unk_7a = 0;
this->unk_76 = 0xc0;
this->unk_78 = 0xc0;
gScreenTransition.field_0x39 = 1;
gRoomTransition.field_0x39 = 1;
gPlayerState.flags |= 0x20000;
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
#ifndef EU
SoundReq(0x80100000);
gArea.musicIndex = gArea.pMusicIndex;
gArea.bgm = gArea.queued_bgm;
#endif
}
@@ -105,8 +105,8 @@ void sub_080A184C(GyorgBossObjectEntity* this) {
this->unk_6c = 8;
((GyorgHeap*)super->myHeap)->female->base.health = 8;
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
}
void sub_080A189C(GyorgBossObjectEntity* this) {
@@ -118,10 +118,10 @@ void sub_080A189C(GyorgBossObjectEntity* this) {
this->unk_7b = 1;
((GyorgHeap*)super->myHeap)->male1->base.health = 0xC;
SoundReq(0x128);
sub_08080964(0x96, 1);
InitScreenShake(0x96, 1);
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
}
void sub_080A190C(GyorgBossObjectEntity* this) {
@@ -134,8 +134,8 @@ void sub_080A190C(GyorgBossObjectEntity* this) {
sub_080A1D70(this, ((GyorgHeap*)super->myHeap)->female->base.animationState);
((GyorgHeap*)super->myHeap)->female->base.health = 0x18;
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
} else {
gPlayerState.startPosX = ((GyorgHeap*)super->myHeap)->male1->base.x.HALF.HI;
gPlayerState.startPosY = ((GyorgHeap*)super->myHeap)->male1->base.y.HALF.HI;
@@ -151,10 +151,10 @@ void sub_080A1990(GyorgBossObjectEntity* this) {
this->unk_78 = 0x400;
this->unk_7b = 1;
SoundReq(0x128);
sub_08080964(0x96, 1);
InitScreenShake(0x96, 1);
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
}
void sub_080A19FC(GyorgBossObjectEntity* this) {
@@ -167,8 +167,8 @@ void sub_080A19FC(GyorgBossObjectEntity* this) {
sub_080A1D70(this, ((GyorgHeap*)super->myHeap)->female->base.animationState);
((GyorgHeap*)super->myHeap)->female->base.health = 0x18;
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
} else {
gPlayerState.startPosX = ((GyorgHeap*)super->myHeap)->male2->base.x.HALF.HI;
gPlayerState.startPosY = ((GyorgHeap*)super->myHeap)->male2->base.y.HALF.HI;
@@ -183,10 +183,10 @@ void sub_080A1A80(GyorgBossObjectEntity* this) {
this->unk_6c = 0x104;
this->unk_78 = 0x400;
SoundReq(SFX_BOSS_DIE);
sub_08080964(0x96, 1);
InitScreenShake(0x96, 1);
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
}
void sub_080A1AE8(GyorgBossObjectEntity* this) {
@@ -199,19 +199,19 @@ void sub_080A1AE8(GyorgBossObjectEntity* this) {
((GyorgHeap*)super->myHeap)->female->base.health = 0xC;
}
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
}
void sub_080A1B4C(GyorgBossObjectEntity* this) {
if (((GyorgHeap*)super->myHeap)->female->base.health == 0) {
if (this->unk_6c != 0) {
sub_08080964(0x2d, 1);
InitScreenShake(0x2d, 1);
SoundReq(SFX_BOSS_DIE);
this->unk_78 = 0x600;
}
this->unk_6c = 0;
gScreenTransition.field_0x39 = 0;
gRoomTransition.field_0x39 = 0;
if (sub_08079F8C() && gPlayerEntity.z.HALF.HI == 0) {
super->action = 9;
super->actionDelay = 0;
@@ -221,17 +221,17 @@ void sub_080A1B4C(GyorgBossObjectEntity* this) {
super->speed = 0x60;
gPlayerState.flags &= ~0x20000;
CopyPosition(&gPlayerEntity, super);
gRoomControls.cameraTarget = super;
gRoomControls.camera_target = super;
SetPlayerControl(2);
}
}
gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200;
gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210;
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
}
void sub_080A1C04(GyorgBossObjectEntity* this) {
if (this->unk_6e == 0) {
sub_0806F69C(super);
LinearMoveUpdate(super);
sub_080A1E54(this);
if (--super->field_0xf == 0) {
SetFlag(0x7B);
@@ -239,7 +239,7 @@ void sub_080A1C04(GyorgBossObjectEntity* this) {
return;
}
if (super->field_0xf == 0x3C) {
DoFade(7, 4);
SetFade(7, 4);
}
return;
}
@@ -250,11 +250,11 @@ void sub_080A1C04(GyorgBossObjectEntity* this) {
switch (this->unk_6e) {
case 0xb4:
SoundReq(SFX_BOSS_DIE);
sub_08080964(0x2d0, 2);
InitScreenShake(0x2d0, 2);
break;
case 0x12C:
SoundReq(SFX_BOSS_DIE);
sub_08080964(0x4b, 1);
InitScreenShake(0x4b, 1);
break;
}
}
@@ -341,8 +341,8 @@ void sub_080A1E54(GyorgBossObjectEntity* this) {
fx = CreateFx(super, 0x51, 0);
if (fx) {
u32 r = Random();
fx->x.HALF.HI = gRoomControls.roomOriginX + 0x200 + (r & 0xf0) - 0x78;
fx->y.HALF.HI = gRoomControls.roomOriginY + 0x210 + ((r >> 8) & 0x70) - 0x38;
fx->x.HALF.HI = gRoomControls.origin_x + 0x200 + (r & 0xf0) - 0x78;
fx->y.HALF.HI = gRoomControls.origin_y + 0x210 + ((r >> 8) & 0x70) - 0x38;
fx->spritePriority.b0 = 5;
fx->collisionLayer = 2;
UpdateSpriteForCollisionLayer(fx);
@@ -355,8 +355,8 @@ void sub_080A1ED0(u32 unk0, u32 unk1, u32 unk2) {
u32 i = 0;
s16* p;
u32 x, y;
x = gUnk_08124EF8[unk2 * 2] + gRoomControls.roomOriginX;
y = gUnk_08124EF8[unk2 * 2 + 1] + gRoomControls.roomOriginY;
x = gUnk_08124EF8[unk2 * 2] + gRoomControls.origin_x;
y = gUnk_08124EF8[unk2 * 2 + 1] + gRoomControls.origin_y;
p = gUnk_08124FF0[unk0];
while (*p != 1) {
GyorgChildEntity* tmp = (GyorgChildEntity*)CreateEnemy(GYORG_CHILD, unk1);
@@ -409,8 +409,8 @@ void sub_080A1FF0(GyorgBossObjectEntity* this) {
fx = CreateFx(super, 0x51, 0);
if (fx) {
u32 r = Random();
fx->x.HALF.HI = gRoomControls.roomOriginX + 0x200 + (r & 0x78) - 0x3C;
fx->y.HALF.HI = gRoomControls.roomOriginY + 0x210 + (r & 0x78) - 0x3C;
fx->x.HALF.HI = gRoomControls.origin_x + 0x200 + (r & 0x78) - 0x3C;
fx->y.HALF.HI = gRoomControls.origin_y + 0x210 + (r & 0x78) - 0x3C;
fx->spritePriority.b0 = 6;
fx->collisionLayer = 1;
UpdateSpriteForCollisionLayer(fx);
@@ -418,12 +418,12 @@ void sub_080A1FF0(GyorgBossObjectEntity* this) {
}
}
if (this->unk_7b) {
if (sub_0806FCB8(&gPlayerEntity, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) {
if (sub_0806FCB8(&gPlayerEntity, gRoomControls.origin_x + 0x200, gRoomControls.origin_y + 0x210, 0x100)) {
if (super->actionDelay == 0) {
super->actionDelay = 0x78;
} else {
if (super->actionDelay == 0x23) {
sub_08080964(0x1e, 0);
InitScreenShake(0x1e, 0);
}
}
} else {
+2 -2
View File
@@ -1,8 +1,8 @@
#include "global.h"
#include "audio.h"
#include "sound.h"
#include "entity.h"
#include "flags.h"
#include "functions.h"
#include "item.h"
static void sub_0808E6A0(Entity*);
static void sub_0808E6E4(Entity*);
+1 -1
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "asm.h"
#include "entity.h"
#include "functions.h"
#include "room.h"
#include "flags.h"
extern void (*const gUnk_08122604[])(Entity*);
+4 -4
View File
@@ -3,7 +3,7 @@
#include "flags.h"
#include "room.h"
#include "script.h"
#include "audio.h"
#include "sound.h"
#include "object.h"
#include "functions.h"
#include "npc.h"
@@ -58,8 +58,8 @@ void sub_080866D8(Entity* this) {
entity = CreateObject(HOUSE_DOOR_EXT, prop->unk7, prop->unk6);
if (entity) {
entity->field_0x6c.HALF.LO = i;
entity->x.HALF.HI = gRoomControls.roomOriginX + prop->unk0 + 16;
entity->y.HALF.HI = gRoomControls.roomOriginY + prop->unk2 + 32;
entity->x.HALF.HI = gRoomControls.origin_x + prop->unk0 + 16;
entity->y.HALF.HI = gRoomControls.origin_y + prop->unk2 + 32;
entity->parent = this;
entity->field_0x68.HWORD = prop->unk0;
entity->field_0x6a.HWORD = prop->unk2;
@@ -168,7 +168,7 @@ void sub_0808692C(Entity* this) {
static u8 sub_08086954(Entity* this) {
if (sub_0800445C(this)) {
if (sub_0806ED9C(this, 6, 20) >= 0 && gPlayerEntity.animationState == 0 &&
(u16)gPlayerState.field_0x90.HALF.LO == 0x400 && gPlayerState.jumpStatus == 0) {
(u16)gPlayerState.field_0x90 == 0x400 && gPlayerState.jump_status == 0) {
this->actionDelay--;
}
} else {
+25 -25
View File
@@ -1,10 +1,11 @@
#include "global.h"
#include "audio.h"
#include "sound.h"
#include "entity.h"
#include "flags.h"
#include "player.h"
#include "object.h"
#include "functions.h"
#include "item.h"
void sub_08081150(Entity*);
u8 sub_0808147C(u32);
@@ -17,7 +18,6 @@ void sub_080813BC(Entity*);
void sub_080810FC(Entity*);
bool32 CheckShouldPlayItemGetCutscene(Entity*);
extern u32 sub_080002D0(Entity*);
extern u32 sub_080177A0(Entity*, Entity*);
extern void GiveItem(u32, u32);
@@ -88,7 +88,7 @@ void sub_08080F20(Entity* this) {
DeleteThisEntity();
}
if (this->type != 0x60) {
if (this->type != ITEM_FAIRY) {
this->spriteSettings.draw = 1;
this->spritePriority.b1 = 3;
this->spriteSettings.shadow = 0;
@@ -98,16 +98,16 @@ void sub_08080F20(Entity* this) {
this->health = 0xFF;
this->hitbox = &gUnk_080FD1A8;
switch (this->type) {
case 0x3f:
case 0x54:
case 0x55:
case 0x56:
case 0x57:
case 0x58:
case 0x5c:
case 0x5d:
case 0x5e:
case 0x5f:
case ITEM_SHELLS:
case ITEM_RUPEE1:
case ITEM_RUPEE5:
case ITEM_RUPEE20:
case ITEM_RUPEE50:
case ITEM_RUPEE100:
case ITEM_KINSTONE:
case ITEM_BOMBS5:
case ITEM_ARROWS5:
case ITEM_HEART:
this->flags2 = 0x17;
break;
default:
@@ -125,12 +125,11 @@ void sub_08080F20(Entity* this) {
gUnk_0811E7E8[this->field_0x68.HALF.HI](this);
} else {
Entity* entity = CreateObject(FAIRY, 0x60, 0);
if (entity) {
if (entity != NULL) {
entity->actionDelay = 0;
if (this->actionDelay == 1) {
entity->type2 = 2;
}
CopyPosition(this, entity);
DeleteThisEntity();
}
@@ -154,12 +153,12 @@ void sub_080810A8(Entity* this) {
}
if (this->collisionLayer == 2) {
sub_08016A30(this);
ResolveCollisionLayer(this);
}
}
void sub_080810FC(Entity* this) {
if (this->type != 0x5F) {
if (this->type != ITEM_HEART) {
sub_08081598(this);
} else {
this->action = 2;
@@ -189,7 +188,7 @@ void sub_08081188(Entity* this) {
this->action = 2;
COLLISION_ON(this);
if (this->collisionLayer == 2) {
sub_08016A30(this);
ResolveCollisionLayer(this);
}
}
@@ -213,10 +212,10 @@ void sub_080811EC(Entity* this) {
if (this->field_0x68.HALF.HI != 6) {
sub_080AEFE0(this);
} else {
sub_0806F69C(this);
LinearMoveUpdate(this);
}
sub_08003FC4(this, 0x2800);
GravityUpdate(this, 0x2800);
if (this->zVelocity <= 0) {
this->action = 2;
COLLISION_ON(this);
@@ -270,9 +269,10 @@ void sub_080812A8(Entity* this) {
void sub_080812E8(Entity* this) {
PlayerState* playerState = &gPlayerState;
#ifdef EU
if ((playerState->swimState & 0x80) && sub_080177A0(this, &gPlayerEntity)) {
if ((playerState->swim_state & 0x80) && sub_080177A0(this, &gPlayerEntity)) {
#else
if ((playerState->swimState & 0x80) && !(playerState->flags & 0x80) && sub_080177A0(this, &gPlayerEntity)) {
if ((playerState->swim_state & 0x80) && (playerState->flags & PL_MINISH) == 0 &&
sub_080177A0(this, &gPlayerEntity)) {
#endif
sub_080810FC(this);
}
@@ -302,7 +302,7 @@ void sub_0808136C(Entity* this) {
this->y.WORD = other->y.WORD;
this->spriteOrientation.flipY = other->spriteOrientation.flipY;
this->spriteRendering.b3 = other->spriteRendering.b3;
sub_08003FC4(this, 0x2800);
GravityUpdate(this, 0x2800);
} else {
sub_08081404(this, 1);
}
@@ -410,14 +410,14 @@ void sub_0808153C(Entity* this) {
return;
if (this->field_0x68.HALF.LO == 0) {
if (!sub_08003FC4(this, 0x1000) && !sub_0800442E(this)) {
if (!GravityUpdate(this, 0x1000) && !sub_0800442E(this)) {
this->field_0x68.HALF.LO = 1;
this->zVelocity = 0x1E000;
sub_0808148C(this->type);
UpdateSpriteForCollisionLayer(this);
}
} else {
if (!sub_08003FC4(this, 0x2800)) {
if (!GravityUpdate(this, 0x2800)) {
this->field_0x68.HALF.LO = 2;
sub_0808148C(this->type);
}
+1 -1
View File
@@ -2,7 +2,7 @@
#include "entity.h"
#include "flags.h"
#include "room.h"
#include "audio.h"
#include "sound.h"
extern void sub_080A0960(Entity*, u32);
extern void sub_0801AF18(u8*, u32, u32);
+3 -3
View File
@@ -57,7 +57,7 @@ void sub_0808BF14(Entity* this) {
}
void sub_0808BF58(Entity* this) {
sub_08003FC4(this, 0x2000);
GravityUpdate(this, 0x2000);
switch (this->subAction) {
case 0:
if (this->zVelocity <= 98303) {
@@ -108,7 +108,7 @@ void sub_0808C01C(Entity* this, u32 r1) {
type = 2;
gArea.curPortalType = type;
if (r1 == 1) {
if (((gPlayerState.flags & 0x20) != 0) && (gPlayerState.jumpStatus == 0)) {
if ((gPlayerState.flags & PL_USE_PORTAL) && (gPlayerState.jump_status == 0)) {
gArea.field_0x18 = 2;
} else {
if (sub_08057810() != 0) {
@@ -125,7 +125,7 @@ void sub_0808C01C(Entity* this, u32 r1) {
}
void sub_0808C0AC(Entity* this) {
sub_08003FC4(this, 0x2000);
GravityUpdate(this, 0x2000);
switch (this->subAction) {
case 0:
if (this->zVelocity <= 98303) {
+3 -2
View File
@@ -1,5 +1,6 @@
#include "global.h"
#include "audio.h"
#include "asm.h"
#include "sound.h"
#include "entity.h"
#include "room.h"
#include "flags.h"
@@ -83,7 +84,7 @@ void sub_0809EB30(Entity* this) {
if (this->type2 != 0) {
if ((this->direction & 0x80) == 0) {
sub_0806F69C(this);
LinearMoveUpdate(this);
}
puVar2 = &this->field_0x74.HWORD;
if (!--*puVar2) {
+2 -1
View File
@@ -6,6 +6,7 @@ extern void sub_080A2CC0(Entity*, Entity**, u16*);
extern u16 gUnk_08123318[];
static void sub_08097B24(Entity* this);
static u32 sub_08097ADC(Entity* this);
void LilypadSmall(Entity* this) {
u32 rand;
@@ -30,7 +31,7 @@ void LilypadSmall(Entity* this) {
}
}
u32 sub_08097ADC(Entity* this) {
static u32 sub_08097ADC(Entity* this) {
if ((gPlayerState.flags & PL_MINISH) == 0) {
return 0;
} else if (EntityInRectRadius(this, &gPlayerEntity, 8, 8) == 0) {
+8 -7
View File
@@ -1,10 +1,12 @@
#include "global.h"
#include "asm.h"
#include "entity.h"
#include "flags.h"
#include "audio.h"
#include "sound.h"
#include "functions.h"
#include "effects.h"
#include "overworld.h"
#include "game.h"
#include "common.h"
void sub_08083338(Entity*);
void sub_080834B4(Entity*);
@@ -37,7 +39,6 @@ extern Hitbox gHitbox_2;
extern u32 sub_080001DA(u32, u32);
extern void sub_08078850(Entity*, u32, u32, u32);
extern void RequestPriorityDuration(Entity*, u32);
typedef struct PACKED {
s8 x;
@@ -126,7 +127,7 @@ void sub_08083338(Entity* this) {
if (!CheckFlags(this->field_0x86.HWORD)) {
this->frameIndex |= 4;
sub_080836DC(this, this->field_0x7c.BYTES.byte2, this->field_0x76.HWORD);
if (!CheckIsDungeon()) {
if (!AreaIsDungeon()) {
this->action = 5;
} else {
this->action = 8;
@@ -153,7 +154,7 @@ void sub_080834B4(Entity* this) {
}
void sub_080834EC(Entity* this) {
sub_0806F69C(this);
LinearMoveUpdate(this);
if (--this->actionDelay == 0) {
if (this->type & 0x80) {
sub_08083638(this);
@@ -171,7 +172,7 @@ void sub_08083518(Entity* this) {
}
void sub_08083540(Entity* this) {
sub_0806F69C(this);
LinearMoveUpdate(this);
if (!--this->actionDelay) {
if (this->type & 0x10) {
this->type &= ~0x10;
@@ -287,7 +288,7 @@ u32 sub_08083734(Entity* this, u32 unk0) {
u32 sub_080837B0(Entity* this) {
u32 tmp;
u32 tmp2 = gRoomControls.areaID;
u32 tmp2 = gRoomControls.area;
if (tmp2 < 0x40) {
switch (tmp2) {
default:
+1 -2
View File
@@ -1,5 +1,4 @@
#include "object.h"
#include "structures.h"
#include "functions.h"
extern void (*MaskActionFuncs[])(Entity*);
@@ -21,7 +20,7 @@ void sub_080929A4(Entity* this) {
switch (this->type2 & 0xC0) {
case 0x40:
field_0x0a = gScreenTransition.stairs_idx;
field_0x0a = gRoomTransition.stairs_idx;
switch (field_0x0a) {
case 0x44D ... 0x44F:
+4 -3
View File
@@ -1,8 +1,9 @@
#include "global.h"
#include "asm.h"
#include "entity.h"
#include "room.h"
#include "flags.h"
#include "audio.h"
#include "sound.h"
#include "functions.h"
#include "effects.h"
@@ -50,7 +51,7 @@ void sub_080A074C(Entity* this) {
u8 bVar1;
Entity* ent;
sub_0806F69C(this);
LinearMoveUpdate(this);
if (--this->actionDelay == 0) {
this->action = 3;
@@ -84,7 +85,7 @@ void sub_080A07BC(Entity* this) {
void sub_080A07F0(Entity* this) {
sub_0806F69C(this);
LinearMoveUpdate(this);
if (--this->actionDelay == 0) {
DeleteThisEntity();
+23 -34
View File
@@ -7,18 +7,8 @@ extern u32 sub_08007DD6(u32, u32);
extern void sub_08017744(Entity*);
extern void sub_08091C0C(Entity*);
typedef struct {
u16 field_0x0;
u16 field_0x2;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
} struct_030010EC;
extern void (*const gUnk_081223A8[])(Entity*);
extern struct_030010EC gUnk_030010EC[];
extern Hitbox gUnk_080FD310;
extern const s8 gUnk_081223C8[];
@@ -30,14 +20,14 @@ void Minecart(Entity* this) {
}
void sub_080916EC(Entity* this) {
struct_030010EC* unk = &gUnk_030010EC[this->actionDelay];
struct_030010EC* unk = &gRoomTransition.minecart_data[this->actionDelay];
*(struct_030010EC**)&this->cutsceneBeh.HWORD = unk;
if ((gRoomControls.roomID != unk->field_0x4) || (gPlayerState.flags & 0x1000) != 0) {
if ((gRoomControls.room != unk->field_0x4) || (gPlayerState.flags & PL_IN_MINECART) != 0) {
DeleteThisEntity();
}
this->x.HALF.HI = gRoomControls.roomOriginX + ((unk->field_0x0 & 0x3f) << 4) + 8;
this->y.HALF.HI = gRoomControls.roomOriginY + ((unk->field_0x0 & 0xfc << 4) >> 2) + 8;
this->x.HALF.HI = gRoomControls.origin_x + ((unk->field_0x0 & 0x3f) << 4) + 8;
this->y.HALF.HI = gRoomControls.origin_y + ((unk->field_0x0 & 0xfc << 4) >> 2) + 8;
this->animationState = unk->field_0x5;
this->type2 = unk->field_0x6;
this->action = 1;
@@ -55,7 +45,6 @@ void sub_080916EC(Entity* this) {
}
void sub_080917DC(Entity* this) {
if ((this->bitfield & 0x7f) == 0x1d) {
this->zVelocity = 0x2a000;
this->action = 7;
@@ -63,8 +52,8 @@ void sub_080917DC(Entity* this) {
SoundReq(SFX_13B);
} else {
if (sub_0800445C(this) != 0) {
if (((gPlayerState.flags & 0x40080) == 0) && (gPlayerState.field_0x1c == 0) &&
(gPlayerState.heldObject == 0) && (gPlayerState.jumpStatus == 0)) {
if (!((gPlayerState.flags & (PL_MINISH | PL_ROLLING)) || gPlayerState.field_0x1c ||
gPlayerState.heldObject || gPlayerState.jump_status)) {
this->actionDelay++;
} else {
this->actionDelay = 0;
@@ -73,15 +62,15 @@ void sub_080917DC(Entity* this) {
this->actionDelay = 0;
}
if (this->type2 == 0) {
if (8 < this->actionDelay) {
this->action = this->action + 1;
gPlayerState.jumpStatus = 0x81;
gPlayerState.flags |= 0x4000000;
if (this->actionDelay > 8) {
this->action++;
gPlayerState.jump_status = 0x81;
gPlayerState.flags |= PL_ENTER_MINECART;
gPlayerEntity.zVelocity = 0x20000;
gPlayerEntity.speed = 0x100;
gPlayerEntity.flags &= 0x7f;
gPlayerEntity.flags &= ~PL_MINISH;
ResetPlayer();
sub_0807A108();
DeleteClones();
SoundReq(SFX_PLY_JUMP);
}
} else {
@@ -95,14 +84,14 @@ void sub_080918A4(Entity* this) {
gPlayerEntity.x.HALF.HI = this->x.HALF.HI;
gPlayerEntity.y.HALF.HI = this->y.HALF.HI;
if (gPlayerEntity.z.HALF.HI > -0x10) {
if ((s32)gPlayerEntity.zVelocity > -1) {
if (gPlayerEntity.zVelocity >= 0) {
return;
}
gPlayerEntity.animationState = this->animationState << 1;
gPlayerState.flags = (gPlayerState.flags ^ 0x4000000) | 0x1000;
gPlayerState.flags = (gPlayerState.flags ^ PL_ENTER_MINECART) | PL_IN_MINECART;
this->action++;
this->field_0xf = 1;
this->flags |= ENT_20;
this->flags |= ENT_PERSIST;
this->hitType = 0x97;
this->field_0x3c = (gPlayerEntity.field_0x3c + 1) | 0x20;
this->flags2 = gPlayerEntity.flags2;
@@ -125,7 +114,7 @@ void sub_080919AC(Entity* this) {
u32 uVar3;
gRoomControls.unk5 = 7;
if ((gPlayerState.flags & 0x1000) == 0) {
if ((gPlayerState.flags & PL_IN_MINECART) == 0) {
this->action = 1;
return;
}
@@ -141,11 +130,11 @@ void sub_080919AC(Entity* this) {
} else {
COLLISION_ON(this);
gPlayerEntity.speed = 0;
sub_0806F69C(this);
LinearMoveUpdate(this);
CopyPosition(this, &gPlayerEntity);
gPlayerEntity.spritePriority.b0 = this->spritePriority.b0 - 1;
if (!sub_08091DDC(this)) {
if ((gScreenTransition.frameCount & 0xf) == 0) {
if ((gRoomTransition.frameCount & 0xf) == 0) {
SoundReq(SFX_138);
}
@@ -158,25 +147,25 @@ void sub_080919AC(Entity* this) {
gUnk_081223C8[this->animationState * 2 + 1]);
iVar2 = sub_08007DD6(uVar3, gUnk_081223D8[this->animationState]);
if (iVar2 == 0) {
this->direction = this->direction ^ 0x10;
this->direction = DirectionTurnAround(this->direction);
this->animationState = this->animationState ^ 2;
} else {
switch (uVar3) {
case 0x64:
this->flags &= ~ENT_20;
this->flags &= ~ENT_PERSIST;
this->hitType = 1;
this->field_0x3c = 0x47;
this->hurtType = 0x44;
this->flags2 = 0x80;
this->action = 6;
sub_08017744(this);
gPlayerState.jumpStatus = 0x41;
gPlayerState.flags = (gPlayerState.flags ^ 0x1000) | 0x4000000;
gPlayerState.jump_status = 0x41;
gPlayerState.flags = (gPlayerState.flags ^ PL_IN_MINECART) | PL_ENTER_MINECART;
gPlayerEntity.zVelocity = 0x20000;
gPlayerEntity.speed = 0x200;
gPlayerEntity.animationState = this->animationState << 1;
gPlayerEntity.direction = this->direction;
gPlayerEntity.flags |= 0x80;
gPlayerEntity.flags |= PL_MINISH;
sub_08004168(this);
InitAnimationForceUpdate(this, this->animationState + 0xc);
SoundReq(SFX_PLY_VO4);
-1
View File
@@ -1,4 +1,3 @@
#include "global.h"
#include "entity.h"
extern void (*const gUnk_081247F8[])(Entity*);
+2 -3
View File
@@ -1,6 +1,5 @@
#include "global.h"
#include "entity.h"
#include "overworld.h"
#include "game.h"
void MinishSizedArchway(Entity* this) {
if (this->action == 0) {
@@ -8,7 +7,7 @@ void MinishSizedArchway(Entity* this) {
this->frameIndex = this->type;
this->collisionLayer = 2;
UpdateSpriteForCollisionLayer(this);
if (CheckIsDungeon()) {
if (AreaIsDungeon()) {
this->spritePriority.b0 = 1;
}
}
+3 -3
View File
@@ -1,5 +1,5 @@
#include "object.h"
#include "overworld.h"
#include "game.h"
#include "functions.h"
extern void (*const gUnk_08122254[])(Entity*);
@@ -14,7 +14,7 @@ void sub_08090EC0(Entity* this) {
this->spriteRendering.b3 = 3;
this->spritePriority.b0 = 7;
this->frameIndex = this->type2;
if (CheckIsDungeon()) {
if (AreaIsDungeon()) {
this->frameIndex += 4;
sub_080AE068(this);
LoadFixedGFX(this, 0x184);
@@ -30,7 +30,7 @@ void sub_08090F00(Entity* this) {
}
}
if ((gPlayerState.flags & PL_MINISH) && EntityInRectRadius(this, &gPlayerEntity, 4, 4) &&
(gPlayerEntity.z.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) {
(gPlayerEntity.z.HALF.HI == 0) && (((u16)gPlayerState.field_0x90) & gUnk_0812225C[this->type2])) {
DoExitTransition(GetCurrentRoomProperty(this->actionDelay));
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
#include "object.h"
#include "functions.h"
extern void sub_08086A6C();
extern void sub_08086A6C(Entity*);
extern void (*gUnk_081206C4[99])(Entity*);
-1
View File
@@ -1,4 +1,3 @@
#include "global.h"
#include "entity.h"
extern void (*gUnk_081208A0[])(Entity*);
+1 -1
View File
@@ -1,5 +1,5 @@
#include "global.h"
#include "audio.h"
#include "sound.h"
#include "entity.h"
#include "functions.h"
#include "flags.h"
+2 -3
View File
@@ -1,5 +1,4 @@
#include "object.h"
#include "structures.h"
#include "functions.h"
static void sub_0808F2B0(Entity*);
@@ -53,7 +52,7 @@ void sub_0808F0D0(Entity* this) {
void sub_0808F14C(Entity* this) {
sub_0808F2B0(this);
if (sub_08003FC4(this, 0x2000) == 0) {
if (GravityUpdate(this, 0x2000) == 0) {
this->action++;
SoundReq(SFX_WATER_SPLASH);
}
@@ -213,7 +212,7 @@ void sub_0808F498(Entity* this) {
if (this->action != 0) {
if (sub_0806F3E4(this)) {
if (gScreenTransition.frameCount % 16 == 0) {
if (gRoomTransition.frameCount % 16 == 0) {
SoundReq(SFX_EF);
}
DeleteThisEntity();
+55 -54
View File
@@ -2,9 +2,10 @@
#include "object.h"
#include "area.h"
#include "script.h"
#include "textbox.h"
#include "message.h"
#include "functions.h"
#include "screen.h"
#include "item.h"
extern u8 gUnk_08114F30[];
extern u8 gUnk_08114F34[];
@@ -104,7 +105,7 @@ Object6ATypeAction sub_08096290;
extern void sub_08080CB4(Entity*);
extern u32 sub_080002B8(Entity*);
extern u32 sub_080040A8(Entity*);
extern u32 CheckOnScreen(Entity*);
extern void sub_08078850(Entity*, u32, u32, u8*);
void sub_08095754(Object6AEntity*);
@@ -152,7 +153,7 @@ void sub_08094A90(Object6AEntity* this) {
}
void sub_08094AE8(Entity* this, ScriptExecutionContext* ctx) {
Object6AEntity* e = (Object6AEntity*)CreateObject(0x6A, 1, 0);
Object6AEntity* e = (Object6AEntity*)CreateObject(OBJECT_6A, 1, 0);
if (e != NULL) {
e->ctx = StartCutscene(&e->base, (void*)ctx->intVariable);
}
@@ -182,7 +183,7 @@ void sub_08094B80(Object6AEntity* this) {
}
void sub_08094B94(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x22, 0);
Entity* e = CreateObject(OBJECT_6A, 0x22, 0);
if (e != NULL) {
CopyPosition(&gPlayerEntity, e);
e->z.HALF.HI = -48;
@@ -194,7 +195,7 @@ void sub_08094B94(Object6AEntity* this) {
}
void sub_08094BE0(Entity* this) {
Entity* e = FindEntity(6, 0x6A, 6, 0x22, 0);
Entity* e = FindEntity(6, OBJECT_6A, 6, 0x22, 0);
if (e != NULL) {
CopyPosition(&gPlayerEntity, e);
e->z.HALF.HI = -12;
@@ -249,8 +250,8 @@ void sub_08094C88(Object6AEntity* this) {
void sub_08094CDC(Object6AEntity* this) {
Entity* e = CreateObject(0x6a, 3, 0x62);
if (e != NULL) {
e->x.HALF.HI = gRoomControls.roomOriginX + 224;
e->y.HALF.HI = gRoomControls.roomOriginY + 600;
e->x.HALF.HI = gRoomControls.origin_x + 224;
e->y.HALF.HI = gRoomControls.origin_y + 600;
SoundReq(324);
}
}
@@ -265,8 +266,8 @@ void sub_08094D10(Object6AEntity* this) {
void sub_08094D34(Object6AEntity* this) {
Entity* e = CreateObject(0x6a, 0x15, 0xd);
if (e != NULL) {
e->x.HALF.HI = gRoomControls.roomOriginX + 256;
e->y.HALF.HI = gRoomControls.roomOriginY + 600;
e->x.HALF.HI = gRoomControls.origin_x + 256;
e->y.HALF.HI = gRoomControls.origin_y + 600;
SoundReq(324);
}
}
@@ -298,8 +299,8 @@ void sub_08094D94(Object6AEntity* this) {
void sub_08094DD8(Object6AEntity* this) {
Entity* e = CreateObject(0x6a, 0x4, 0);
if (e != NULL) {
e->x.HALF.HI = gRoomControls.roomOriginX + 240;
e->y.HALF.HI = gRoomControls.roomOriginY + 600;
e->x.HALF.HI = gRoomControls.origin_x + 240;
e->y.HALF.HI = gRoomControls.origin_y + 600;
SoundReq(324);
}
}
@@ -313,11 +314,11 @@ void sub_08094E0C(Object6AEntity* this) {
void sub_08094E30(Object6AEntity* this) {
if (super->type2 == 0) {
if ((gScreenTransition.frameCount % 32) == 0) {
if ((gRoomTransition.frameCount % 32) == 0) {
Entity* e = CreateObject(0x6A, 5, 1);
if (e != NULL) {
e->x.HALF.HI = gRoomControls.roomScrollX + (s32)Random() % DISPLAY_WIDTH;
e->y.HALF.HI = gRoomControls.roomScrollY + (s32)Random() % DISPLAY_HEIGHT;
e->x.HALF.HI = gRoomControls.scroll_x + (s32)Random() % DISPLAY_WIDTH;
e->y.HALF.HI = gRoomControls.scroll_y + (s32)Random() % DISPLAY_HEIGHT;
}
}
return;
@@ -355,7 +356,7 @@ void sub_08094E30(Object6AEntity* this) {
case 3:
super->z.WORD -= super->zVelocity;
super->zVelocity -= 0x2000;
if (!sub_080040A8(super)) {
if (!CheckOnScreen(super)) {
DeleteThisEntity();
}
break;
@@ -382,7 +383,7 @@ void sub_08094E30(Object6AEntity* this) {
}
void sub_08094F98(Object6AEntity* this) {
CreateObject(0x6A, 5, 0);
CreateObject(OBJECT_6A, 5, 0);
}
void sub_08094FA8(Object6AEntity* this) {
@@ -398,7 +399,7 @@ void sub_08094FA8(Object6AEntity* this) {
super->interactType = 0;
super->action = 2;
sub_080788E0(super);
gPlayerState.playerAction = 12;
gPlayerState.queued_action = PLAYER_EMPTYBOTTLE;
gPlayerState.field_0x38 = 54;
#ifndef EU
SetPlayerControl(2);
@@ -531,7 +532,7 @@ void sub_080951C4(Object6AEntity* this) {
void sub_08095244(Object6AEntity* this) {
if (super->type == 0) {
Entity* e = CreateObject(0x6A, 0xA, 0);
Entity* e = CreateObject(OBJECT_6A, 0xA, 0);
if (e != NULL) {
e->parent = super;
PositionRelative(super, e, 0x100000, -0x100000);
@@ -556,7 +557,7 @@ void sub_08095288(Object6AEntity* this) {
} else {
sub_0805EC9C(super, 0x100, 0x100, super->actionDelay << 8);
super->actionDelay += 10;
sub_0806F69C(super);
LinearMoveUpdate(super);
}
}
p = super->child;
@@ -575,7 +576,7 @@ void sub_08095288(Object6AEntity* this) {
}
void sub_08095330(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0xB, 0);
Entity* e = CreateObject(OBJECT_6A, 0xB, 0);
if (e != NULL) {
super->child = e;
e->child = super;
@@ -622,7 +623,7 @@ void sub_080953A4(Object6AEntity* this) {
}
void sub_08095420(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* e = CreateObject(0x6A, 0xC, 0);
Entity* e = CreateObject(OBJECT_6A, 0xC, 0);
if (e != NULL) {
PositionRelative(super, e, 0, -0x100000);
((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable);
@@ -633,12 +634,12 @@ void nullsub_527(Object6AEntity* this) {
}
void sub_0809545C(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* p = CreateObject(0x6A, 0xD, 0);
Entity* p = CreateObject(OBJECT_6A, 0xD, 0);
Entity* e;
if (p != NULL) {
PositionRelative(super, p, 0, -0x100000);
((Object6AEntity*)p)->ctx = StartCutscene(p, (u16*)ctx->intVariable);
e = CreateObject(0x6A, 2, 0);
e = CreateObject(OBJECT_6A, 2, 0);
if (e != NULL) {
CopyPosition(p, e);
e->parent = p;
@@ -647,7 +648,7 @@ void sub_0809545C(Object6AEntity* this, ScriptExecutionContext* ctx) {
}
void sub_080954AC(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x1A, 0);
Entity* e = CreateObject(OBJECT_6A, 0x1A, 0);
if (e != NULL) {
CopyPosition(super, e);
((Object6AEntity*)e)->ctx = StartCutscene(e, &script_08015B14);
@@ -695,7 +696,7 @@ void sub_080954DC(Object6AEntity* this) {
break;
}
this->off += 4;
if (super->subAction != 0 && !sub_080040A8(super))
if (super->subAction != 0 && !CheckOnScreen(super))
DeleteThisEntity();
if (super->direction & 0x80)
super->spriteSettings.flipX = 0;
@@ -738,7 +739,7 @@ void sub_080956B4(Object6AEntity* this) {
}
}
GetNextFrame(super);
if ((super->type2 + gScreenTransition.frameCount) % 16 == 0)
if ((super->type2 + gRoomTransition.frameCount) % 16 == 0)
sub_080957B4(this);
p = super->parent;
if (p != NULL) {
@@ -759,7 +760,7 @@ void sub_080956B4(Object6AEntity* this) {
}
void sub_08095754(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0xF, super->type2);
Entity* e = CreateObject(OBJECT_6A, 0xF, super->type2);
if (e != NULL) {
e->parent = super;
CopyPosition(super, e);
@@ -779,7 +780,7 @@ void sub_0809577C(Object6AEntity* this) {
}
void sub_080957B4(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x10, 0);
Entity* e = CreateObject(OBJECT_6A, 0x10, 0);
if (e != NULL) {
e->parent = super;
CopyPosition(super, e);
@@ -799,7 +800,7 @@ void sub_080957DC(Object6AEntity* this) {
}
void sub_08095810(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x11, 0);
Entity* e = CreateObject(OBJECT_6A, 0x11, 0);
if (e != NULL) {
e->parent = super;
CopyPosition(super, e);
@@ -860,7 +861,7 @@ void sub_08095954(Object6AEntity* this) {
s8 x, y;
} s8XY;
Entity* e = CreateObject(0x6A, 0x14, 0);
Entity* e = CreateObject(OBJECT_6A, 0x14, 0);
if (e != NULL) {
u32 tmp, x, y;
e->parent = super;
@@ -891,10 +892,10 @@ void sub_080959CC(Object6AEntity* this) {
}
void sub_08095A1C(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* e = CreateObject(0x6A, 0x16, 0);
Entity* e = CreateObject(OBJECT_6A, 0x16, 0);
if (e != NULL) {
e->x.HALF.HI = gRoomControls.roomOriginX + 232;
e->y.HALF.HI = gRoomControls.roomOriginY + 312;
e->x.HALF.HI = gRoomControls.origin_x + 232;
e->y.HALF.HI = gRoomControls.origin_y + 312;
e->z.HALF.HI = -4;
e->collisionLayer = 2;
((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable);
@@ -902,7 +903,7 @@ void sub_08095A1C(Object6AEntity* this, ScriptExecutionContext* ctx) {
}
void sub_08095A68(Object6AEntity* this) {
Entity* e = FindEntity(6, 0x6A, 6, 0x16, 0);
Entity* e = FindEntity(6, OBJECT_6A, 6, 0x16, 0);
if (e != NULL) {
e->action = 0xFF;
}
@@ -974,7 +975,7 @@ void sub_08095B48(Object6AEntity* this) {
}
void sub_08095BE0(Object6AEntity* this, u32 val) {
Entity* e = CreateObject(0x6A, 0x18, val);
Entity* e = CreateObject(OBJECT_6A, 0x18, val);
if (e != NULL) {
e->parent = super;
CopyPosition(super, e);
@@ -997,7 +998,7 @@ void sub_08095C00(Object6AEntity* this) {
}
void sub_08095C48(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x19, 0);
Entity* e = CreateObject(OBJECT_6A, 0x19, 0);
if (e != NULL) {
super->child = e;
e->parent = super;
@@ -1022,7 +1023,7 @@ void sub_08095C68(Object6AEntity* this) {
}
void sub_08095CB0(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x1B, 0);
Entity* e = CreateObject(OBJECT_6A, 0x1B, 0);
if (e != NULL) {
super->child = e;
e->parent = super;
@@ -1052,7 +1053,7 @@ void sub_08095D30(Object6AEntity* this, u32 a2) {
}
void sub_08095D54(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* e = CreateObject(0x6A, 0x1C, 0);
Entity* e = CreateObject(OBJECT_6A, 0x1C, 0);
if (e != NULL) {
CopyPosition(&gPlayerEntity, e);
e->collisionLayer = 2;
@@ -1061,7 +1062,7 @@ void sub_08095D54(Object6AEntity* this, ScriptExecutionContext* ctx) {
}
void sub_08095D8C(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* e = CreateObject(0x6A, 0x1D, 0);
Entity* e = CreateObject(OBJECT_6A, 0x1D, 0);
if (e != NULL) {
CopyPosition(super, e);
((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable);
@@ -1090,15 +1091,15 @@ void sub_08095DBC(Object6AEntity* this) {
super->zVelocity = 0x40000;
super->speed = 0xC000;
}
sub_08003FC4(super, super->speed);
GravityUpdate(super, super->speed);
GetNextFrame(super);
if (!sub_080040A8(super))
if (!CheckOnScreen(super))
DeleteThisEntity();
}
}
void sub_08095E7C(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* e = CreateObject(0x6A, 0x1E, 0);
Entity* e = CreateObject(OBJECT_6A, 0x1E, 0);
if (e != NULL) {
CopyPosition(super, e);
((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable);
@@ -1107,7 +1108,7 @@ void sub_08095E7C(Object6AEntity* this, ScriptExecutionContext* ctx) {
NONMATCH("asm/non_matching/object6A/sub_08095EAC.inc",
void sub_08095EAC(Object6AEntity* this, ScriptExecutionContext* ctx)) {
Entity* e = CreateObject(0x6A, 0x1E, 1);
Entity* e = CreateObject(OBJECT_6A, 0x1E, 1);
s32 x, y;
if (e != NULL) {
@@ -1186,7 +1187,7 @@ void sub_08096028(Object6AEntity* this) {
type2 = 4;
if (!CheckLocalFlagByBank(768, 122))
type2 = 3;
CreateObject(0x6A, 0x1F, type2);
CreateObject(OBJECT_6A, 0x1F, type2);
}
void sub_08096058(Object6AEntity* this) {
@@ -1214,7 +1215,7 @@ void sub_08096084(Object6AEntity* this) {
}
void sub_080960C4(Object6AEntity* this, ScriptExecutionContext* ctx) {
Entity* e = CreateObject(0x6A, 0x23, 0x49);
Entity* e = CreateObject(OBJECT_6A, 0x23, 0x49);
if (e != NULL) {
e->parent = super;
CopyPosition(super, e);
@@ -1222,7 +1223,7 @@ void sub_080960C4(Object6AEntity* this, ScriptExecutionContext* ctx) {
ResolveEntityBelow(super, e);
((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable);
}
e = CreateObject(0x6A, 0x24, 0x4A);
e = CreateObject(OBJECT_6A, 0x24, 0x4A);
if (e != NULL) {
e->parent = super;
CopyPosition(super, e);
@@ -1241,14 +1242,14 @@ void sub_08096168(Object6AEntity* this) {
}
GetNextFrame(super);
sub_0806F62C(super, super->speed, super->direction);
if (!sub_080040A8(super))
if (!CheckOnScreen(super))
DeleteThisEntity();
}
void sub_080961B0(Object6AEntity* this) {
int i;
for (i = 0; i < 8; ++i) {
Entity* e = CreateObject(0x6A, 0x25, 0);
Entity* e = CreateObject(OBJECT_6A, 0x25, 0);
if (e != NULL) {
CopyPosition(super, e);
e->direction = 32 * i;
@@ -1264,21 +1265,21 @@ void sub_080961F4(Object6AEntity* this) {
void sub_08096208(Object6AEntity* this, u32 x) {
s8* p = &gUnk_08122B2E[x * 2];
Entity* e = CreateObject(0x6A, 0x26, 0);
Entity* e = CreateObject(OBJECT_6A, 0x26, 0);
if (e != NULL) {
PositionRelative(super, e, p[0] << 16, p[1] << 16);
}
}
void sub_0809623C(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x27, 0);
Entity* e = CreateObject(OBJECT_6A, 0x27, 0);
if (e != NULL) {
PositionRelative(super, e, 0, -0x100000);
}
}
void sub_08096260(Object6AEntity* this) {
Entity* e = CreateObject(0x6A, 0x28, 0);
Entity* e = CreateObject(OBJECT_6A, 0x28, 0);
if (e != NULL) {
PositionRelative(super, e, 0, -0x100000);
}
@@ -1301,7 +1302,7 @@ void sub_0809629C(Object6AEntity* this, u32 type) {
}
ExecuteScriptForEntity(super, 0);
HandleEntity0x82Actions(super);
sub_08003FC4(super, 0x1000);
GravityUpdate(super, 0x1000);
tmp = super->type;
super->type = type;
sub_08080CB4(super);
@@ -1309,11 +1310,11 @@ void sub_0809629C(Object6AEntity* this, u32 type) {
}
void sub_080962D8(Object6AEntity* this) {
DoFade(6, 0x100);
SetFade(6, 0x100);
}
void sub_080962E8(Object6AEntity* this) {
DoFade(7, 0x100);
SetFade(7, 0x100);
}
void sub_080962F8(Object6AEntity* this, ScriptExecutionContext* ctx) {
+1 -3
View File
@@ -1,8 +1,6 @@
#include "object.h"
#include "functions.h"
void sub_08099ECC(Entity*);
extern void RequestPriorityDuration(Entity*, u32);
extern void sub_0805B390(u32);
extern void (*const gUnk_081237F8[])(Entity*);
@@ -69,7 +67,7 @@ void nullsub_534(Entity* this) {
void sub_08099ECC(Entity* this) {
this->subAction = 1;
CopyPosition(this, &gPlayerEntity);
gPlayerState.playerAction = 3;
gPlayerState.queued_action = PLAYER_FALL;
gPlayerState.field_0x34[4] = 0;
gPlayerState.flags |= 0x8000;
}
+2 -2
View File
@@ -4,7 +4,7 @@
#include "flags.h"
#include "object.h"
#include "functions.h"
#include "overworld.h"
#include "game.h"
extern Hitbox gHitbox_2;
@@ -24,7 +24,7 @@ void ObjectA(Entity* this) {
this->field_0x70.HALF.LO = uVar2;
if (CheckFlags(this->field_0x86.HWORD) != 0) {
SetTileType(*(u16*)&this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer);
if ((gRoomControls.unk2 & 1) != 0) {
if ((gRoomControls.reload_flags & 1) != 0) {
gUpdateVisibleTiles = 0;
}
DeleteThisEntity();
+2 -2
View File
@@ -40,9 +40,9 @@ void sub_0809F318(Entity* this) {
}
void sub_0809F374(Entity* this) {
sub_0806F69C(this);
LinearMoveUpdate(this);
#ifndef EU
if (gSaveHeader->gameLanguage < 2) {
if (gSaveHeader->language < 2) {
if (sub_080044EC(this, 0x2000) < 2) {
this->z.WORD = 0;
this->action = 2;
+1 -1
View File
@@ -1,7 +1,7 @@
#include "global.h"
#include "entity.h"
#include "player.h"
#include "functions.h"
#include "item.h"
extern void (*gUnk_08124824[])(Entity*);
+1 -1
View File
@@ -23,7 +23,7 @@ void ObjectB2(Entity* this) {
InitializeAnimation(this, this->type);
}
this->speed = this->parent->speed;
sub_0806F69C(this);
LinearMoveUpdate(this);
if (sub_080AE4CC(this->child, this->x.HALF.HI, this->y.HALF.HI, 9) != 0) {
DeleteThisEntity();
}
+1 -1
View File
@@ -8,7 +8,7 @@ void ObjectB5(Entity* this) {
this->action = 1;
}
#ifndef EU
gRoomControls.cameraTarget = this;
gRoomControls.camera_target = this;
#endif
PositionRelative(&gPlayerEntity, this, 0, -0x280000);
}
+5 -5
View File
@@ -1,6 +1,6 @@
#include "functions.h"
#include "object.h"
#include "overworld.h"
#include "game.h"
extern void sub_0807B9B8(s32, s32, s32);
@@ -38,7 +38,7 @@ enum OctorokBossObjectType {
TYPE8, // OctorokBoss_Hit_SubAction1
TYPE9 // OctorokBoss_Hit_SubAction4
};
#define GET_HELPER(this) (*(HelperStruct**)&this->cutsceneBeh)
#define GET_HELPER(this) (*(HelperStruct**)&(this)->cutsceneBeh)
extern u32 sub_0806FC80(Entity*, Entity*, s32);
@@ -127,8 +127,8 @@ void OctorokBossObject_Init(Entity* this) {
this->type2 = this->parent->field_0x7c.BYTES.byte0;
this->actionDelay = 4;
this->field_0xf = 0;
this->field_0x82.HWORD = (this->x.HALF.HI - (gRoomControls.roomOriginX)) & 0x1f0;
this->field_0x80.HWORD = (this->y.HALF.HI - ((u32)gRoomControls.roomOriginY)) & 0x1f0;
this->field_0x82.HWORD = (this->x.HALF.HI - (gRoomControls.origin_x)) & 0x1f0;
this->field_0x80.HWORD = (this->y.HALF.HI - ((u32)gRoomControls.origin_y)) & 0x1f0;
*(int*)&this->cutsceneBeh =
((s32)(this->field_0x82.HWORD - 0x10) >> 4) + (this->field_0x80.HWORD >> 4) * 0x1f;
sub_0809A6F8(this->field_0x82.HWORD, this->field_0x80.HWORD, *(int*)&this->cutsceneBeh, this->type2);
@@ -304,7 +304,7 @@ NONMATCH("asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc",
case 9:
sub_08078B48();
if ((*(int*)&this->field_0x78)-- == 0) {
gRoomControls.cameraTarget = &gPlayerEntity;
gRoomControls.camera_target = &gPlayerEntity;
DeleteThisEntity();
}
break;
+1 -1
View File
@@ -14,5 +14,5 @@ void sub_0809F2A0(Entity* this) {
SetTile(0x4069, COORD_TO_TILE(this), this->collisionLayer);
}
void nullsub_537() {
void nullsub_537(Entity* this) {
}
-2
View File
@@ -3,8 +3,6 @@
#include "flags.h"
#include "object.h"
extern u32 ReadBit(u32*, u32);
extern u32 gUnk_020342F8;
extern u16 gUnk_08125050[];
extern void (*gUnk_0812505C[])(Entity*);
+4 -5
View File
@@ -1,12 +1,11 @@
#include "global.h"
#include "audio.h"
#include "sound.h"
#include "entity.h"
#include "flags.h"
#include "player.h"
#include "room.h"
#include "object.h"
#include "functions.h"
#include "effects.h"
void sub_08082824(Entity*);
static void sub_08082850(Entity*, Entity*);
@@ -45,7 +44,7 @@ void sub_0808222C(Entity* this) {
this->flags2 = 0x84;
this->field_0x1c = 0x12;
if (this->collisionLayer == 0) {
sub_08016A30(this);
ResolveCollisionLayer(this);
}
this->field_0x70.HALF.LO = sub_080001DA(COORD_TO_TILE(this), this->collisionLayer);
@@ -175,7 +174,7 @@ void sub_08082614(Entity* this) {
sub_0800445C(this);
if (--this->actionDelay != 0xFF) {
sub_0806F69C(this);
LinearMoveUpdate(this);
sub_08016A6C(this);
return;
}
@@ -256,7 +255,7 @@ void sub_08082824(Entity* this) {
this->spriteSettings.flipY = 1;
}
if (sub_08003FC4(this, 0x2000) == 0) {
if (GravityUpdate(this, 0x2000) == 0) {
sub_08082850(this, NULL);
}
}
+2 -1
View File
@@ -1,5 +1,6 @@
#include "global.h"
#include "audio.h"
#include "asm.h"
#include "sound.h"
#include "entity.h"
#include "room.h"
#include "flags.h"
+1 -1
View File
@@ -43,7 +43,7 @@ void sub_0808A484(Entity* this) {
void sub_0808A4D0(Entity* this) {
GetNextFrame(this);
sub_0806F69C(this);
LinearMoveUpdate(this);
if (this->frame & 0x80) {
DeleteEntity(this);
}
+1 -1
View File
@@ -1,6 +1,6 @@
#include "global.h"
#include "entity.h"
#include "textbox.h"
#include "message.h"
extern void sub_080787B4(Entity*);
+1 -1
View File
@@ -1,6 +1,6 @@
#include "global.h"
#include "entity.h"
#include "audio.h"
#include "sound.h"
extern void (*const ThoughtBubble_Behaviors[])(Entity*);
+2 -3
View File
@@ -1,10 +1,9 @@
#include "global.h"
#include "audio.h"
#include "sound.h"
#include "entity.h"
#include "flags.h"
#include "player.h"
#include "room.h"
#include "structures.h"
#include "functions.h"
#include "effects.h"
@@ -36,7 +35,7 @@ void sub_0809E86C(Entity* this) {
if (sub_0800419C(this, &gPlayerEntity, 0x30, 0x30)) {
if (CheckGlobalFlag(EZERO_1ST)) {
if (((gScreenTransition.frameCount & 3) == 0)) {
if (((gRoomTransition.frameCount & 3) == 0)) {
CreateSparkle(this);
}
}
+15 -19
View File
@@ -1,9 +1,6 @@
#include "global.h"
#include "object.h"
#include "player.h"
#include "flags.h"
#include "overworld.h"
#include "audio.h"
#include "game.h"
#include "functions.h"
extern Hitbox gHitbox_1;
@@ -11,7 +8,6 @@ extern Hitbox gHitbox_1;
extern void sub_0807CAC8(u32);
extern u32 sub_0807CAEC(u32);
void WarpPoint(Entity*);
void sub_0808B474(Entity*);
void sub_0808B530(Entity*);
void sub_0808B564(Entity*);
@@ -49,7 +45,7 @@ void sub_0808B474(Entity* this) {
if (CheckFlags(this->field_0x86.HWORD)) {
sub_0808B830(this);
} else {
if (CheckIsDungeon() && sub_0807CAEC(this->type)) {
if (AreaIsDungeon() && sub_0807CAEC(this->type)) {
sub_0808B830(this);
}
}
@@ -67,7 +63,7 @@ void sub_0808B474(Entity* this) {
void sub_0808B530(Entity* this) {
if (CheckFlags(this->field_0x86.HWORD)) {
sub_0808B830(this);
if (CheckIsDungeon()) {
if (AreaIsDungeon()) {
sub_0807CAC8(this->type);
}
this->action = 2;
@@ -148,17 +144,17 @@ void sub_0808B5E8(Entity* this) {
void sub_0808B684(Entity* this) {
u32 tmp;
if (!--this->field_0xf) {
gScreenTransition.transitioningOut = 1;
gScreenTransition.transitionType = TRANSITION_DEFAULT;
gScreenTransition.player_status.area_next = this->field_0x7c.BYTES.byte0;
gScreenTransition.player_status.room_next = this->field_0x7c.BYTES.byte1;
gScreenTransition.player_status.start_pos.HALF.x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8;
gScreenTransition.player_status.start_pos.HALF.y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8;
gScreenTransition.player_status.layer = 0;
gScreenTransition.player_status.start_anim = 4;
gScreenTransition.player_status.spawn_type = 0;
gRoomTransition.transitioningOut = 1;
gRoomTransition.type = TRANSITION_DEFAULT;
gRoomTransition.player_status.area_next = this->field_0x7c.BYTES.byte0;
gRoomTransition.player_status.room_next = this->field_0x7c.BYTES.byte1;
gRoomTransition.player_status.start_pos_x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8;
gRoomTransition.player_status.start_pos_y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8;
gRoomTransition.player_status.layer = 0;
gRoomTransition.player_status.start_anim = 4;
gRoomTransition.player_status.spawn_type = 0;
if (this->type == 2) {
gScreenTransition.transitionType = TRANSITION_FADE_WHITE_SLOW;
gRoomTransition.type = TRANSITION_FADE_WHITE_SLOW;
}
return;
}
@@ -212,7 +208,7 @@ u32 sub_0808B7C8(Entity* this) {
if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.framestate != PL_STATE_DIE && gPlayerEntity.health != 0 &&
sub_08079F8C() && EntityInRectRadius(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) {
if (this->actionDelay == 0 && gPlayerEntity.action == PLAYER_08072C9C) {
sub_080791D0();
ResetPlayerAnimationAndAction();
}
return 1;
}
@@ -224,7 +220,7 @@ void sub_0808B830(Entity* this) {
this->action = 3;
this->actionDelay = 0;
this->spriteSettings.draw = 1;
tmp = CreateObject(0x34, 0, 0);
tmp = CreateObject(WARP_POINT, 0, 0);
if (tmp) {
tmp->field_0x70.BYTES.byte0 = 1;
tmp->parent = this;
+1
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "asm.h"
#include "entity.h"
#include "room.h"
#include "player.h"
+1 -2
View File
@@ -1,9 +1,8 @@
#include "global.h"
#include "audio.h"
#include "sound.h"
#include "entity.h"
#include "save.h"
#include "script.h"
#include "functions.h"
#include "effects.h"
extern void sub_08078850(Entity*, u32, u32, u8*);