mirror of https://github.com/zeldaret/tmc.git
Various documentations
This commit is contained in:
parent
22cbdd2fd6
commit
79bae9cd8a
|
|
@ -12,7 +12,7 @@ SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed2
|
|||
WaitForSyncFlagAndClear 0x00000002
|
||||
script_0800D80C:
|
||||
SetEntitySpeed 0x0100
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
DoPostScriptAction 0x000e
|
||||
Call sub_0806CA5C
|
||||
SetEntityVelocity 0x00040000
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
@ Minish Woods Ezlo Cutscene NPC4E
|
||||
SCRIPT_START script_Npc4EEzloCutscene
|
||||
BeginBlock
|
||||
Call sub_08054564
|
||||
Call DisableRandomDrops
|
||||
EndBlock
|
||||
script_0801248A:
|
||||
CheckPlayerInRegion 0x0208, 0x02c8, 0x4020
|
||||
|
|
@ -126,7 +126,7 @@ script_08012566:
|
|||
StopBgm
|
||||
Wait 0x003c
|
||||
PlayBGM
|
||||
Call sub_08054570
|
||||
Call EnableRandomDrops
|
||||
SetGlobalFlag EZERO_1ST
|
||||
CallWithArg ResetPlayerFlag, PL_NO_CAP
|
||||
Call EnablePauseMenu
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ SCRIPT_START script_CutsceneMiscObjectMinishCap
|
|||
_0807EDD4 0x0078, 0x0068
|
||||
SetSyncFlag 0x00000100
|
||||
WaitForSyncFlagAndClear 0x00000080
|
||||
_0807EF3C 0xff80, 0x0000
|
||||
_0807EF3C -128, 0x0000
|
||||
CallWithArg DeleteRepeatedSoundManager, 0x00000003
|
||||
Wait 0x003c
|
||||
SetSyncFlag 0x00000100
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
SCRIPT_START script_CutsceneOrchestratorVaatiAppears
|
||||
BeginBlock
|
||||
SetEntityPositionRelative 0x01f8, 0x00e0
|
||||
Call sub_08054564
|
||||
Call DisableRandomDrops
|
||||
EndBlock
|
||||
script_08014FCC:
|
||||
CheckPlayerInRegion 0x01f8, 0x00a0, 0x2040
|
||||
|
|
@ -141,7 +141,7 @@ script_08015104:
|
|||
WaitUntilTextboxCloses
|
||||
_0807F0B4 0x0004
|
||||
CameraTargetPlayer
|
||||
Call sub_08054570
|
||||
Call EnableRandomDrops
|
||||
PlayBGM
|
||||
Call EnablePauseMenu
|
||||
EnablePlayerControl
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ SCRIPT_START script_Npc4EMinishPortalClosing
|
|||
WaitUntilTextboxCloses
|
||||
MessageFromTargetPos TEXT_VAATI2, 0x63, 0x000e
|
||||
WaitUntilTextboxCloses
|
||||
OffsetEntityPosition 0x0000, 0xffe0
|
||||
OffsetEntityPosition 0x0000, -32
|
||||
Call WaitForCameraTouchRoomBorder
|
||||
SetSyncFlag 0x00000002
|
||||
WaitForSyncFlagAndClear 0x00000004
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ SCRIPT_START script_CutsceneMiscObjectV3DefeatedMinishCap
|
|||
CallWithArg sub_080960C4, script_CutsceneMiscObjectV3DefeatedMinishCap2
|
||||
EndBlock
|
||||
PlaySound SFX_SPARKLES
|
||||
_0807EF3C 0xff80, 0x0000
|
||||
_0807EF3C -128, 0x0000
|
||||
PlaySound SFX_143
|
||||
SetAnimation 0x0004
|
||||
SetSyncFlag 0x00000002
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ script_080144C8:
|
|||
Wait 0x0018
|
||||
SetRoomFlag 0x0000
|
||||
SetLocalFlag 0x0092
|
||||
_0807EEF4 0x0000, 0xffa0
|
||||
_0807EEF4 0x0000, -96
|
||||
Call DisablePauseMenu
|
||||
Jump script_080144FC
|
||||
script_080144F0:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
@ BigGoron Kinstone Cutscene 5
|
||||
SCRIPT_START script_BigGoronKinstone5
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xff30
|
||||
_0807EEF4 0x0000, -208
|
||||
_0807F0C8 0x0000, 0x0000
|
||||
Wait 0x00b4
|
||||
Call sub_08054968
|
||||
|
|
|
|||
|
|
@ -34,5 +34,5 @@ script_0800BD1C:
|
|||
SetAnimationState 0x0002
|
||||
WaitForSyncFlagAndClear 0x00000004
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -31,6 +31,6 @@ SCRIPT_START script_Goron2Kinstone2
|
|||
SetAnimationState 0x0006
|
||||
SetSyncFlag 0x00000004
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
Call sub_08054968
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -36,5 +36,5 @@ script_0800BFA8:
|
|||
Wait 0x003c
|
||||
Call sub_08054F64
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -36,5 +36,5 @@ script_0800C248:
|
|||
Wait 0x003c
|
||||
Call sub_08054F64
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -32,6 +32,6 @@ SCRIPT_START script_Goron4Kinstone4
|
|||
Wait 0x003c
|
||||
SetSyncFlag 0x0000001c
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
Call sub_08054968
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -32,6 +32,6 @@ SCRIPT_START script_Goron6Kindstone6
|
|||
Wait 0x003c
|
||||
SetSyncFlag 0x0000007c
|
||||
SetEntitySpeed 0x0080
|
||||
_0807EEF4 0x0000, 0xffe0
|
||||
_0807EEF4 0x0000, -32
|
||||
Call sub_08054968
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ SCRIPT_START script_KinstoneSparkKinstoneSparkFromBottom
|
|||
Wait 0x000a
|
||||
DoPostScriptAction 0x0007
|
||||
PlaySound SFX_136
|
||||
_0807EEF4 0x0000, 0xff90
|
||||
_0807EEF4 0x0000, -112
|
||||
Wait 0x001e
|
||||
_0807EEF4 0x0000, 0xffb0
|
||||
_0807EEF4 0x0000, -80
|
||||
Wait 0x003c
|
||||
SetRoomFlag 0x00ff
|
||||
SetAnimation 0x0005
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ SCRIPT_START script_CutsceneMiscObjectSwordCharge3
|
|||
DoPostScriptAction 0x0007
|
||||
SetAnimation 0x0002
|
||||
Call sub_0807F738
|
||||
OffsetEntityPosition 0x0000, 0xfff0
|
||||
OffsetEntityPosition 0, -16
|
||||
EndBlock
|
||||
WaitForSyncFlag 0x00000040
|
||||
DoPostScriptAction 0x0006
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ SCRIPT_START script_CutsceneMiscObjectSwordCharge4
|
|||
DoPostScriptAction 0x0007
|
||||
SetAnimation 0x0003
|
||||
Call sub_0807F738
|
||||
OffsetEntityPosition 0x0000, 0xfff0
|
||||
OffsetEntityPosition 0, -16
|
||||
EndBlock
|
||||
WaitForSyncFlag 0x00000040
|
||||
DoPostScriptAction 0x0006
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ SCRIPT_START script_CutsceneMiscObjectSwordCharge7
|
|||
BeginBlock
|
||||
DoPostScriptAction 0x0007
|
||||
SetAnimation 0x0006
|
||||
OffsetEntityPosition 0x0000, 0xfff0
|
||||
OffsetEntityPosition 0, -16
|
||||
EndBlock
|
||||
WaitForSyncFlagAndClear 0x00000800
|
||||
SetAnimation 0x000a
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ SCRIPT_START script_CutsceneMiscObjectSwordCharge8
|
|||
BeginBlock
|
||||
DoPostScriptAction 0x0007
|
||||
SetAnimation 0x0007
|
||||
OffsetEntityPosition 0x0000, 0xfff0
|
||||
OffsetEntityPosition 0, -16
|
||||
EndBlock
|
||||
WaitForSyncFlagAndClear 0x00001000
|
||||
SetAnimation 0x000b
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ SCRIPT_START script_08012B24
|
|||
DoPostScriptAction 0x0001
|
||||
WalkSouth 0x0008
|
||||
SetSyncFlag 0x00000002
|
||||
CallWithArg SetPlayerIFrames, 0xffffffe2
|
||||
CallWithArg SetPlayerIFrames, -30
|
||||
Call SetPlayerActionNormal
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ SCRIPT_START script_08012B50
|
|||
DoPostScriptAction 0x0001
|
||||
WalkNorth 0x0008
|
||||
SetSyncFlag 0x00000002
|
||||
CallWithArg SetPlayerIFrames, 0xffffffe2
|
||||
CallWithArg SetPlayerIFrames, -30
|
||||
Call SetPlayerActionNormal
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ SCRIPT_START script_08012B7C
|
|||
DoPostScriptAction 0x0001
|
||||
WalkEast 0x0008
|
||||
SetSyncFlag 0x00000002
|
||||
CallWithArg SetPlayerIFrames, 0xffffffe2
|
||||
CallWithArg SetPlayerIFrames, -30
|
||||
Call SetPlayerActionNormal
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ SCRIPT_START script_BigGoronHiding
|
|||
SetEntitySpeed 0x0010
|
||||
EndBlock
|
||||
script_0800932E:
|
||||
_0807EEF4 0xfff8, 0x0000
|
||||
_0807EEF4 -8, 0x0000
|
||||
_0807EEF4 0x0008, 0x0000
|
||||
Jump script_0800932E
|
||||
SCRIPT_END
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
@ Veil Falls MINISH_VILLAGE_OBJECT left stone
|
||||
SCRIPT_START script_MinishVillageObjectLeftStone
|
||||
OffsetEntityPosition 0xfff0, 0x0000
|
||||
OffsetEntityPosition -16, 0
|
||||
SCRIPT_END
|
||||
.2byte 0x0000
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ typedef struct {
|
|||
u8 unk;
|
||||
u8 dungeon_idx; /* same index as global flags for dungeons */
|
||||
u16 localFlagOffset;
|
||||
u8 filler[4];
|
||||
u8 flag_bank;
|
||||
u8 filler[3];
|
||||
u16 lightLevel;
|
||||
u8 lightType;
|
||||
u8 unk_0c_0 : 1;
|
||||
|
|
@ -50,7 +51,7 @@ typedef struct {
|
|||
u8 portal_mode;
|
||||
// u8 filler3[7];
|
||||
bool8 portal_in_use;
|
||||
u8 unk1A;
|
||||
u8 portal_timer;
|
||||
u8 filler2[13];
|
||||
struct_area_28 unk28;
|
||||
RoomResInfo roomResInfos[MAX_ROOMS];
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ typedef struct {
|
|||
u8 _1;
|
||||
u16 _2;
|
||||
} Palette;
|
||||
extern Palette gPaletteList[];
|
||||
extern Palette gPaletteList[0x10];
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
|
|
|
|||
|
|
@ -83,8 +83,8 @@ extern void sub_0803C0AC(Entity*);
|
|||
extern void sub_08049CF4(Entity*);
|
||||
extern u32 sub_0804A024(Entity*, u32, u32);
|
||||
extern u32 sub_080542AC(u32);
|
||||
extern void sub_08054564();
|
||||
extern void sub_08054570(void);
|
||||
extern void DisableRandomDrops();
|
||||
extern void EnableRandomDrops(void);
|
||||
extern s32 sub_08056338(void);
|
||||
extern void sub_080575C8(u32);
|
||||
extern void sub_08057688(void);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ typedef struct {
|
|||
u8 action;
|
||||
u8 _2;
|
||||
u8 _3;
|
||||
u8 _4;
|
||||
u8 prevUpdatePriority;
|
||||
u8 _5;
|
||||
u16 textIndex;
|
||||
u16 _8;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
typedef struct {
|
||||
Manager base;
|
||||
u8 unk_20;
|
||||
u8 prevBgm;
|
||||
u8 unk_21[0x14];
|
||||
u8 unk_35;
|
||||
u8 unk_36[0x4];
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ typedef enum {
|
|||
PL_DRUGGED = 0x4000,
|
||||
PL_PIT_IS_EXIT = 0x8000,
|
||||
PL_FLAGS10000 = 0x10000,
|
||||
PL_FLAGS20000 = 0x20000,
|
||||
PL_GYORG_FIGHT = 0x20000,
|
||||
PL_ROLLING = 0x40000,
|
||||
PL_MOLDWORM_CAPTURED = 0x80000,
|
||||
PL_IN_HOLE = 0x100000,
|
||||
|
|
@ -120,7 +120,7 @@ typedef enum {
|
|||
PL_CLONING = 0x400000,
|
||||
PL_USE_LANTERN = 0x800000,
|
||||
PL_PARACHUTE = 0x1000000,
|
||||
PL_FLAGS2000000 = 0x2000000,
|
||||
PL_CONVEYOR_PUSHED = 0x2000000,
|
||||
PL_ENTER_MINECART = 0x4000000,
|
||||
PL_SWORD_THRUST = 0x8000000,
|
||||
PL_USE_OCARINA = 0x10000000,
|
||||
|
|
|
|||
|
|
@ -59,14 +59,14 @@ extern RoomControls gRoomControls;
|
|||
typedef struct {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x01 */ u8 filler_0x1;
|
||||
/* 0x02 */ u8 field_0x2;
|
||||
/* 0x02 */ bool8 randomDropsDisabled;
|
||||
/* 0x03 */ u8 field_0x3;
|
||||
/* 0x04 */ u8 field_0x4;
|
||||
/* 0x05 */ u8 filler1[1];
|
||||
/* 0x06 */ u8 shopItemType;
|
||||
/* 0x07 */ u8 shopItemType2;
|
||||
/* 0x08 */ u8 field_0x8;
|
||||
/* 0x09 */ u8 field_0x9;
|
||||
/* 0x09 */ u8 fight_bgm;
|
||||
/* 0x0a */ u8 unk2;
|
||||
/* 0x0b */ u8 filler2;
|
||||
/* 0x0c */ s16 lightLevel;
|
||||
|
|
@ -162,7 +162,7 @@ typedef struct {
|
|||
/* 0x3c */ u8 field_0x3c;
|
||||
/* 0x3d */ u8 field_0x3d;
|
||||
/* 0x3e */ u16 field_0x3e;
|
||||
/* 0x40 */ u16 hurtType;
|
||||
/* 0x40 */ u16 field_0x40;
|
||||
/* 0x42 */ u16 field_0x42;
|
||||
/* 0x44 */ u16 field_0x44;
|
||||
/* 0x46 */ u16 field_0x46;
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ typedef struct {
|
|||
u8 draw_border : 1;
|
||||
u8 border_type : 4;
|
||||
u8 fill_type;
|
||||
u8 _15;
|
||||
u8 charColor;
|
||||
u8 _16;
|
||||
u8 stylized;
|
||||
} Font;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Entity* sub_08049E18(void) {
|
|||
if ((gPlayerState.field_0x3c == 0) &&
|
||||
!(gPlayerState.flags &
|
||||
(PL_BUSY | PL_DROWNING | PL_CAPTURED | PL_USE_PORTAL | PL_HIDDEN | PL_DISABLE_ITEMS | PL_FALLING | PL_FROZEN |
|
||||
PL_IN_MINECART | PL_PIT_IS_EXIT | PL_MOLDWORM_CAPTURED | PL_IN_HOLE | PL_FLAGS2000000 | PL_CLIMBING))) {
|
||||
PL_IN_MINECART | PL_PIT_IS_EXIT | PL_MOLDWORM_CAPTURED | PL_IN_HOLE | PL_CONVEYOR_PUSHED | PL_CLIMBING))) {
|
||||
gUnk_020000B0 = &gPlayerEntity;
|
||||
return &gPlayerEntity;
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ Entity* sub_08049E4C(void) {
|
|||
if ((gPlayerState.field_0x3c == 0) &&
|
||||
!(gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_CAPTURED | PL_USE_PORTAL | PL_HIDDEN | PL_MINISH |
|
||||
PL_DISABLE_ITEMS | PL_FALLING | PL_FROZEN | PL_IN_MINECART | PL_PIT_IS_EXIT |
|
||||
PL_MOLDWORM_CAPTURED | PL_IN_HOLE | PL_FLAGS2000000 | PL_CLIMBING))) {
|
||||
PL_MOLDWORM_CAPTURED | PL_IN_HOLE | PL_CONVEYOR_PUSHED | PL_CLIMBING))) {
|
||||
gUnk_020000B0 = &gPlayerEntity;
|
||||
return &gPlayerEntity;
|
||||
}
|
||||
|
|
|
|||
14
src/color.c
14
src/color.c
|
|
@ -23,7 +23,7 @@ extern union SplitWord gUnk_08133368[];
|
|||
void ResetPaletteTable(u32 a1) {
|
||||
u32 i;
|
||||
|
||||
MemClear(gPaletteList, 0x40);
|
||||
MemClear(gPaletteList, sizeof(gPaletteList));
|
||||
for (i = 0; i < 6; ++i) {
|
||||
sub_0801CFD0(i);
|
||||
}
|
||||
|
|
@ -52,7 +52,7 @@ void sub_0801D000(u32 a1) {
|
|||
CleanUpObjPalettes();
|
||||
sub_0801CFD0(0xf);
|
||||
} else {
|
||||
if ((gUnk_02001A3C._0_0) == 4) {
|
||||
if (gUnk_02001A3C._0_0 == 4) {
|
||||
gUnk_02001A3C._0_0 = 0;
|
||||
gUnk_02001A3C._0_4 = 0;
|
||||
gUnk_02001A3C._1 = 0;
|
||||
|
|
@ -106,7 +106,7 @@ s32 FindPalette(u32 a1) {
|
|||
if (a1 <= 5)
|
||||
return a1;
|
||||
|
||||
for (index = 6, palette = gPaletteList; index < 0x10; index++) {
|
||||
for (index = 6, palette = gPaletteList; index < ARRAY_COUNT(gPaletteList); index++) {
|
||||
if (a1 == palette[index]._2) {
|
||||
return index;
|
||||
}
|
||||
|
|
@ -120,7 +120,7 @@ u32 FindFreeObjPalette(u32 a1) {
|
|||
u32 uVar2;
|
||||
u32 tmp;
|
||||
|
||||
for (uVar1 = 0, uVar2 = 6; uVar2 < 0x10; uVar2++) {
|
||||
for (uVar1 = 0, uVar2 = 6; uVar2 < ARRAY_COUNT(gPaletteList); uVar2++) {
|
||||
switch ((gPaletteList[uVar2]._0_0)) {
|
||||
case 0:
|
||||
uVar1 = uVar1 + 1;
|
||||
|
|
@ -134,7 +134,7 @@ u32 FindFreeObjPalette(u32 a1) {
|
|||
}
|
||||
}
|
||||
|
||||
for (uVar1 = 0, uVar2 = 6; uVar2 < 0x10; uVar2++) {
|
||||
for (uVar1 = 0, uVar2 = 6; uVar2 < ARRAY_COUNT(gPaletteList); uVar2++) {
|
||||
switch (gPaletteList[uVar2]._0_0) {
|
||||
case 0:
|
||||
case 1:
|
||||
|
|
@ -250,9 +250,9 @@ void CleanUpObjPalettes(void) {
|
|||
u32 index2;
|
||||
Entity* pEVar9;
|
||||
int iVar10;
|
||||
u8 local_24[0x10];
|
||||
u8 local_24[ARRAY_COUNT(gPaletteList)];
|
||||
|
||||
for (index1 = 0; index1 < 0x10; index1++) {
|
||||
for (index1 = 0; index1 < ARRAY_COUNT(gPaletteList); index1++) {
|
||||
local_24[index1] = index1;
|
||||
switch (gPaletteList[index1]._0_0) {
|
||||
case 0:
|
||||
|
|
|
|||
14
src/common.c
14
src/common.c
|
|
@ -33,7 +33,7 @@ extern void (*gUnk_080C9CAC[])(void);
|
|||
static void StoreKeyInput(Input* input, u32 keyInput);
|
||||
void ClearOAM(void);
|
||||
void ResetScreenRegs(void);
|
||||
void sub_0801E0E0(u32);
|
||||
void MessageFromFusionTarget(u32);
|
||||
void sub_0801E24C(s32, s32);
|
||||
void sub_0801E290(u32, u32, u32);
|
||||
s32 sub_0801E8B0(u32);
|
||||
|
|
@ -366,7 +366,7 @@ void DispReset(bool32 refresh) {
|
|||
ClearOAM();
|
||||
ResetScreenRegs();
|
||||
MemClear((void*)0x600C000, 0x20);
|
||||
MemClear(gBG0Buffer, 0x800);
|
||||
MemClear(gBG0Buffer, sizeof(gBG0Buffer));
|
||||
gScreen.bg0.updated = refresh;
|
||||
}
|
||||
|
||||
|
|
@ -534,7 +534,7 @@ void sub_0801DFB4(Entity* entity, u32 textIndex, u32 a3, u32 a4) {
|
|||
gFuseInfo.ent = entity;
|
||||
gFuseInfo._3 = gUnk_03003DF0.unk_2;
|
||||
if (entity != NULL) {
|
||||
gFuseInfo._4 = entity->updatePriority;
|
||||
gFuseInfo.prevUpdatePriority = entity->updatePriority;
|
||||
entity->updatePriority = 2;
|
||||
}
|
||||
gFuseInfo._0 = 0;
|
||||
|
|
@ -546,7 +546,7 @@ u32 sub_0801E00C(void) {
|
|||
}
|
||||
|
||||
void sub_0801E02C(void) {
|
||||
sub_0801E0E0(gFuseInfo.textIndex);
|
||||
MessageFromFusionTarget(gFuseInfo.textIndex);
|
||||
gFuseInfo._0 = 3;
|
||||
gFuseInfo.action = 1;
|
||||
}
|
||||
|
|
@ -572,20 +572,20 @@ void sub_0801E074(void) {
|
|||
default:
|
||||
return;
|
||||
}
|
||||
sub_0801E0E0(tmp);
|
||||
MessageFromFusionTarget(tmp);
|
||||
gFuseInfo.action = 3;
|
||||
}
|
||||
|
||||
void sub_0801E0A0(void) {
|
||||
if ((gMessage.doTextBox & 0x7f) == 0) {
|
||||
if (gFuseInfo.ent != NULL) {
|
||||
gFuseInfo.ent->updatePriority = gFuseInfo._4;
|
||||
gFuseInfo.ent->updatePriority = gFuseInfo.prevUpdatePriority;
|
||||
}
|
||||
gFuseInfo._0 = gFuseInfo._0 == 6 ? 2 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0801E0E0(u32 textIndex) {
|
||||
void MessageFromFusionTarget(u32 textIndex) {
|
||||
if (textIndex != 0) {
|
||||
if (gFuseInfo.ent != NULL) {
|
||||
MessageNoOverlap(textIndex, gFuseInfo.ent);
|
||||
|
|
|
|||
|
|
@ -613,7 +613,7 @@ void sub_08026414(ChuchuBossEntity* this) {
|
|||
Entity* child;
|
||||
|
||||
if (this->unk_7c-- == 0) {
|
||||
super->z.HALF.HI = 0xff40;
|
||||
super->z.HALF.HI = -192;
|
||||
child = super->child;
|
||||
parent = super->parent;
|
||||
this->unk_68->base.spriteSettings.draw = 1;
|
||||
|
|
|
|||
|
|
@ -29,13 +29,6 @@ typedef struct {
|
|||
|
||||
extern void sub_08047EA4(Entity*, u32); // gyorgMale
|
||||
|
||||
extern void (*const Enemy64_Actions[])(Enemy64Entity*);
|
||||
extern void (*const Enemy64_Action1_SubActions[])(Enemy64Entity*);
|
||||
extern void (*const Enemy64_Action2_SubActions[])(Enemy64Entity*);
|
||||
extern void (*const Enemy64_Action3_SubActions[])(Enemy64Entity*);
|
||||
extern const u8 gUnk_080D29B8[];
|
||||
extern void (*const Enemy64_Action4_SubActions[])(Enemy64Entity*);
|
||||
|
||||
void sub_080499F0(Enemy64Entity*);
|
||||
void sub_08049998(Enemy64Entity*, u32);
|
||||
void Enemy64_Action2_SubAction1(Enemy64Entity*);
|
||||
|
|
@ -43,8 +36,36 @@ void sub_08049944(Enemy64Entity*);
|
|||
bool32 sub_08049A8C(Enemy64Entity*);
|
||||
void sub_08049AB0(Enemy64Entity*);
|
||||
void sub_08049B20(Enemy64Entity*);
|
||||
void Enemy64_Init(Enemy64Entity* this);
|
||||
void Enemy64_Action1(Enemy64Entity* this);
|
||||
void Enemy64_Action2(Enemy64Entity* this);
|
||||
void Enemy64_Action3(Enemy64Entity* this);
|
||||
void Enemy64_Action4(Enemy64Entity* this);
|
||||
void Enemy64_Action1_SubAction0(Enemy64Entity* this);
|
||||
void Enemy64_Action1_SubAction1(Enemy64Entity* this);
|
||||
void Enemy64_Action2_SubAction0(Enemy64Entity* this);
|
||||
void Enemy64_Action2_SubAction1(Enemy64Entity* this);
|
||||
void Enemy64_Action2_SubAction2(Enemy64Entity* this);
|
||||
void Enemy64_Action2_SubAction3(Enemy64Entity* this);
|
||||
void Enemy64_Action2_SubAction4(Enemy64Entity* this);
|
||||
void Enemy64_Action2_SubAction5(Enemy64Entity* this);
|
||||
void Enemy64_Action3_SubAction0(Enemy64Entity* this);
|
||||
void Enemy64_Action3_SubAction1(Enemy64Entity* this);
|
||||
void Enemy64_Action3_SubAction2(Enemy64Entity* this);
|
||||
void Enemy64_Action3_SubAction3(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction0(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction1(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction2(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction3(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction4(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction5(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction6(Enemy64Entity* this);
|
||||
void Enemy64_Action4_SubAction7(Enemy64Entity* this);
|
||||
|
||||
void Enemy64(Enemy64Entity* this) {
|
||||
static void (*const Enemy64_Actions[])(Enemy64Entity*) = {
|
||||
Enemy64_Init, Enemy64_Action1, Enemy64_Action2, Enemy64_Action3, Enemy64_Action4,
|
||||
};
|
||||
if (super->action != 0) {
|
||||
super->spriteSettings.draw = this->unk_7d;
|
||||
}
|
||||
|
|
@ -102,6 +123,10 @@ void Enemy64_Init(Enemy64Entity* this) {
|
|||
}
|
||||
|
||||
void Enemy64_Action1(Enemy64Entity* this) {
|
||||
static void (*const Enemy64_Action1_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action1_SubAction0,
|
||||
Enemy64_Action1_SubAction1,
|
||||
};
|
||||
Enemy64_Action1_SubActions[super->subAction](this);
|
||||
UpdateAnimationSingleFrame(super);
|
||||
}
|
||||
|
|
@ -133,6 +158,10 @@ void Enemy64_Action1_SubAction1(Enemy64Entity* this) {
|
|||
}
|
||||
|
||||
void Enemy64_Action2(Enemy64Entity* this) {
|
||||
static void (*const Enemy64_Action2_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action2_SubAction0, Enemy64_Action2_SubAction1, Enemy64_Action2_SubAction2,
|
||||
Enemy64_Action2_SubAction3, Enemy64_Action2_SubAction4, Enemy64_Action2_SubAction5,
|
||||
};
|
||||
Enemy64_Action2_SubActions[super->subAction](this);
|
||||
UpdateAnimationSingleFrame(super);
|
||||
}
|
||||
|
|
@ -253,6 +282,12 @@ void Enemy64_Action2_SubAction5(Enemy64Entity* this) {
|
|||
}
|
||||
|
||||
void Enemy64_Action3(Enemy64Entity* this) {
|
||||
static void (*const Enemy64_Action3_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action3_SubAction0,
|
||||
Enemy64_Action3_SubAction1,
|
||||
Enemy64_Action3_SubAction2,
|
||||
Enemy64_Action3_SubAction3,
|
||||
};
|
||||
Enemy64_Action3_SubActions[super->subAction](this);
|
||||
UpdateAnimationSingleFrame(super);
|
||||
}
|
||||
|
|
@ -275,10 +310,13 @@ void Enemy64_Action3_SubAction0(Enemy64Entity* this) {
|
|||
}
|
||||
|
||||
void Enemy64_Action3_SubAction1(Enemy64Entity* this) {
|
||||
static const s8 gUnk_080D29B8[] = {
|
||||
144, 112, 56, 200, 0, 0, 0, 0,
|
||||
};
|
||||
if (EntityWithinDistance(super, gRoomControls.origin_x + 0xa8, gRoomControls.origin_y + 0x80, 0x28)) {
|
||||
super->subAction = 2;
|
||||
super->timer = 45;
|
||||
this->unk_74 = gUnk_080D29B8[Random() & 7] << 0x18 >> 0x18;
|
||||
this->unk_74 = gUnk_080D29B8[Random() & 7];
|
||||
this->unk_76 = super->direction << 8;
|
||||
}
|
||||
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
|
||||
|
|
@ -303,6 +341,10 @@ void Enemy64_Action3_SubAction3(Enemy64Entity* this) {
|
|||
}
|
||||
|
||||
void Enemy64_Action4(Enemy64Entity* this) {
|
||||
static void (*const Enemy64_Action4_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action4_SubAction0, Enemy64_Action4_SubAction1, Enemy64_Action4_SubAction2, Enemy64_Action4_SubAction3,
|
||||
Enemy64_Action4_SubAction4, Enemy64_Action4_SubAction5, Enemy64_Action4_SubAction6, Enemy64_Action4_SubAction7,
|
||||
};
|
||||
Enemy64_Action4_SubActions[super->subAction](this);
|
||||
UpdateAnimationSingleFrame(super);
|
||||
}
|
||||
|
|
@ -497,28 +539,3 @@ void sub_08049B20(Enemy64Entity* this) {
|
|||
gPlayerEntity.y.HALF.HI = (super->y.HALF.HI - tmpY) + gPlayerEntity.y.HALF.HI;
|
||||
}
|
||||
}
|
||||
|
||||
void (*const Enemy64_Actions[])(Enemy64Entity*) = {
|
||||
Enemy64_Init, Enemy64_Action1, Enemy64_Action2, Enemy64_Action3, Enemy64_Action4,
|
||||
};
|
||||
void (*const Enemy64_Action1_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action1_SubAction0,
|
||||
Enemy64_Action1_SubAction1,
|
||||
};
|
||||
void (*const Enemy64_Action2_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action2_SubAction0, Enemy64_Action2_SubAction1, Enemy64_Action2_SubAction2,
|
||||
Enemy64_Action2_SubAction3, Enemy64_Action2_SubAction4, Enemy64_Action2_SubAction5,
|
||||
};
|
||||
void (*const Enemy64_Action3_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action3_SubAction0,
|
||||
Enemy64_Action3_SubAction1,
|
||||
Enemy64_Action3_SubAction2,
|
||||
Enemy64_Action3_SubAction3,
|
||||
};
|
||||
const u8 gUnk_080D29B8[] = {
|
||||
144, 112, 56, 200, 0, 0, 0, 0,
|
||||
};
|
||||
void (*const Enemy64_Action4_SubActions[])(Enemy64Entity*) = {
|
||||
Enemy64_Action4_SubAction0, Enemy64_Action4_SubAction1, Enemy64_Action4_SubAction2, Enemy64_Action4_SubAction3,
|
||||
Enemy64_Action4_SubAction4, Enemy64_Action4_SubAction5, Enemy64_Action4_SubAction6, Enemy64_Action4_SubAction7,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -261,11 +261,11 @@ bool32 LikeLike_StealItem(u32 item) {
|
|||
bool32 ret = FALSE;
|
||||
if (GetInventoryValue(item) == 1) {
|
||||
if (ItemIsShield(gSave.stats.itemButtons[SLOT_A])) {
|
||||
gSave.stats.itemButtons[SLOT_A] = 0;
|
||||
gSave.stats.itemButtons[SLOT_A] = ITEM_NONE;
|
||||
}
|
||||
|
||||
if (ItemIsShield(gSave.stats.itemButtons[SLOT_B])) {
|
||||
gSave.stats.itemButtons[SLOT_B] = 0;
|
||||
gSave.stats.itemButtons[SLOT_B] = ITEM_NONE;
|
||||
}
|
||||
|
||||
SetInventoryValue(item, 0);
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ void OctorokBoss_Hit_SubAction6(OctorokBossEntity* this) {
|
|||
if ((this->unk_80 & 0x80) != 0) {
|
||||
this->unk_80 -= (Random() & 3);
|
||||
if ((this->unk_80 & 0x80) == 0) {
|
||||
this->unk_80 = ((this->unk_80 & 0x80) << 0x18) >> 0x18;
|
||||
this->unk_80 = 0;
|
||||
}
|
||||
} else {
|
||||
this->unk_80 += (Random() & 3);
|
||||
|
|
|
|||
|
|
@ -1362,7 +1362,7 @@ static void sub_08043DB0(Entity* this) {
|
|||
gRoomTransition.field_0x3d = 0x1e - (cVar1 / 0x3c);
|
||||
gRoomTransition.field_0x3c = this->type2;
|
||||
pEVar2 = ((VaatiArm_HeapStruct*)this->myHeap)->parent;
|
||||
gRoomTransition.hurtType = pEVar2->x.HALF.HI;
|
||||
gRoomTransition.field_0x40 = pEVar2->x.HALF.HI;
|
||||
gRoomTransition.field_0x42 = pEVar2->y.HALF.HI;
|
||||
pEVar4 = ((VaatiArm_HeapStruct*)pEVar2->myHeap)->parent;
|
||||
if (pEVar4 != NULL) {
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ void VaatiWrathType0Action0(Entity* this) {
|
|||
this->action = 2;
|
||||
this->timer = 60;
|
||||
}
|
||||
this->x.HALF.HI = gRoomTransition.hurtType;
|
||||
this->x.HALF.HI = gRoomTransition.field_0x40;
|
||||
this->y.HALF.HI = gRoomTransition.field_0x42;
|
||||
sub_08042004(this);
|
||||
} else {
|
||||
|
|
@ -147,7 +147,7 @@ void VaatiWrathType0Action0(Entity* this) {
|
|||
this->subAction = bVar1;
|
||||
this->timer = 120;
|
||||
this->spritePriority.b1 = 0;
|
||||
this->z.HALF.HI = 0xffb0;
|
||||
this->z.HALF.HI = -80;
|
||||
gRoomControls.camera_target = this;
|
||||
sub_080809D4();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,20 +29,20 @@ bool32 sub_0804ACA8(void);
|
|||
bool32 CheckInitPortal(void) {
|
||||
if (gArea.portal_in_use) {
|
||||
gMain.substate = GAMEMAIN_MINISHPORTAL;
|
||||
gArea.filler[8] = 0;
|
||||
gArea.filler[9] = 0;
|
||||
*(u16*)&gArea.filler[10] = 0;
|
||||
gArea.filler3[0] = 0;
|
||||
gArea.filler3[1] = 0;
|
||||
gArea.field_0x10 = 0;
|
||||
SetInitializationPriority();
|
||||
return 1;
|
||||
return TRUE;
|
||||
} else {
|
||||
gArea.filler[18] = gArea.portal_in_use;
|
||||
*(vu8*)&gArea.portal_in_use = gArea.portal_in_use;
|
||||
return 0;
|
||||
gArea.portal_mode = 0;
|
||||
gArea.portal_in_use = FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void GameMain_MinishPortal(void) {
|
||||
gUnk_080D4120[gArea.filler[8]]();
|
||||
gUnk_080D4120[gArea.filler3[0]]();
|
||||
}
|
||||
|
||||
void sub_0804AAD4(void) {
|
||||
|
|
@ -50,7 +50,7 @@ void sub_0804AAD4(void) {
|
|||
gUnk_02018EB0.unk_14 = NULL;
|
||||
EraseAllEntities();
|
||||
CreateObject(MINISH_PORTAL_CLOSEUP, gArea.portal_type, 0);
|
||||
gArea.filler[8]++;
|
||||
gArea.filler3[0]++;
|
||||
}
|
||||
|
||||
void sub_0804AB04(void) {
|
||||
|
|
@ -66,14 +66,14 @@ void sub_0804AB24(void) {
|
|||
if (!gFadeControl.active) {
|
||||
gScreen.lcd.displayControl = 0;
|
||||
sub_0801E104();
|
||||
gArea.filler[8] = 0;
|
||||
gArea.filler3[0] = 0;
|
||||
MenuFadeIn(6, 0);
|
||||
gFadeControl.active = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Subtask_PortalCutscene(void) {
|
||||
gUnk_080D412C[gArea.filler[8]]();
|
||||
gUnk_080D412C[gArea.filler3[0]]();
|
||||
}
|
||||
void sub_0804AB70(void) {
|
||||
const u8* ptr;
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ void UpdateManagers(void) {
|
|||
|
||||
void EraseAllEntities(void) {
|
||||
DeleteAllEntities();
|
||||
MemClear(&gPriorityHandler, 12);
|
||||
MemClear(&gPriorityHandler, sizeof(PriorityHandler));
|
||||
MemClear(&gPlayerEntity, 10880);
|
||||
MemClear(&gUnk_02033290, 2048);
|
||||
sub_0805E98C();
|
||||
|
|
|
|||
65
src/game.c
65
src/game.c
|
|
@ -674,14 +674,14 @@ static void sub_08052010(void) {
|
|||
InitSoundPlayingInfo();
|
||||
MessageInitialize();
|
||||
DispReset(1);
|
||||
MemClear(gBG1Buffer, 0x800);
|
||||
MemClear(gBG2Buffer, 0x800);
|
||||
MemClear(gBG1Buffer, sizeof(gBG1Buffer));
|
||||
MemClear(gBG2Buffer, sizeof(gBG2Buffer));
|
||||
sub_080A4D34();
|
||||
LoadPaletteGroup(0xA);
|
||||
SetColor(0, 0);
|
||||
LoadGfxGroup(4);
|
||||
MemClear((void*)0x06000000, 0x20);
|
||||
MemClear(&gMenu, 0x30);
|
||||
MemClear(&gGenericMenu, sizeof(gGenericMenu));
|
||||
gScreen.lcd.displayControl |= DISPCNT_OBJ_ON;
|
||||
gScreen.bg1.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_CHARBASE(0);
|
||||
gScreen.bg2.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(29) | BGCNT_CHARBASE(1);
|
||||
|
|
@ -923,7 +923,7 @@ void SetPopupState(u32 type, u32 choice_idx) {
|
|||
.draw_border = 0,
|
||||
.border_type = 0,
|
||||
.fill_type = 6,
|
||||
._15 = 4,
|
||||
.charColor = 4,
|
||||
._16 = 1,
|
||||
.stylized = 0,
|
||||
};
|
||||
|
|
@ -1348,9 +1348,9 @@ static void CreateMiscManager(void) {
|
|||
|
||||
static void sub_08052C3C(void) {
|
||||
if (gArea.portal_mode == 0)
|
||||
gArea.unk1A = gArea.portal_mode;
|
||||
if (gArea.unk1A) {
|
||||
gArea.unk1A--;
|
||||
gArea.portal_timer = 0;
|
||||
if (gArea.portal_timer) {
|
||||
gArea.portal_timer--;
|
||||
gArea.portal_mode = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -1388,8 +1388,8 @@ void InitRoom(void) {
|
|||
gArea.locationIndex = a_hdr->location;
|
||||
gArea.dungeon_idx = a_hdr->location - 23;
|
||||
gArea.localFlagOffset = gLocalFlagBanks[a_hdr->flag_bank];
|
||||
gArea.filler[0] = a_hdr->flag_bank;
|
||||
gArea.unk1A = 180;
|
||||
gArea.flag_bank = a_hdr->flag_bank;
|
||||
gArea.portal_timer = 180;
|
||||
gArea.lightLevel = 256;
|
||||
InitRoomTransition();
|
||||
InitAllRoomResInfo();
|
||||
|
|
@ -2483,9 +2483,9 @@ void PutItemOnSlot(u32 itemID) {
|
|||
}
|
||||
if (itemID2 - 1 < 0x1f) {
|
||||
itemSlot = 2;
|
||||
if (gSave.stats.itemButtons[SLOT_A] == 0) {
|
||||
if (gSave.stats.itemButtons[SLOT_A] == ITEM_NONE) {
|
||||
itemSlot = 0;
|
||||
} else if (gSave.stats.itemButtons[SLOT_B] == 0) {
|
||||
} else if (gSave.stats.itemButtons[SLOT_B] == ITEM_NONE) {
|
||||
itemSlot = 1;
|
||||
}
|
||||
if (itemSlot == 2) {
|
||||
|
|
@ -2527,13 +2527,10 @@ void ForceEquipItem(u32 itemID, u32 itemSlot) {
|
|||
u32 SetBottleContents(u32 itemID, u32 bottleIndex) {
|
||||
if (bottleIndex > 3) {
|
||||
bottleIndex = 0;
|
||||
if (gSave.stats.bottles[0] != 0x20) {
|
||||
do {
|
||||
bottleIndex++;
|
||||
if (bottleIndex > 3) {
|
||||
return bottleIndex;
|
||||
}
|
||||
} while (gSave.stats.bottles[bottleIndex] != 0x20);
|
||||
for (bottleIndex = 0; gSave.stats.bottles[bottleIndex] != ITEM_BOTTLE_EMPTY;) {
|
||||
if (++bottleIndex > 3) {
|
||||
return bottleIndex;
|
||||
}
|
||||
}
|
||||
if (bottleIndex > 3) {
|
||||
return bottleIndex;
|
||||
|
|
@ -2558,23 +2555,23 @@ bool32 ItemIsSword(u32 item) {
|
|||
|
||||
bool32 ItemIsShield(u32 id) {
|
||||
switch (id) {
|
||||
case 13:
|
||||
case 14:
|
||||
return 1;
|
||||
case ITEM_SHIELD:
|
||||
case ITEM_MIRROR_SHIELD:
|
||||
return TRUE;
|
||||
default:
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool32 ItemIsBottle(u32 id) {
|
||||
switch (id) {
|
||||
case 28:
|
||||
case 29:
|
||||
case 30:
|
||||
case 31:
|
||||
return 1;
|
||||
case ITEM_BOTTLE1:
|
||||
case ITEM_BOTTLE2:
|
||||
case ITEM_BOTTLE3:
|
||||
case ITEM_BOTTLE4:
|
||||
return TRUE;
|
||||
default:
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2604,15 +2601,15 @@ void sub_08054524(void) {
|
|||
}
|
||||
|
||||
bVar1 = gUnk_080FE1C6[bVar1];
|
||||
MemCopy(&gAreaDroptables[bVar1], &gRoomVars.currentAreaDroptable, 0x20);
|
||||
MemCopy(&gAreaDroptables[bVar1], &gRoomVars.currentAreaDroptable, sizeof(Droptable));
|
||||
}
|
||||
|
||||
void sub_08054564(void) {
|
||||
gRoomVars.field_0x2 = 1;
|
||||
void DisableRandomDrops(void) {
|
||||
gRoomVars.randomDropsDisabled = TRUE;
|
||||
}
|
||||
|
||||
void sub_08054570(void) {
|
||||
gRoomVars.field_0x2 = 0;
|
||||
void EnableRandomDrops(void) {
|
||||
gRoomVars.randomDropsDisabled = FALSE;
|
||||
}
|
||||
|
||||
extern void sub_08000F14(s16*, const s16*, const s16*, const s16*);
|
||||
|
|
@ -2630,7 +2627,7 @@ u32 CreateRandomItemDrop(Entity* arg0, u32 arg1) {
|
|||
const Droptable *ptr2, *ptr3, *ptr4;
|
||||
Droptable droptable;
|
||||
r3 = arg1;
|
||||
if (gRoomVars.field_0x2 != 1) {
|
||||
if (gRoomVars.randomDropsDisabled != TRUE) {
|
||||
ptr2 = &gDroptableModifiers[DROPTABLE_NONE];
|
||||
ptr4 = NULL;
|
||||
switch (r3) {
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ static void HandlePlayerLife(Entity* this) {
|
|||
if ((gPlayerEntity.contactFlags & 0x80) && (gPlayerEntity.iframes > 0))
|
||||
SoundReq(SFX_86);
|
||||
|
||||
gPlayerState.flags &= ~(PL_FALLING | PL_FLAGS2000000);
|
||||
gPlayerState.flags &= ~(PL_FALLING | PL_CONVEYOR_PUSHED);
|
||||
if (gPlayerState.flags & PL_BURNING)
|
||||
ResetPlayerItem();
|
||||
if ((gPlayerState.flags & PL_CLONING) && gPlayerState.chargeState.action == 0)
|
||||
|
|
@ -332,7 +332,7 @@ static void sub_080171F0(void) {
|
|||
gPlayerState.mobility = 0;
|
||||
gPlayerState.speed_modifier = 0;
|
||||
gPlayerState.field_0xaa = 0;
|
||||
MemClear(&gCarriedEntity, 0x8c);
|
||||
MemClear(&gCarriedEntity, sizeof(gCarriedEntity));
|
||||
gPlayerEntity.spriteOffsetY = gPlayerState.spriteOffsetY;
|
||||
gPlayerState.spriteOffsetY = 0;
|
||||
sub_0807B0C8();
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ void sub_0801855C(void) {
|
|||
// TODO: Figure out what is up with the pointer assignment
|
||||
struct_gUnk_080B3D20* pcVar2 = (struct_gUnk_080B3D20*)&gArea.unk28;
|
||||
|
||||
MemClear(pcVar2, 0x14);
|
||||
MemClear(pcVar2, sizeof(struct_area_28));
|
||||
ptr = (struct_area_28*)pcVar2;
|
||||
for (pcVar2 = gUnk_080B3D20, bVar3 = 0; pcVar2->unk0 != 0xff; pcVar2++) {
|
||||
if (sub_080185B4(pcVar2)) {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ void DelayedEntityLoadManager_Main(DelayedEntityLoadManager* this) {
|
|||
}
|
||||
if (super->action == 0) {
|
||||
super->action++;
|
||||
this->unk_20 = gArea.filler[2];
|
||||
this->unk_20 = gArea.filler[1];
|
||||
SetDefaultPriority((Entity*)this, 6);
|
||||
npcPtr = gNPCData;
|
||||
npcPtr += (super->type2 + this->unk_20);
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ void FightManager_WaitForFlag(FightManager* this) {
|
|||
if (CheckFlags(this->fightStartFlag)) {
|
||||
FightManager_LoadFight(this);
|
||||
if (!this->unk_35) {
|
||||
tmp = gRoomVars.field_0x9 ? gRoomVars.field_0x9 : 0x33;
|
||||
this->unk_20 = gArea.bgm;
|
||||
tmp = gRoomVars.fight_bgm ? gRoomVars.fight_bgm : BGM_FIGHT_THEME2;
|
||||
this->prevBgm = gArea.bgm;
|
||||
gArea.bgm = tmp;
|
||||
SoundReq(tmp);
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ void FightManager_WaitForDone(FightManager* this) {
|
|||
// restore music (if it was set, which apparently is only possible if there's a flag the fight waited for)
|
||||
if (this->fightStartFlag) {
|
||||
if (!this->unk_35) {
|
||||
gArea.bgm = this->unk_20;
|
||||
gArea.bgm = this->prevBgm;
|
||||
SoundReq(gArea.bgm);
|
||||
sub_0801855C();
|
||||
}
|
||||
|
|
@ -138,7 +138,7 @@ FightManagerHelper* FightManager_CreateHelper(FightManager* this) {
|
|||
extra->base.type = 1;
|
||||
extra->base.parent = (Entity*)this;
|
||||
super->timer++;
|
||||
MemClear(&extra->enemies, 0x20);
|
||||
MemClear(&extra->enemies, sizeof(extra->enemies));
|
||||
AppendEntityToList((Entity*)extra, 8);
|
||||
}
|
||||
return extra;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ void HyruleTownBellManager_Main(HyruleTownBellManager* this) {
|
|||
if (object != NULL) {
|
||||
object->x.HALF.HI = roomControls->origin_x + 0x1f8;
|
||||
object->y.HALF.HI = roomControls->origin_y + 0x140;
|
||||
object->z.HALF.HI = 0xffe8;
|
||||
object->z.HALF.HI = -24;
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ void Vaati3StartManager_Type1_Init(Vaati3StartManager* this) {
|
|||
super->child = enemy;
|
||||
super->action = 1;
|
||||
SetPlayerControl(3);
|
||||
gArea.queued_bgm = 0x80010000;
|
||||
gArea.queued_bgm = SONG_STOP_ALL;
|
||||
SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 4);
|
||||
SoundReq(SFX_APPARATE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,15 +70,15 @@ void sub_08059608(WeatherChangeManager* this) {
|
|||
return;
|
||||
}
|
||||
if (sub_0805986C()) {
|
||||
if (gArea.queued_bgm != 0x1E) {
|
||||
gArea.queued_bgm = 0x1E;
|
||||
if (gArea.queued_bgm != BGM_CRENEL_STORM) {
|
||||
gArea.queued_bgm = BGM_CRENEL_STORM;
|
||||
this->unk_23 = 0x78;
|
||||
SoundReq(SONG_FADE_OUT_BGM);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (gArea.queued_bgm != 0x37) {
|
||||
gArea.queued_bgm = 0x37;
|
||||
if (gArea.queued_bgm != BGM_MT_CRENEL) {
|
||||
gArea.queued_bgm = BGM_MT_CRENEL;
|
||||
this->unk_23 = 0x78;
|
||||
SoundReq(SONG_FADE_OUT_BGM);
|
||||
}
|
||||
|
|
@ -214,6 +214,6 @@ void sub_08059960(const u16* unk1, const u16* unk2, u16* unk3, u8 unk4) {
|
|||
void sub_08059994(void) {
|
||||
if (sub_0805986C()) {
|
||||
LoadPaletteGroup(0x5B);
|
||||
gArea.queued_bgm = 0x1E;
|
||||
gArea.queued_bgm = BGM_CRENEL_STORM;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,8 +101,8 @@ void FigurineMenu_080A4608(void) {
|
|||
sub_080A4DA8(3);
|
||||
SetColor(0, gPaletteBuffer[0xfb]);
|
||||
SetColor(0x15c, gPaletteBuffer[0xd3]);
|
||||
MemClear(&gBG0Buffer, 0x800);
|
||||
MemClear(&gBG3Buffer, 0x1000);
|
||||
MemClear(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
MemClear(&gBG3Buffer, sizeof(gBG3Buffer));
|
||||
gScreen.controls.window0HorizontalDimensions = DISPLAY_WIDTH;
|
||||
gScreen.controls.window0VerticalDimensions = 0x7898;
|
||||
gScreen.controls.windowInsideControl = 0x1f;
|
||||
|
|
@ -534,8 +534,8 @@ u32 sub_080A4CBC(u32 param_1) {
|
|||
|
||||
if (gFigurineMenu.unk1a != param_1) {
|
||||
gFigurineMenu.unk1a = param_1;
|
||||
MemClear(&gBG1Buffer, 0x800);
|
||||
MemCopy(&gBG1Buffer, (void*)0x600e000, 0x800);
|
||||
MemClear(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
MemCopy(&gBG1Buffer, (void*)0x600e000, sizeof(gBG1Buffer));
|
||||
iVar1 = sub_080A4948(param_1);
|
||||
if (iVar1 != 0) {
|
||||
sub_0805F46C(param_1 + 0x900, &gUnk_08128190);
|
||||
|
|
@ -589,9 +589,9 @@ void sub_080A4DB8(u32 param_1) {
|
|||
const struct_08128AD8* ptr;
|
||||
|
||||
DisableVBlankDMA();
|
||||
MemClear(&gBG0Buffer, 0x800);
|
||||
MemClear(&gBG1Buffer, 0x800);
|
||||
MemClear(&gBG2Buffer, 0x800);
|
||||
MemClear(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
MemClear(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
MemClear(&gBG2Buffer, sizeof(gBG2Buffer));
|
||||
MemClear(gUnk_0200AF00.elements, sizeof(gUnk_0200AF00.elements));
|
||||
MemClear(&gFigurineMenu, sizeof(gFigurineMenu));
|
||||
gFigurineMenu.unk2e = -1;
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ void PauseMenu_Variant2(void) {
|
|||
sub_080A4E90(6);
|
||||
} else {
|
||||
sub_080A4E90(3);
|
||||
MemClear(&gBG0Buffer, 0x800);
|
||||
MemClear(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
gScreen.bg0.updated = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -527,14 +527,14 @@ void PauseMenu_ItemMenu_Draw(void) {
|
|||
gOamCmd._8 = 0x800;
|
||||
DrawDirect(sub_080A5384_draw_constant0, 0x22);
|
||||
}
|
||||
i = GetMenuSlotForItem(gSave.stats.itemButtons[0]);
|
||||
i = GetMenuSlotForItem(gSave.stats.itemButtons[SLOT_A]);
|
||||
if (i < MENU_SLOT_COUNT) {
|
||||
entry = &gItemMenuTable[i];
|
||||
gOamCmd.x = entry->x;
|
||||
gOamCmd.y = entry->y;
|
||||
DrawDirect(sub_080A5384_draw_constant0, 3);
|
||||
}
|
||||
i = GetMenuSlotForItem(gSave.stats.itemButtons[1]);
|
||||
i = GetMenuSlotForItem(gSave.stats.itemButtons[SLOT_B]);
|
||||
if (i < MENU_SLOT_COUNT) {
|
||||
entry = &gItemMenuTable[i];
|
||||
gOamCmd.x = entry->x;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "npc.h"
|
||||
#include "game.h"
|
||||
#include "functions.h"
|
||||
#include "item.h"
|
||||
|
||||
typedef struct {
|
||||
s8 unk_00;
|
||||
|
|
@ -24,7 +25,14 @@ void sub_0806336C(Entity* this);
|
|||
void sub_08063390(Entity* this);
|
||||
|
||||
static const u8 gUnk_0810C88C[] = {
|
||||
0, 0x2d, 0x2c, 0x29, 0x2a, 0x2b, 0x2e, 0,
|
||||
ITEM_NONE,
|
||||
ITEM_BOTTLE_PICOLYTE_BLUE,
|
||||
ITEM_BOTTLE_PICOLYTE_GREEN,
|
||||
ITEM_BOTTLE_PICOLYTE_RED,
|
||||
ITEM_BOTTLE_PICOLYTE_ORANGE,
|
||||
ITEM_BOTTLE_PICOLYTE_YELLOW,
|
||||
ITEM_BOTTLE_PICOLYTE_WHITE,
|
||||
ITEM_NONE,
|
||||
};
|
||||
static const Hitbox gUnk_0810C894 = { 0, 0, { 0, 0, 0, 0 }, 16, 6 };
|
||||
static const gUnk_0810C89C_struct gUnk_0810C89C[] = {
|
||||
|
|
|
|||
|
|
@ -423,7 +423,7 @@ void sub_0806D5D4(void) {
|
|||
InitBiggoronTimer();
|
||||
itemSlot = IsItemEquipped(ITEM_SHIELD);
|
||||
if (itemSlot != 2) {
|
||||
gSave.stats.itemButtons[itemSlot] = 0;
|
||||
gSave.stats.itemButtons[itemSlot] = ITEM_NONE;
|
||||
}
|
||||
SetInventoryValue(ITEM_SHIELD, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,38 +6,40 @@
|
|||
*/
|
||||
#include "entity.h"
|
||||
|
||||
const u8 gUnk_08120C80[];
|
||||
const u8 gUnk_08120C92[];
|
||||
typedef struct {
|
||||
u8 b3Rendering;
|
||||
u8 b0Priority;
|
||||
u8 flipY;
|
||||
} PACKED BarrelInsideSpriteDef;
|
||||
|
||||
void BarrelInside(Entity* this) {
|
||||
const u8* ptr;
|
||||
static const BarrelInsideSpriteDef spriteDefs[] = {
|
||||
{ 2, 5, 2 }, { 2, 5, 2 }, { 3, 4, 2 }, { 3, 6, 3 }, { 3, 5, 3 }, { 3, 6, 3 },
|
||||
};
|
||||
|
||||
static const u8 frameIndices[] = {
|
||||
4, 6, 7, 0, 0, 0,
|
||||
};
|
||||
const BarrelInsideSpriteDef* ptr;
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
this->frameIndex = this->type;
|
||||
this->timer = 16;
|
||||
this->subtimer = 1;
|
||||
ptr = gUnk_08120C80 + this->type * 3;
|
||||
this->spriteRendering.b3 = *ptr;
|
||||
this->spritePriority.b0 = *(ptr + 1);
|
||||
this->spriteOrientation.flipY = *(ptr + 2);
|
||||
ptr = &spriteDefs[this->type];
|
||||
this->spriteRendering.b3 = ptr->b3Rendering;
|
||||
this->spritePriority.b0 = ptr->b0Priority;
|
||||
this->spriteOrientation.flipY = ptr->flipY;
|
||||
}
|
||||
|
||||
if (this->type == 4) {
|
||||
if (--this->timer == 0) {
|
||||
this->timer = 16;
|
||||
this->frameIndex = gUnk_08120C92[this->subtimer++];
|
||||
this->frameIndex = frameIndices[this->subtimer++];
|
||||
if (this->subtimer == 3) {
|
||||
this->subtimer = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const u8 gUnk_08120C80[] = {
|
||||
2, 5, 2, 2, 5, 2, 3, 4, 2, 3, 6, 3, 3, 5, 3, 3, 6, 3,
|
||||
};
|
||||
|
||||
const u8 gUnk_08120C92[] = {
|
||||
4, 6, 7, 0, 0, 0,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ void EnemyItem(EnemyItemEntity* this) {
|
|||
if (super->child == NULL) {
|
||||
sub_080A2534(this);
|
||||
}
|
||||
sub_08054564();
|
||||
DisableRandomDrops();
|
||||
}
|
||||
entity = super->child;
|
||||
if (entity != NULL) {
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ void Fairy_Action4(FairyEntity* this) {
|
|||
}
|
||||
if (--super->subtimer == 0) {
|
||||
super->subtimer = 6;
|
||||
if (((--super->spriteOffsetY) * 0x1000000) >> 0x18 < -0x16) {
|
||||
if (--super->spriteOffsetY < -0x16) {
|
||||
sub_08081404(super, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ void FourElements_Init(FourElementsEntity* this) {
|
|||
super->spritePriority.b1 = 2;
|
||||
super->spriteRendering.b3 = 1;
|
||||
super->hitbox = (Hitbox*)&gHitbox_6;
|
||||
super->z.HALF.HI = 0xff40;
|
||||
super->z.HALF.HI = -192;
|
||||
this->unk_6a = 0x40;
|
||||
switch (super->type) {
|
||||
case 0x41:
|
||||
|
|
@ -157,10 +157,10 @@ void sub_080A0424(FourElementsEntity* this) {
|
|||
}
|
||||
|
||||
void sub_080A0444(FourElementsEntity* this) {
|
||||
static const u8 gUnk_081248B4[] = {
|
||||
249, 248, 247, 246, 245, 246, 247, 248,
|
||||
static const s8 gUnk_081248B4[] = {
|
||||
-7, -8, -9, -10, -11, -10, -9, -8,
|
||||
};
|
||||
super->z.HALF.HI = gUnk_081248B4[(super->subtimer++ >> 3) & 7] << 0x18 >> 0x18;
|
||||
super->z.HALF.HI = gUnk_081248B4[(super->subtimer++ >> 3) & 7];
|
||||
}
|
||||
|
||||
void sub_080A0464(FourElementsEntity* this, ScriptExecutionContext* context) {
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@ void sub_0809CB70(FrozenOctorokEntity* this, s32 angle, s32 radius) {
|
|||
NONMATCH("asm/non_matching/frozenOctorok/sub_0809CBE4.inc", void sub_0809CBE4(FrozenOctorokEntity* this)) {
|
||||
this->unk_79 += super->subtimer;
|
||||
if ((s8)super->subtimer < 0) {
|
||||
if (super->timer < -(this->unk_79 << 0x18 >> 0x18)) {
|
||||
if (super->timer < -this->unk_79) {
|
||||
super->subtimer = -super->subtimer;
|
||||
SoundReq(SFX_19E);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,12 +130,12 @@ void GleerokParticle_Init(GleerokParticleEntity* this) {
|
|||
this->unk7c = 0xce;
|
||||
this->unk74 = 0;
|
||||
if ((ptr->unk4 & 0x40) != 0) {
|
||||
this->unk80.HALF.HI = 0xff00;
|
||||
this->unk80.HALF.HI = -0x100;
|
||||
} else {
|
||||
this->unk80.HALF.HI = 0x100;
|
||||
}
|
||||
if ((ptr->unk4 & 0x80) != 0) {
|
||||
this->unk84.HALF.HI = 0xff00;
|
||||
this->unk84.HALF.HI = -0x100;
|
||||
} else {
|
||||
this->unk84.HALF.HI = 0x100;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ void GyorgBossObject_SetupStart(GyorgBossObjectEntity* this) {
|
|||
this->unk_76 = 0xc0;
|
||||
this->unk_78 = 0xc0;
|
||||
gRoomTransition.field_0x39 = 1;
|
||||
gPlayerState.flags |= PL_FLAGS20000;
|
||||
gPlayerState.flags |= PL_GYORG_FIGHT;
|
||||
gPlayerState.startPosX = gRoomControls.origin_x + 0x200;
|
||||
gPlayerState.startPosY = gRoomControls.origin_y + 0x210;
|
||||
#ifndef EU
|
||||
|
|
@ -238,7 +238,7 @@ void GyorgBossObject_FemalePhase4(GyorgBossObjectEntity* this) {
|
|||
this->timer = 420;
|
||||
super->direction = 0;
|
||||
super->speed = 0x60;
|
||||
gPlayerState.flags &= ~PL_FLAGS20000;
|
||||
gPlayerState.flags &= ~PL_GYORG_FIGHT;
|
||||
CopyPosition(&gPlayerEntity, super);
|
||||
gRoomControls.camera_target = super;
|
||||
SetPlayerControl(2);
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ void KeyStealingTakkuri_Type3_Init(KeyStealingTakkuriEntity* this) {
|
|||
ptr = &gUnk_08124132[super->type2 * 2];
|
||||
super->x.HALF.HI = gRoomControls.origin_x + ptr[0];
|
||||
super->y.HALF.HI = gRoomControls.origin_y + ptr[1] + 0x40;
|
||||
super->z.HALF.HI = 0xffc0;
|
||||
super->z.HALF.HI = -64;
|
||||
UpdateSpriteForCollisionLayer(super);
|
||||
InitAnimationForceUpdate(super, gUnk_08124128[super->type2]);
|
||||
obj = CreateObject(KEY_STEALING_TAKKURI, 1, 0);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ void LadderUp(Entity* this) {
|
|||
this->spriteOffsetY += 8;
|
||||
InitializeAnimation(this, 10);
|
||||
if (this->action == 1) {
|
||||
this->z.HALF.HI = 0xff80;
|
||||
this->z.HALF.HI = -0x80;
|
||||
}
|
||||
if (this->type2) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ void LavaPlatform_Type1Action1(LavaPlatformEntity* this) {
|
|||
super->animationState ^= 1;
|
||||
InitializeAnimation(super, (u32)super->animationState);
|
||||
}
|
||||
if (--super->spriteOffsetY * 0x1000000 >> 0x18 == -3) {
|
||||
if (--super->spriteOffsetY == -3) {
|
||||
sub_0809264C(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -372,12 +372,12 @@ void sub_08085A98(LilypadLargeEntity* this) {
|
|||
super->subAction = 2;
|
||||
if (gArea.locationIndex == 0x1b) {
|
||||
super->y.HALF.HI += 0xd0;
|
||||
super->z.HALF.HI = 0xff30;
|
||||
super->z.HALF.HI = -0xd0;
|
||||
this->unk_82 = 0x46;
|
||||
SetLocalFlag(0x73);
|
||||
} else {
|
||||
super->y.HALF.HI += 0x40;
|
||||
super->z.HALF.HI = 0xffc0;
|
||||
super->z.HALF.HI = -0x40;
|
||||
this->unk_82 = 0xf;
|
||||
}
|
||||
CreateObjectWithParent(super, LILYPAD_LARGE_FALLING, 0, 0);
|
||||
|
|
|
|||
|
|
@ -62,10 +62,10 @@ void LinkHoldingItem_Action1(LinkHoldingItemEntity* this) {
|
|||
case 1:
|
||||
this->unk_68 = GiveItem(super->type, super->type2);
|
||||
switch (super->type) {
|
||||
case 0x40:
|
||||
case 0x41:
|
||||
case 0x42:
|
||||
case 0x43:
|
||||
case ITEM_EARTH_ELEMENT:
|
||||
case ITEM_FIRE_ELEMENT:
|
||||
case ITEM_WATER_ELEMENT:
|
||||
case ITEM_WIND_ELEMENT:
|
||||
break;
|
||||
default:
|
||||
SoundReq(SFX_ITEM_GET);
|
||||
|
|
@ -78,7 +78,7 @@ void LinkHoldingItem_Action1(LinkHoldingItemEntity* this) {
|
|||
SoundReq(SFX_ITEM_GET);
|
||||
break;
|
||||
case 5:
|
||||
tmp = GetInventoryValue((u32)super->type);
|
||||
tmp = GetInventoryValue(super->type);
|
||||
ptr = &gItemMetaData[super->type];
|
||||
if (tmp == 0) {
|
||||
this->unk_68 = *(u16*)&ptr->textId;
|
||||
|
|
@ -109,10 +109,10 @@ void LinkHoldingItem_Action2(LinkHoldingItemEntity* this) {
|
|||
messageIndex = this->unk_68;
|
||||
if (messageIndex != 0) {
|
||||
switch (super->type) {
|
||||
case 0x63:
|
||||
case ITEM_HEART_PIECE:
|
||||
messageIndex += gSave.stats.heartPieces;
|
||||
break;
|
||||
case 0x3f:
|
||||
case ITEM_SHELLS:
|
||||
if (super->type2 > 1) {
|
||||
if (messageIndex == TEXT_INDEX(TEXT_ITEM_GET, 0x77)) {
|
||||
messageIndex--;
|
||||
|
|
@ -138,11 +138,11 @@ void LinkHoldingItem_Action3(LinkHoldingItemEntity* this) {
|
|||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
if (super->type != 0x62) {
|
||||
if (super->type != 0x63) {
|
||||
if (super->type != ITEM_HEART_CONTAINER) {
|
||||
if (super->type != ITEM_HEART_PIECE) {
|
||||
break;
|
||||
}
|
||||
ModHealth(0xa0);
|
||||
ModHealth(160);
|
||||
gSave.stats.heartPieces++;
|
||||
if (gSave.stats.heartPieces < 4) {
|
||||
break;
|
||||
|
|
@ -150,15 +150,15 @@ void LinkHoldingItem_Action3(LinkHoldingItemEntity* this) {
|
|||
gSave.stats.heartPieces = 0;
|
||||
}
|
||||
gSave.stats.maxHealth += 8;
|
||||
if (gSave.stats.maxHealth > 0xa0) {
|
||||
gSave.stats.maxHealth = 0xa0;
|
||||
if (gSave.stats.maxHealth > 160) {
|
||||
gSave.stats.maxHealth = 160;
|
||||
}
|
||||
ModHealth(0xa0);
|
||||
ModHealth(160);
|
||||
break;
|
||||
case 3:
|
||||
tmp = GetBottleContaining(super->type);
|
||||
if (tmp != 0) {
|
||||
gSave.stats.itemButtons[tmp + 1] = 0x20;
|
||||
gSave.stats.itemButtons[tmp + 1] = ITEM_BOTTLE_EMPTY;
|
||||
} else {
|
||||
SetInventoryValue(super->type, ITEM_GREEN_SWORD);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ void MacroPlayer_Type0_Init(MacroPlayerEntity* this) {
|
|||
super->spriteOrientation.flipY = 2;
|
||||
this->unk68.HWORD = 0x114;
|
||||
super->animIndex = 0xff;
|
||||
super->z.HALF.HI = 0xff50;
|
||||
super->z.HALF.HI = -0xb0;
|
||||
this->unk6a = 4;
|
||||
super->spriteRendering.b0 = 3;
|
||||
SetAffineInfo(super, 4, 4, 0);
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ void sub_0808D030(void) {
|
|||
s32 index;
|
||||
|
||||
ptr = gOAMControls.oam;
|
||||
index = 0x80;
|
||||
index = ARRAY_COUNT(gOAMControls.oam);
|
||||
MemClear(&gOAMControls, 0xb74);
|
||||
while (index != 0) {
|
||||
// TODO split up into bitfield writes?
|
||||
|
|
|
|||
|
|
@ -67,10 +67,9 @@ void Object30_Action1(Object30Entity* this) {
|
|||
}
|
||||
|
||||
void Object30_Action2(Object30Entity* this) {
|
||||
static const u8 gUnk_08121194[] = {
|
||||
249, 248, 247, 246, 245, 246, 247, 248,
|
||||
static const s8 gUnk_08121194[] = {
|
||||
-7, -8, -9, -10, -11, -10, -9, -8,
|
||||
};
|
||||
u8 tmp;
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
if (this->gravity != 0) {
|
||||
|
|
@ -90,8 +89,7 @@ void Object30_Action2(Object30Entity* this) {
|
|||
}
|
||||
// fallthrough
|
||||
case 1:
|
||||
tmp = gUnk_08121194[(super->subtimer++ >> 3) & 7];
|
||||
super->z.HALF.HI = tmp << 0x18 >> 0x18;
|
||||
super->z.HALF.HI = gUnk_08121194[(super->subtimer++ >> 3) & 7];
|
||||
if (!IsCollidingPlayer(super)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ void ObjectA8_Action6(ObjectA8Entity* this) {
|
|||
}
|
||||
if (--super->subtimer == 0) {
|
||||
super->subtimer = 6;
|
||||
if (((--super->spriteOffsetY) * 0x1000000) >> 0x18 < -0x16) {
|
||||
if (--super->spriteOffsetY < -0x16) {
|
||||
sub_08081404(super, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ void Whirlwind_Init(Entity* this) {
|
|||
ChangeObjPalette(this, 0x161);
|
||||
InitializeAnimation(this, 1);
|
||||
} else {
|
||||
this->z.HALF.HI = 0xffe8;
|
||||
this->z.HALF.HI = -24;
|
||||
InitializeAnimation(this, 1);
|
||||
}
|
||||
if ((this->flags & ENT_SCRIPTED) != 0) {
|
||||
|
|
|
|||
|
|
@ -26,12 +26,12 @@ static void sub_0806FEFC(struct_gUnk_020000C0_1*, Entity*);
|
|||
static bool32 sub_0807007C(struct_gUnk_020000C0*, u32);
|
||||
|
||||
void sub_0806F364(void) {
|
||||
gArea.filler[2] ^= 0x80;
|
||||
MemClear(&gArea.filler6[(gArea.filler[2] + 7) / 8], 16);
|
||||
gArea.filler[1] ^= 0x80;
|
||||
MemClear(&gArea.filler6[(gArea.filler[1] + 7) / 8], 16);
|
||||
}
|
||||
|
||||
void sub_0806F38C(void) {
|
||||
gArea.filler[2] ^= 0x80;
|
||||
gArea.filler[1] ^= 0x80;
|
||||
}
|
||||
|
||||
u32 sub_0806F39C(Entity* ent) {
|
||||
|
|
|
|||
|
|
@ -522,7 +522,7 @@ static void PlayerNormal(Entity* this) {
|
|||
gPlayerState.framestate = PL_STATE_SWIM;
|
||||
sub_0807ACCC(this);
|
||||
} else {
|
||||
if ((gPlayerState.flags & PL_FLAGS2000000) == 0)
|
||||
if ((gPlayerState.flags & PL_CONVEYOR_PUSHED) == 0)
|
||||
this->spritePriority.b1 = 1;
|
||||
if (gPlayerState.dash_state & 0x40) {
|
||||
sub_08008AA0(this);
|
||||
|
|
@ -1257,7 +1257,7 @@ static void sub_080717F8(Entity* this) {
|
|||
this->animationState = gArea.portal_exit_dir << 1;
|
||||
this->x.HALF.HI = gArea.portal_x + sOffsets[gArea.portal_exit_dir * 2];
|
||||
this->y.HALF.HI = gArea.portal_y + sOffsets[gArea.portal_exit_dir * 2 + 1];
|
||||
gArea.unk1A = 0xb4;
|
||||
gArea.portal_timer = 180;
|
||||
gPauseMenuOptions.disabled = 0;
|
||||
this->action = PLAYER_MINISH;
|
||||
this->subAction = 0;
|
||||
|
|
@ -1551,7 +1551,7 @@ static void sub_08071D04(Entity* this) {
|
|||
return;
|
||||
|
||||
deltaHealth = 0;
|
||||
idx = GetBottleContaining(0x28);
|
||||
idx = GetBottleContaining(ITEM_BOTTLE_FAIRY);
|
||||
if (idx != 0) {
|
||||
gSave.stats.bottles[idx - 1] = 0x20;
|
||||
CreateObject(FAIRY, 0x60, 2);
|
||||
|
|
@ -3783,7 +3783,7 @@ static void conveyer_push(Entity* this) {
|
|||
ResetPlayerItem();
|
||||
this->spritePriority.b1 = 0;
|
||||
this->speed = WALK_SPEED;
|
||||
gPlayerState.flags |= PL_FLAGS2000000;
|
||||
gPlayerState.flags |= PL_CONVEYOR_PUSHED;
|
||||
gPlayerState.field_0xa |= 0x80;
|
||||
gPlayerState.mobility |= 0x80;
|
||||
gPlayerState.field_0x27[0]++;
|
||||
|
|
|
|||
|
|
@ -30,15 +30,15 @@ void InitItemGetSequence(u32 type, u32 type2, u32 delay) {
|
|||
}
|
||||
}
|
||||
|
||||
static Entity* GiveItemWithCutscene(u32 type, u32 type2, u32 delay) {
|
||||
static Entity* GiveItemWithCutscene(u32 item, u32 type2, u32 delay) {
|
||||
Entity* e;
|
||||
if (type == ITEM_SHELLS && gSave.stats.hasAllFigurines) {
|
||||
type = ITEM_RUPEE50;
|
||||
if (item == ITEM_SHELLS && gSave.stats.hasAllFigurines) {
|
||||
item = ITEM_RUPEE50;
|
||||
type2 = 0;
|
||||
}
|
||||
e = CreateItemGetEntity();
|
||||
if (e != NULL) {
|
||||
e->type = type;
|
||||
e->type = item;
|
||||
e->type2 = type2;
|
||||
e->timer = delay;
|
||||
e->id = LINK_HOLDING_ITEM;
|
||||
|
|
|
|||
|
|
@ -184,8 +184,8 @@ void sub_08077698(PlayerEntity* this) {
|
|||
((gPlayerState.jump_status & 0x40) == 0)) &&
|
||||
(gPlayerState.swim_state == 0)) &&
|
||||
((sub_08077758(this) && (sub_080777A0() == 0)))) {
|
||||
sub_08077880(gSave.stats.itemButtons[0], 1, 0);
|
||||
sub_08077880(gSave.stats.itemButtons[1], 2, 0);
|
||||
sub_08077880(gSave.stats.itemButtons[SLOT_A], 1, 0);
|
||||
sub_08077880(gSave.stats.itemButtons[SLOT_B], 2, 0);
|
||||
sub_080778CC();
|
||||
}
|
||||
idx = 0;
|
||||
|
|
@ -201,9 +201,9 @@ void sub_08077698(PlayerEntity* this) {
|
|||
|
||||
void sub_08077728(u32 param_1) {
|
||||
if (param_1 == 0) {
|
||||
sub_08077880(gSave.stats.itemButtons[0], 1, 1);
|
||||
sub_08077880(gSave.stats.itemButtons[SLOT_A], 1, 1);
|
||||
} else {
|
||||
sub_08077880(gSave.stats.itemButtons[1], 2, 1);
|
||||
sub_08077880(gSave.stats.itemButtons[SLOT_B], 2, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -230,12 +230,12 @@ bool32 sub_080777A0(void) {
|
|||
} else {
|
||||
switch (gArea.portal_mode) {
|
||||
case 2:
|
||||
if (gArea.unk1A == 0) {
|
||||
if (gArea.portal_timer == 0) {
|
||||
gPlayerEntity.subAction++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((gArea.unk1A == 0) && ((gPlayerState.flags & PL_MINISH) != 0)) {
|
||||
if ((gArea.portal_timer == 0) && ((gPlayerState.flags & PL_MINISH) != 0)) {
|
||||
gPlayerEntity.subAction++;
|
||||
gPlayerEntity.flags &= ~ENT_COLLIDE;
|
||||
RequestPriorityDuration(&gPlayerEntity, 180);
|
||||
|
|
@ -624,7 +624,7 @@ void DeletePlayerItem(ItemBehavior* arg0, u32 idx) {
|
|||
not = ~not ;
|
||||
gPlayerState.field_0xa &= not ;
|
||||
gPlayerState.keepFacing &= not ;
|
||||
MemClear(arg0, 0x1c);
|
||||
MemClear(arg0, sizeof(ItemBehavior));
|
||||
}
|
||||
|
||||
bool32 sub_08077EC8(ItemBehavior* beh) {
|
||||
|
|
@ -707,10 +707,10 @@ bool32 sub_08077FEC(u32 action) {
|
|||
|
||||
bool32 sub_08078008(ChargeState* state) {
|
||||
Item swordType;
|
||||
if (ItemIsSword(gSave.stats.itemButtons[0]) != ITEM_NONE) {
|
||||
swordType = gSave.stats.itemButtons[0];
|
||||
} else if (ItemIsSword(gSave.stats.itemButtons[1]) != ITEM_NONE) {
|
||||
swordType = gSave.stats.itemButtons[1];
|
||||
if (ItemIsSword(gSave.stats.itemButtons[SLOT_A]) != ITEM_NONE) {
|
||||
swordType = gSave.stats.itemButtons[SLOT_A];
|
||||
} else if (ItemIsSword(gSave.stats.itemButtons[SLOT_B]) != ITEM_NONE) {
|
||||
swordType = gSave.stats.itemButtons[SLOT_B];
|
||||
} else {
|
||||
swordType = ITEM_NONE;
|
||||
}
|
||||
|
|
@ -961,7 +961,7 @@ bool32 sub_080782C0(void) {
|
|||
}
|
||||
|
||||
void sub_080784C8(void) {
|
||||
MemClear(&gUnk_03003DF0, 0x188);
|
||||
MemClear(&gUnk_03003DF0, sizeof(gUnk_03003DF0));
|
||||
gUnk_03003DF0.unk_4 = (u8*)gUnk_0811C000;
|
||||
}
|
||||
|
||||
|
|
@ -1205,7 +1205,7 @@ void ClearPlayerState(void) {
|
|||
gPlayerState.spriteOffsetY = 0;
|
||||
gPlayerState.field_0x3c = 0;
|
||||
MemFill32(0xffffffff, gPlayerState.path_memory, 0x40);
|
||||
MemClear(&gUnk_03003DF0, 0x188);
|
||||
MemClear(&gUnk_03003DF0, sizeof(gUnk_03003DF0));
|
||||
}
|
||||
|
||||
void UpdateCarriedObject(void) {
|
||||
|
|
@ -1610,7 +1610,7 @@ void ResolvePlayerAnimation(void) {
|
|||
if ((gPlayerState.field_0x1c | gPlayerState.moleMittsState) != 0) {
|
||||
return;
|
||||
}
|
||||
if ((gPlayerState.flags & PL_FLAGS2000000) != 0) {
|
||||
if ((gPlayerState.flags & PL_CONVEYOR_PUSHED) != 0) {
|
||||
anim = 0x810;
|
||||
} else if (gPlayerState.field_0x3[0] != 0) {
|
||||
anim = 0x414;
|
||||
|
|
@ -1655,7 +1655,7 @@ void ResolvePlayerAnimation(void) {
|
|||
}
|
||||
if ((gPlayerState.flags & PL_MOLDWORM_CAPTURED) != 0) {
|
||||
anim = 0x8b0;
|
||||
} else if ((gPlayerState.flags & PL_FLAGS2000000) != 0) {
|
||||
} else if ((gPlayerState.flags & PL_CONVEYOR_PUSHED) != 0) {
|
||||
anim = 0x810;
|
||||
} else if (gPlayerState.dash_state != 0) {
|
||||
anim = 0x298;
|
||||
|
|
@ -1888,9 +1888,9 @@ bool32 sub_08079F48(u32 param_1, u32 param_2) {
|
|||
}
|
||||
|
||||
bool32 PlayerCanBeMoved(void) {
|
||||
if ((gPlayerState.flags &
|
||||
(PL_BUSY | PL_DROWNING | PL_CAPTURED | PL_USE_PORTAL | PL_HIDDEN | PL_FROZEN | PL_FALLING | PL_DISABLE_ITEMS |
|
||||
PL_PIT_IS_EXIT | PL_IN_MINECART | PL_MOLDWORM_CAPTURED | PL_IN_HOLE | PL_FLAGS2000000 | PL_CLIMBING)) != 0 ||
|
||||
if ((gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_CAPTURED | PL_USE_PORTAL | PL_HIDDEN | PL_FROZEN |
|
||||
PL_FALLING | PL_DISABLE_ITEMS | PL_PIT_IS_EXIT | PL_IN_MINECART | PL_MOLDWORM_CAPTURED |
|
||||
PL_IN_HOLE | PL_CONVEYOR_PUSHED | PL_CLIMBING)) != 0 ||
|
||||
gPlayerState.field_0x3c != 0 || gPlayerEntity.action == PLAYER_FALL ||
|
||||
gPlayerEntity.action == PLAYER_08071DB8) {
|
||||
return FALSE;
|
||||
|
|
@ -1991,10 +1991,10 @@ void DeleteClones(void) {
|
|||
}
|
||||
|
||||
bool32 HasSwordEquipped(void) {
|
||||
if (ItemIsSword((u32)gSave.stats.itemButtons[0]) != 0) {
|
||||
if (ItemIsSword((u32)gSave.stats.itemButtons[SLOT_A]) != 0) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return ItemIsSword((u32)gSave.stats.itemButtons[1]);
|
||||
return ItemIsSword((u32)gSave.stats.itemButtons[SLOT_B]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3035,8 +3035,8 @@ void LoadRoomGfx(void) {
|
|||
sub_0807BFA8();
|
||||
roomControls = &gRoomControls;
|
||||
roomControls->scroll_flags &= 0xfc;
|
||||
MemClear(gMapTop.mapData, 0x2000);
|
||||
MemClear(gMapTop.collisionData, 0x1000);
|
||||
MemClear(gMapTop.mapData, sizeof(gMapTop.mapData));
|
||||
MemClear(gMapTop.collisionData, sizeof(gMapTop.collisionData));
|
||||
MemClear(&gMapDataBottomSpecial, 0x8000);
|
||||
MemClear(&gMapDataTopSpecial, 0x8000);
|
||||
sub_080197D4((gArea.pCurrentRoomInfo)->map);
|
||||
|
|
@ -3045,12 +3045,12 @@ void LoadRoomGfx(void) {
|
|||
sub_0807C8B0(gMapTop.mapData, roomControls->width >> 4, roomControls->height >> 4);
|
||||
tmp = FALSE;
|
||||
} else {
|
||||
MemClear(gMapBottom.mapData, 0x2000);
|
||||
MemClear(gMapBottom.mapData, sizeof(gMapBottom.mapData));
|
||||
tmp = TRUE;
|
||||
}
|
||||
if (gRoomTransition.field_0x2c[0] == 0) {
|
||||
MemCopy(gMapBottom.mapData, gMapBottom.mapDataClone, 0x2000);
|
||||
MemCopy(gMapTop.mapData, gMapTop.mapDataClone, 0x2000);
|
||||
MemCopy(gMapBottom.mapData, gMapBottom.mapDataClone, sizeof(gMapBottom.mapData));
|
||||
MemCopy(gMapTop.mapData, gMapTop.mapDataClone, sizeof(gMapBottom.mapData));
|
||||
} else if (gRoomTransition.field_0x2c[0] == 2) {
|
||||
MemCopy(gMapBottom.mapData, gMapBottom.unkData3, 0x1000);
|
||||
MemCopy(gMapBottom.mapDataClone, gMapBottom.mapData, 0x1000);
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ void LoadRoomTileEntities(TileEntity* list) {
|
|||
LoadLocationTile(t);
|
||||
break;
|
||||
case TILE_ENTITY_D:
|
||||
gRoomVars.field_0x9 = t->_3;
|
||||
gRoomVars.fight_bgm = t->_3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1050,7 +1050,7 @@ void sub_StateChange_RoyalValley_Main(void) {
|
|||
SetTileType(0x17d, 0x5cf, 1);
|
||||
}
|
||||
|
||||
sub_08054570();
|
||||
EnableRandomDrops();
|
||||
sub_08059278();
|
||||
SetTile(0x4072, 0xa47, 1);
|
||||
SetTile(0x4072, 0xc47, 1);
|
||||
|
|
@ -3131,7 +3131,7 @@ u32 sub_unk3_RoyalCrypt_MushroomPit(void) {
|
|||
}
|
||||
|
||||
void sub_StateChange_RoyalCrypt_MushroomPit(void) {
|
||||
sub_08054570();
|
||||
EnableRandomDrops();
|
||||
}
|
||||
|
||||
u32 sub_unk3_RoyalCrypt_Entrance(void) {
|
||||
|
|
@ -3143,7 +3143,7 @@ extern EntityData gUnk_080E71AC;
|
|||
|
||||
void sub_StateChange_RoyalCrypt_Entrance(void) {
|
||||
SetTileType(0x312, 0x108, 1);
|
||||
sub_08054570();
|
||||
EnableRandomDrops();
|
||||
if (!CheckLocalFlag(0xc4)) {
|
||||
LoadRoomEntityList(&gUnk_080E718C);
|
||||
}
|
||||
|
|
@ -4351,7 +4351,7 @@ extern EntityData gUnk_080EEA9C;
|
|||
extern EntityData gUnk_080EEBAC;
|
||||
|
||||
void sub_StateChange_HyruleTown_0(void) {
|
||||
sub_08054570();
|
||||
EnableRandomDrops();
|
||||
TryLoadPrologueHyruleTown();
|
||||
#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP)
|
||||
SetTileType(0x176, 0x66b, 1);
|
||||
|
|
@ -4967,7 +4967,7 @@ u32 sub_unk3_HouseInteriors4_Swiftblade(void) {
|
|||
}
|
||||
|
||||
void sub_StateChange_HouseInteriors4_Swiftblade(void) {
|
||||
sub_08054564();
|
||||
DisableRandomDrops();
|
||||
}
|
||||
|
||||
u32 sub_unk3_HouseInteriors4_RanchHouseWest(void) {
|
||||
|
|
|
|||
|
|
@ -469,8 +469,7 @@ void UpdateIsDiggingCave(void) {
|
|||
}
|
||||
|
||||
void ClearTilemaps(void) {
|
||||
// Is gRoomControls 4 bytes bigger?
|
||||
MemClear(&gRoomControls, 0x38);
|
||||
MemClear(&gRoomControls, sizeof(gRoomControls));
|
||||
MemClear(&gDiggingCaveEntranceTransition, sizeof(gDiggingCaveEntranceTransition));
|
||||
gRoomControls.filler3 = 0xffff;
|
||||
gDiggingCaveEntranceTransition.previousArea = 0xff;
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ void StaffrollTask_State1MenuType1(void) {
|
|||
const u8* ptr = &gUnk_08127CEC[gStaffrollMenu.unk_10 * 2];
|
||||
LoadPaletteGroup(ptr[0]);
|
||||
LoadGfxGroup(ptr[1]);
|
||||
MemClear(&gBG1Buffer, 0x800);
|
||||
MemClear(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
gScreen.bg1.updated = 1;
|
||||
gScreen.bg2.xOffset = gStaffrollMenu.unk_12;
|
||||
gScreen.controls.alphaBlend = 0x1000;
|
||||
|
|
@ -124,7 +124,7 @@ void StaffrollTask_State1MenuType2(void) {
|
|||
u8 tmp;
|
||||
switch (gStaffrollMenu.base.overlayType) {
|
||||
case 0:
|
||||
MemClear(&gBG1Buffer, 0x800);
|
||||
MemClear(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
sub_0805F46C(gStaffrollMenu.unk_10, (Font*)gUnk_081272E0[gStaffrollMenu.unk_19]);
|
||||
gScreen.bg1.updated = 1;
|
||||
gStaffrollMenu.base.overlayType++;
|
||||
|
|
@ -191,9 +191,9 @@ void StaffrollTask_State1MenuType5(void) {
|
|||
|
||||
void StaffrollTask_State1MenuType6(void) {
|
||||
if (gFadeControl.active == 0) {
|
||||
MemClear(&gBG1Buffer, 0x800);
|
||||
MemClear(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
gScreen.bg1.updated = 1;
|
||||
MemClear(&gBG2Buffer, 0x800);
|
||||
MemClear(&gBG2Buffer, sizeof(gBG2Buffer));
|
||||
gScreen.bg2.updated = 1;
|
||||
gScreen.controls.alphaBlend = 0x1000;
|
||||
gMenu.menuType = 0;
|
||||
|
|
|
|||
|
|
@ -1803,7 +1803,7 @@ void Subtask_Init(void) {
|
|||
if (gFadeControl.active == 0) {
|
||||
DeleteAllEntities();
|
||||
MemClear(&gMenu, sizeof(FigurineMenu));
|
||||
MemClear(&gRoomControls, 0x38);
|
||||
MemClear(&gRoomControls, sizeof(gRoomControls));
|
||||
MemClear(gOAMControls.unk, 0x100);
|
||||
MemClear(&gActiveScriptInfo, sizeof(gActiveScriptInfo));
|
||||
gActiveScriptInfo.fadeSpeed = 8;
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ u32 sub_0805F46C(u32 param_1, const Font* param_2) {
|
|||
pWVar4->unk04 = font.stylized;
|
||||
pWVar4->unk4 = font.width;
|
||||
pWVar4->unk8 = font.buffer_loc;
|
||||
pWVar4->charColor = font._15;
|
||||
pWVar4->charColor = font.charColor;
|
||||
pWVar4->bgColor = font.fill_type;
|
||||
if (font.draw_border) {
|
||||
sub_0805F918(font.border_type, font.fill_type, font.gfx_dest);
|
||||
|
|
|
|||
2
src/ui.c
2
src/ui.c
|
|
@ -198,7 +198,7 @@ void InitUI(bool32 keepHealthAndRupees) {
|
|||
gUnk_0200AF00.maxHealth = gSave.stats.maxHealth >> 1;
|
||||
LoadPaletteGroup(0xc);
|
||||
LoadGfxGroup(0x10);
|
||||
MemClear(&gBG0Buffer, 0x800);
|
||||
MemClear(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
gScreen.bg0.tilemap = &gBG0Buffer;
|
||||
gScreen.bg0.control = 0x1f0c;
|
||||
gScreen.lcd.displayControl |= 0x100;
|
||||
|
|
|
|||
Loading…
Reference in New Issue