mirror of
https://github.com/zeldaret/tmc
synced 2026-06-08 04:17:19 -04:00
def ScreenTransition
This commit is contained in:
+3
-3
@@ -17,11 +17,11 @@ typedef struct {
|
||||
typedef struct {
|
||||
u8 filler[0x2e];
|
||||
u8 unk;
|
||||
} struct_030010A0;
|
||||
} ScreenTransition;
|
||||
|
||||
extern struct_02002A40 gUnk_02002A40;
|
||||
extern struct_080FD5B4 gUnk_080FD5B4[];
|
||||
extern struct_030010A0 gUnk_030010A0;
|
||||
extern ScreenTransition gScreenTransition;
|
||||
|
||||
extern u8 gUnk_0200AF13;
|
||||
extern u8 gUnk_0200AF14;
|
||||
@@ -154,7 +154,7 @@ void sub_08054524(void) {
|
||||
|
||||
bVar1 = gArea.locationIndex;
|
||||
if (gArea.locationIndex == 0) {
|
||||
bVar1 = gUnk_030010A0.unk;
|
||||
bVar1 = gScreenTransition.unk;
|
||||
}
|
||||
if (bVar1 > 0x16) {
|
||||
bVar1 = 0;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
void sub_080808D8(void) {
|
||||
gScreenTransition.transitionType = 0;
|
||||
}
|
||||
|
||||
void sub_080808E4(void) {
|
||||
|
||||
if (sub_08052638(gScreenTransition.areaID)) {
|
||||
gScreenTransition.transitionType = 0;
|
||||
} else {
|
||||
gScreenTransition.transitionType = 5;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08080904(void) {
|
||||
gScreenTransition.transitionType = 1;
|
||||
}
|
||||
|
||||
void sub_08080910(void) {
|
||||
gScreenTransition.transitionType = 1;
|
||||
}
|
||||
+2
-2
@@ -6,7 +6,7 @@ extern void sub_0805E5A8();
|
||||
extern RoomControls gRoomControls;
|
||||
extern u32 gUnk_0200B650;
|
||||
extern u32 gUnk_02025EB0;
|
||||
extern u8 gUnk_030010A0[10];
|
||||
extern u8 gScreenTransition[10];
|
||||
|
||||
extern void DoExitTransition(Entity*);
|
||||
extern void sub_080809D4();
|
||||
@@ -15,7 +15,7 @@ void sub_0808091C(Entity* param_1, u32 param_2)
|
||||
|
||||
{
|
||||
DoExitTransition(param_1);
|
||||
gUnk_030010A0[9] = param_2;
|
||||
gScreenTransition[9] = param_2;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
typedef struct {
|
||||
u8 filler[0xAC];
|
||||
u16 unk;
|
||||
} struct_030010A0;
|
||||
} ScreenTransition;
|
||||
|
||||
extern u32 sub_0805C920(Entity*);
|
||||
extern void LoadPalettesByPaletteGroupIndex(u32);
|
||||
extern void (*const gUnk_08108D10[])(Entity*);
|
||||
|
||||
extern struct_030010A0 gUnk_030010A0;
|
||||
extern ScreenTransition gScreenTransition;
|
||||
extern u8 gUnk_08108D20[];
|
||||
|
||||
void Manager27(Entity *this)
|
||||
@@ -20,10 +20,10 @@ void Manager27(Entity *this)
|
||||
|
||||
gUnk_08108D10[this->action](this);
|
||||
if (CheckLocalFlagByOffset(0x300, this->entityType.form + 0x67)) {
|
||||
gUnk_030010A0.unk |= (1 << (this->entityType).form);
|
||||
gScreenTransition.unk |= (1 << (this->entityType).form);
|
||||
}
|
||||
else {
|
||||
gUnk_030010A0.unk &= ~(1 << (this->entityType).form);
|
||||
gScreenTransition.unk &= ~(1 << (this->entityType).form);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
extern void (*gUnk_081140D4[])(Entity*);
|
||||
|
||||
extern u16 gUnk_081140CC[];
|
||||
extern u32 gUnk_030010A0;
|
||||
extern u32 gScreenTransition;
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void sub_0806D0B0(Entity*);
|
||||
extern void sub_0807DD64(Entity*);
|
||||
@@ -40,7 +40,7 @@ void sub_0806CF30(Entity* this) {
|
||||
if (this->previousActionFlag != 2) {
|
||||
|
||||
if (this->previousActionFlag < 3) {
|
||||
if ((gUnk_030010A0 & 3) == 0) {
|
||||
if ((gScreenTransition & 3) == 0) {
|
||||
iVar3 = this->x.HALF.HI;
|
||||
if (gLinkEntity.x.HALF.HI < iVar3) {
|
||||
if ((this->field_0x68 - 32) < iVar3) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
typedef struct {
|
||||
/*0x00*/ u8 filler[0x2C];
|
||||
/*0x2C*/ u8 unk;
|
||||
} struct_030010A0;
|
||||
} ScreenTransition;
|
||||
|
||||
typedef struct {
|
||||
u8 filler[0xa8];
|
||||
@@ -20,7 +20,7 @@ typedef struct {
|
||||
extern void (*gUnk_081115C0[])(Entity*);
|
||||
extern void (*gUnk_081115D0[])(Entity*);
|
||||
|
||||
extern struct_030010A0 gUnk_030010A0;
|
||||
extern ScreenTransition gScreenTransition;
|
||||
extern u16 gUnk_081115DC[];
|
||||
extern u8 gUnk_08111618[];
|
||||
extern u32* gUnk_081115EC[];
|
||||
@@ -60,7 +60,7 @@ void sub_08068A1C(Entity* this) {
|
||||
int offset;
|
||||
|
||||
(this->entityType).parameter = (this->entityType).form;
|
||||
if (gUnk_030010A0.unk != 0) {
|
||||
if (gScreenTransition.unk != 0) {
|
||||
offset = 6;
|
||||
bVar1 = 3;
|
||||
|
||||
@@ -114,7 +114,7 @@ void sub_08068AA4(Entity* this) {
|
||||
}
|
||||
|
||||
void sub_08068ADC(Entity* this) {
|
||||
if (gUnk_030010A0.unk == 2) {
|
||||
if (gScreenTransition.unk == 2) {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
sub_0806FD3C(this);
|
||||
|
||||
@@ -27,7 +27,7 @@ void GoronMerchant(Entity *this)
|
||||
|
||||
void sub_08069584(Entity *this)
|
||||
{
|
||||
if (gUnk_030010A0.field_0x24[8] != 0) {
|
||||
if (gScreenTransition.field_0x24[8] != 0) {
|
||||
this->action = 3;
|
||||
}
|
||||
else {
|
||||
@@ -65,7 +65,7 @@ void sub_080695E8(Entity *this)
|
||||
|
||||
void sub_0806961C(Entity *this)
|
||||
{
|
||||
if (gUnk_030010A0.field_0x24[8] == 2) {
|
||||
if (gScreenTransition.field_0x24[8] == 2) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
}
|
||||
sub_0806FD3C(this);
|
||||
|
||||
+3
-3
@@ -13,7 +13,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
u8 filler[8];
|
||||
u8 unk;
|
||||
} struct_030010A0;
|
||||
} ScreenTransition;
|
||||
|
||||
typedef struct {
|
||||
u32 unk;
|
||||
@@ -38,7 +38,7 @@ extern void (*const gUnk_0810F550[])(Entity*);
|
||||
extern u8 gUnk_03003DBC;
|
||||
extern SpriteLoadData gUnk_0810F524[];
|
||||
extern void* gUnk_0810F6BC[];
|
||||
extern struct_030010A0 gUnk_030010A0;
|
||||
extern ScreenTransition gScreenTransition;
|
||||
|
||||
void Guard(Entity *this)
|
||||
{
|
||||
@@ -175,7 +175,7 @@ void sub_08064030(Entity *arg0,Entity *arg1)
|
||||
|
||||
void sub_08064044(void)
|
||||
{
|
||||
gUnk_030010A0.unk = 1;
|
||||
gScreenTransition.unk = 1;
|
||||
}
|
||||
|
||||
void sub_08064050(Entity *arg0, struct_08064050 *arg1)
|
||||
|
||||
+4
-4
@@ -7,7 +7,7 @@
|
||||
typedef struct {
|
||||
u8 filler[9];
|
||||
u8 unk;
|
||||
} struct_030010A0;
|
||||
} ScreenTransition;
|
||||
|
||||
typedef struct {
|
||||
u8 filler[4];
|
||||
@@ -21,7 +21,7 @@ extern void DoFade(u32, u32);
|
||||
|
||||
extern void gUnk_0813AD60;
|
||||
extern void gUnk_0813AD74;
|
||||
extern struct_030010A0 gUnk_030010A0;
|
||||
extern ScreenTransition gScreenTransition;
|
||||
|
||||
void Simon(Entity *this)
|
||||
{
|
||||
@@ -37,7 +37,7 @@ void Simon(Entity *this)
|
||||
void sub_0806C224(void)
|
||||
{
|
||||
DoExitTransition(&gUnk_0813AD60);
|
||||
gUnk_030010A0.unk = 6;
|
||||
gScreenTransition.unk = 6;
|
||||
}
|
||||
|
||||
void Simon_CreateChest(Entity *this)
|
||||
@@ -51,7 +51,7 @@ void sub_0806C280(void)
|
||||
{
|
||||
SetGlobalFlag(MAROYA_WAKEUP);
|
||||
DoExitTransition(&gUnk_0813AD74);
|
||||
gUnk_030010A0.unk = 6;
|
||||
gScreenTransition.unk = 6;
|
||||
}
|
||||
|
||||
void sub_0806C2A0(u32 *param_1,struct_0806C2A0 *param_2)
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ extern void (*gUnk_081121D4[])(Entity*);
|
||||
|
||||
extern SpriteLoadData gUnk_081121C4;
|
||||
extern SpriteLoadData gUnk_081121B4;
|
||||
extern u32 gUnk_030010A0;
|
||||
extern u32 gScreenTransition;
|
||||
extern void sub_0807DD94(Entity*, u32);
|
||||
extern void sub_0806A26C(Entity*);
|
||||
extern void sub_080042BA(Entity*, u32);
|
||||
@@ -42,7 +42,7 @@ void sub_0806A234(Entity *this)
|
||||
{
|
||||
sub_0807DD94(this, 0);
|
||||
if ((this->field_0x82.HWORD & 4) != 0) {
|
||||
if ((gUnk_030010A0 & 7) == 0) {
|
||||
if ((gScreenTransition & 7) == 0) {
|
||||
sub_0806A26C(this);
|
||||
}
|
||||
sub_080042BA(this, 2);
|
||||
|
||||
+4
-4
@@ -23,7 +23,7 @@ extern void PositionEntityOnTop(Entity*, Entity*);
|
||||
extern void sub_0807BB68(u32*, u32, u32);
|
||||
|
||||
extern u8 gUnk_02034490;
|
||||
extern u32 gUnk_030010A0;
|
||||
extern u32 gScreenTransition;
|
||||
extern void* gUnk_080DD750;
|
||||
extern Entity gLinkEntity;
|
||||
extern LinkState gLinkState;
|
||||
@@ -62,7 +62,7 @@ void sub_0809F548(Entity* this) {
|
||||
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
|
||||
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
|
||||
} else {
|
||||
if ((gUnk_030010A0 & 7) == 0) {
|
||||
if ((gScreenTransition & 7) == 0) {
|
||||
sub_0809F7BC(this);
|
||||
}
|
||||
sub_0809F7F4(this);
|
||||
@@ -110,7 +110,7 @@ void sub_0809F61C(Entity* this) {
|
||||
sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) |
|
||||
(((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6);
|
||||
} else {
|
||||
if ((gUnk_030010A0 & 7) == 0) {
|
||||
if ((gScreenTransition & 7) == 0) {
|
||||
sub_0809F7BC(this);
|
||||
}
|
||||
sub_0809F7F4(this);
|
||||
@@ -145,7 +145,7 @@ void sub_0809F700(Entity* this) {
|
||||
this->actionDelay = (Random() & 30) + 8;
|
||||
this->flags = this->flags | 12;
|
||||
}
|
||||
if ((gUnk_030010A0 & 3) == 0) {
|
||||
if ((gScreenTransition & 3) == 0) {
|
||||
uVar2 = Random();
|
||||
this->spriteOffsetX = gUnk_081247C0[uVar2 & 7];
|
||||
this->spriteOffsetY = gUnk_081247C0[uVar2 >> 4 & 7];
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@
|
||||
#include "random.h"
|
||||
|
||||
extern Entity gLinkEntity;
|
||||
extern u16 gUnk_030010A0[];
|
||||
extern u16 gScreenTransition[];
|
||||
|
||||
extern void (*MaskActionFuncs[])(Entity *);
|
||||
|
||||
@@ -36,7 +36,7 @@ void sub_080929A4(Entity *this) {
|
||||
|
||||
switch (this->entityType.parameter & 0xC0) {
|
||||
case 0x40:
|
||||
field_0x0a = gUnk_030010A0[0x5];
|
||||
field_0x0a = gScreenTransition[0x5];
|
||||
|
||||
switch (field_0x0a) {
|
||||
case 0x44D ... 0x44F:
|
||||
|
||||
@@ -155,7 +155,7 @@ void sub_080919AC(Entity *this)
|
||||
CopyPosition(this,&gLinkEntity);
|
||||
gLinkEntity.spritePriority.b0 = this->spritePriority.b0 - 1;
|
||||
if (!sub_08091DDC(this)) {
|
||||
if ((gUnk_030010A0.field_0x0 & 0xf) == 0) {
|
||||
if ((gScreenTransition.field_0x0 & 0xf) == 0) {
|
||||
PlaySFX(0x138);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ extern void CreateMinishEntrance(u32 tile);
|
||||
|
||||
extern void (*const gUnk_08124354[])(Entity*);
|
||||
|
||||
extern u32 gUnk_030010A0;
|
||||
extern u32 gScreenTransition;
|
||||
extern s16 gUnk_08124364[];
|
||||
|
||||
void TreeHidingPortal(Entity* this) {
|
||||
@@ -36,7 +36,7 @@ void sub_0809E86C(Entity* this) {
|
||||
|
||||
if (sub_0800419C(this, &gLinkEntity, 0x30, 0x30)) {
|
||||
if (CheckGlobalFlag(EZERO_1ST)) {
|
||||
if (((gUnk_030010A0 & 3) == 0)) {
|
||||
if (((gScreenTransition & 3) == 0)) {
|
||||
sub_080A2B80(this);
|
||||
}
|
||||
}
|
||||
|
||||
+18
-18
@@ -233,7 +233,7 @@ extern EntityData gUnk_080D6210;
|
||||
|
||||
void sub_0804B5BC(void) {
|
||||
|
||||
if ((u16)gUnk_030010A0.field_0x10.HALF.HI > 0x40)
|
||||
if ((u16)gScreenTransition.startPos.HALF.y > 0x40)
|
||||
LoadRoomEntityList(&gUnk_080D6210);
|
||||
}
|
||||
|
||||
@@ -640,7 +640,7 @@ void sub_0804bc38(void) {
|
||||
|
||||
u32 sub_0804BC50(void) {
|
||||
if (!CheckLocalFlag(0x9f)) {
|
||||
gUnk_030010A0.field_0xa[5] = 5;
|
||||
gScreenTransition.field_0xf = 5;
|
||||
ClearGlobalFlag(ZELDA_CHASE);
|
||||
}
|
||||
return 1;
|
||||
@@ -1023,7 +1023,7 @@ void sub_0804C018(void) {
|
||||
SetTile(0x4072, 0xc47, 1);
|
||||
|
||||
if (CheckGlobalFlag(MAZE_CLEAR))
|
||||
if (gUnk_030010A0.field_0x10.WORD == 0x2780078)
|
||||
if (gScreenTransition.startPos.WORD == 0x2780078) // todo: wtf
|
||||
PlaySFX(0x72);
|
||||
|
||||
ClearGlobalFlag(MAZE_CLEAR);
|
||||
@@ -2444,8 +2444,8 @@ u32 sub_0804CF40() {
|
||||
}
|
||||
|
||||
void sub_0804CF44(void) {
|
||||
gUnk_030010A0.field_0x38 = 0;
|
||||
gUnk_030010A0.field_0x39 = 0x5a;
|
||||
gScreenTransition.field_0x38 = 0;
|
||||
gScreenTransition.field_0x39 = 0x5a;
|
||||
}
|
||||
|
||||
u32 sub_0804CF5C() {
|
||||
@@ -2520,10 +2520,10 @@ u32 sub_0804CFAC() {
|
||||
void sub_0804CFB0(void) {
|
||||
|
||||
if (!CheckFlags(0x31)) {
|
||||
if (gUnk_030010A0.field_0x38 == 0) {
|
||||
if (gScreenTransition.field_0x38 == 0) {
|
||||
PlaySFX(0x80100000);
|
||||
} else {
|
||||
if (gUnk_030010A0.field_0x39 == 0) {
|
||||
if (gScreenTransition.field_0x39 == 0) {
|
||||
PlaySFX(0x80050000);
|
||||
sub_08078A90(3);
|
||||
}
|
||||
@@ -3508,16 +3508,16 @@ u32 sub_0804D6EC() {
|
||||
void sub_0804D6F0(void) {
|
||||
sub_0805D3C8(0);
|
||||
|
||||
if ((gUnk_030010A0.field_0x38 & 1) && gUnk_030010A0.field_0x39) {
|
||||
if (gUnk_030010A0.field_0x3c == 1) {
|
||||
gLinkEntity.x.HALF.HI = gUnk_030010A0.field_0x48;
|
||||
gLinkEntity.y.HALF.HI = gUnk_030010A0.field_0x4a + 8;
|
||||
if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) {
|
||||
if (gScreenTransition.field_0x3c == 1) {
|
||||
gLinkEntity.x.HALF.HI = gScreenTransition.field_0x48;
|
||||
gLinkEntity.y.HALF.HI = gScreenTransition.field_0x4a + 8;
|
||||
} else {
|
||||
if (gUnk_030010A0.field_0x3c) {
|
||||
if (gScreenTransition.field_0x3c) {
|
||||
return;
|
||||
}
|
||||
gLinkEntity.x.HALF.HI = gUnk_030010A0.field_0x44;
|
||||
gLinkEntity.y.HALF.HI = gUnk_030010A0.field_0x46 + 8;
|
||||
gLinkEntity.x.HALF.HI = gScreenTransition.field_0x44;
|
||||
gLinkEntity.y.HALF.HI = gScreenTransition.field_0x46 + 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4536,7 +4536,7 @@ void sub_0804E4E4(void)
|
||||
if (!GetInventoryValue(0x3a) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) {
|
||||
LoadRoomEntityList(&gUnk_080F2194);
|
||||
}
|
||||
if (gUnk_030010A0.field_0xa[5] == 1) {
|
||||
if (gScreenTransition.field_0xf == 1) {
|
||||
LoadRoomEntityList(&gUnk_080F21B4);
|
||||
}
|
||||
}
|
||||
@@ -4852,8 +4852,8 @@ void sub_0804E954(void)
|
||||
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(0x3b)) {
|
||||
LoadRoomEntityList(&gUnk_080F3A48);
|
||||
}
|
||||
gUnk_030010A0.field_0x20 = 0xf28;
|
||||
gUnk_030010A0.field_0x22 = 0x82d;
|
||||
gScreenTransition.field_0x20 = 0xf28;
|
||||
gScreenTransition.field_0x22 = 0x82d;
|
||||
}
|
||||
|
||||
extern u32 gUnk_080F3D44;
|
||||
@@ -5260,7 +5260,7 @@ void nullsub_398() {}
|
||||
u32 sub_0804EFDC(void)
|
||||
{
|
||||
if (CheckGlobalFlag(MAROYA_WAKEUP)) {
|
||||
gUnk_030010A0.field_0xa[5] = 5;
|
||||
gScreenTransition.field_0xf = 5;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
#include "entity.h"
|
||||
extern Entity* sub_0805E3A0(Entity*, u32);
|
||||
extern u8 gUnk_030010A0[];
|
||||
extern u8 gScreenTransition[];
|
||||
extern u8 gUnk_081091F8[];
|
||||
extern u8 gUnk_081091EE[];
|
||||
Entity* sub_0805E374(Entity* param_1) {
|
||||
u8 r3 = gUnk_030010A0[0x2C];
|
||||
u8 r3 = gScreenTransition[0x2C];
|
||||
u8* array = gUnk_081091F8;
|
||||
|
||||
if (r3 != '\x02') {
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ extern void (*const gUnk_081280C4[])();
|
||||
|
||||
void DrawKinstoneMenu(void)
|
||||
{
|
||||
gUnk_030010A0.field_0x24[8] = 2;
|
||||
gScreenTransition.field_0x24[8] = 2;
|
||||
sub_080AD90C();
|
||||
gUnk_081280C4[gMenu.menuType]();
|
||||
sub_080A3B74();
|
||||
@@ -18,7 +18,7 @@ void DrawKinstoneMenu(void)
|
||||
sub_0805E5C0();
|
||||
sub_080AD9B0();
|
||||
sub_080AD918();
|
||||
gUnk_030010A0.field_0x24[8] = 0;
|
||||
gScreenTransition.field_0x24[8] = 0;
|
||||
}
|
||||
|
||||
extern void gUnk_081280DC;
|
||||
|
||||
Reference in New Issue
Block a user