mirror of https://github.com/zeldaret/tmc.git
commit
b4551507b8
1187
asm/manager15.s
1187
asm/manager15.s
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,75 @@
|
|||
sub_0805A9CC: @ 0x0805A9CC
|
||||
push {r4, r5, lr}
|
||||
add r4, r0, #0
|
||||
ldr r3, _0805AA4C @ =gScreen
|
||||
ldr r5, _0805AA50 @ =gRoomControls
|
||||
ldrh r0, [r5, #0xa]
|
||||
ldrh r1, [r4, #0x24]
|
||||
sub r0, r0, r1
|
||||
ldrh r1, [r4, #0x34]
|
||||
add r0, r0, r1
|
||||
strh r0, [r3, #0x2e]
|
||||
mov r2, #0x2e
|
||||
ldrsh r0, [r3, r2]
|
||||
neg r2, r0
|
||||
mov r0, #0x80
|
||||
lsl r0, r0, #1
|
||||
add r1, r2, r0
|
||||
cmp r2, #0
|
||||
bge _0805A9F2
|
||||
mov r2, #0
|
||||
_0805A9F2:
|
||||
cmp r2, #0xf0
|
||||
ble _0805A9F8
|
||||
mov r2, #0xf0
|
||||
_0805A9F8:
|
||||
cmp r1, #0
|
||||
bge _0805A9FE
|
||||
mov r1, #0
|
||||
_0805A9FE:
|
||||
cmp r1, #0xf0
|
||||
ble _0805AA04
|
||||
mov r1, #0xf0
|
||||
_0805AA04:
|
||||
lsl r0, r2, #8
|
||||
orr r0, r1
|
||||
add r1, r3, #0
|
||||
add r1, #0x5a
|
||||
strh r0, [r1]
|
||||
mov r1, #0xc
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r4, #0x26]
|
||||
sub r0, r0, r1
|
||||
mov r2, #0x36
|
||||
ldrsh r1, [r4, r2]
|
||||
add r2, r0, r1
|
||||
mov r1, #0x3f
|
||||
add r0, r2, #0
|
||||
and r0, r1
|
||||
strh r0, [r3, #0x30]
|
||||
add r0, r2, #0
|
||||
cmp r0, #0
|
||||
bge _0805AA2C
|
||||
add r0, #0x3f
|
||||
_0805AA2C:
|
||||
asr r0, r0, #6
|
||||
lsl r0, r0, #9
|
||||
ldr r1, _0805AA54 @ =gUnk_02001A40
|
||||
add r1, r0, r1
|
||||
str r1, [r3, #0x34]
|
||||
add r2, r3, #0
|
||||
add r2, #0x5e
|
||||
mov r0, #0xa0
|
||||
strh r0, [r2]
|
||||
ldr r0, [r4, #0x28]
|
||||
cmp r0, r1
|
||||
beq _0805AA4A
|
||||
str r1, [r4, #0x28]
|
||||
mov r0, #1
|
||||
strh r0, [r3, #0x32]
|
||||
_0805AA4A:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0805AA4C: .4byte gScreen
|
||||
_0805AA50: .4byte gRoomControls
|
||||
_0805AA54: .4byte gUnk_02001A40
|
||||
|
|
@ -22,7 +22,8 @@ typedef struct Manager {
|
|||
/*0x0d*/ u8 unk_0d;
|
||||
/*0x0e*/ u8 unk_0e;
|
||||
/*0x0f*/ u8 unk_0f;
|
||||
/*0x10*/ u8 unk_10[0x4];
|
||||
/*0x10*/ u8 unk_10;
|
||||
/*0x11*/ u8 unk_11[3];
|
||||
/*0x14*/ struct Manager * parent;
|
||||
/*0x18*/ u8 unk_18[0x8];
|
||||
// union SplitHWord unk_20;
|
||||
|
|
|
|||
|
|
@ -45,7 +45,9 @@ typedef struct {
|
|||
/* */ u32 filler11b : 16;
|
||||
/* */ } PACKED b;
|
||||
/* */ } flags;
|
||||
/*0x34*/ u8 field_0x34[6];
|
||||
/*0x34*/ u8 field_0x34[4];
|
||||
/*0x38*/ u8 field_0x38;
|
||||
/*0x39*/ u8 field_0x39;
|
||||
/*0x3a*/ u16 field_0x3a;
|
||||
/*0x3c*/ u8 field_0x3c[2];
|
||||
/*0x3e*/ u8 swordGoldParticle : 1;
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ typedef struct {
|
|||
u16 unk2;
|
||||
u16 unk3;
|
||||
u16 bg3Control;
|
||||
u16 bg3xOffset;
|
||||
u16 bg3yOffset;
|
||||
s16 bg3xOffset;
|
||||
s16 bg3yOffset;
|
||||
u16 unk4;
|
||||
u32 unk5;
|
||||
void* unk5;
|
||||
} BgAffSettings;
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -78,4 +78,4 @@ typedef struct {
|
|||
extern BgControls gBgControls;
|
||||
extern Screen gScreen;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -492,7 +492,7 @@ SECTIONS {
|
|||
asm/manager12.o(.text);
|
||||
asm/manager13.o(.text);
|
||||
asm/manager14.o(.text);
|
||||
asm/manager15.o(.text);
|
||||
src/manager/manager15.o(.text);
|
||||
asm/manager16.o(.text);
|
||||
asm/manager17.o(.text);
|
||||
asm/manager18.o(.text);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,495 @@
|
|||
#include "global.h"
|
||||
#include "flags.h"
|
||||
#include "screen.h"
|
||||
#include "manager.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
u8 unk_20;
|
||||
u8 unk_21;
|
||||
u8 unk_22;
|
||||
u8 unk_23;//used
|
||||
u16 unk_24;
|
||||
u16 unk_26;
|
||||
void* unk_28;
|
||||
u16 unk_2c;
|
||||
u8 unk_2e[0x6];
|
||||
s16 unk_34;
|
||||
s16 unk_36;
|
||||
s16 unk_38;
|
||||
s16 unk_3a;
|
||||
u16 unk_3c;
|
||||
u16 unk_3e;//used
|
||||
} Manager15;
|
||||
|
||||
extern void (*const gUnk_081085D8[])(Manager*);
|
||||
|
||||
void sub_0805A280(Manager* this) {
|
||||
gUnk_081085D8[this->unk_0a](this);
|
||||
}
|
||||
|
||||
|
||||
void sub_0805A89C(Manager15*);
|
||||
void sub_0805A8EC(Manager15*);
|
||||
void sub_0805AAF0(u32);
|
||||
|
||||
void sub_0805A298(Manager15* this) {
|
||||
if (this->manager.action == 0) {
|
||||
sub_0805A89C(this);
|
||||
if (!CheckLocalFlag(this->unk_3e)) {
|
||||
this->unk_23 = 1;
|
||||
} else {
|
||||
this->unk_23 = 2;
|
||||
}
|
||||
sub_0805AAF0(this->unk_23);
|
||||
gScreen.lcd.displayControl |= 0x4800;
|
||||
}
|
||||
sub_0805A8EC(this);
|
||||
}
|
||||
|
||||
extern void (*const gUnk_081085F8[])(Manager15*);
|
||||
|
||||
void sub_0805A2E4(Manager15* this) {
|
||||
if (this->manager.action == 0) {
|
||||
sub_0805A89C(this);
|
||||
this->unk_23 = 1;
|
||||
sub_0805AAF0(1);
|
||||
if (!CheckLocalFlag(this->unk_3e)) {
|
||||
this->manager.action = 1;
|
||||
gScreen.lcd.displayControl &= 0xB7FF;
|
||||
} else {
|
||||
if (CheckLocalFlag(0x48)) {
|
||||
this->manager.action = 4;
|
||||
} else {
|
||||
this->manager.action = 3;
|
||||
}
|
||||
gScreen.lcd.displayControl |= 0x4800;
|
||||
}
|
||||
} else {
|
||||
gUnk_081085F8[this->manager.action](this);
|
||||
}
|
||||
if (this->manager.next) {
|
||||
sub_0805A8EC(this);
|
||||
}
|
||||
}
|
||||
|
||||
extern Entity gUnk_080E4C08;
|
||||
|
||||
void sub_0805A370(Manager15* this) {
|
||||
if (this->manager.unk_0d) {
|
||||
LoadRoomEntityList(&gUnk_080E4C08);
|
||||
this->manager.action = 3;
|
||||
PlaySFX(0x80100000);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A394(Manager15* this) {
|
||||
Entity* ent;
|
||||
if ((ent = FindEntityInListBySubtype(0x3,0x13,0x4))) {
|
||||
if (ent->entityType.form != 4) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
SetLocalFlag(0x48);
|
||||
ClearRoomFlag(0);
|
||||
gScreen.lcd.displayControl &= 0xB7FF;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void nullsub_496(Manager15* this) {
|
||||
}
|
||||
|
||||
extern void (*const gUnk_0810860C[])(Manager15*);
|
||||
|
||||
void sub_0805A3D4(Manager15* this) {
|
||||
if (this->manager.action == 0) {
|
||||
sub_0805A89C(this);
|
||||
if (this->manager.unk_0a == 3) {
|
||||
this->unk_23 = 2;
|
||||
} else {
|
||||
this->unk_23 = 1;
|
||||
}
|
||||
sub_0805AAF0(this->unk_23);
|
||||
if (!CheckLocalFlag(this->unk_3e)) {
|
||||
ClearFlag(this->unk_3c);
|
||||
this->manager.action = 1;
|
||||
gScreen.lcd.displayControl &= 0xB7FF;
|
||||
} else {
|
||||
SetFlag(this->unk_3c);
|
||||
this->manager.action = 3;
|
||||
gScreen.lcd.displayControl |= 0x4800;
|
||||
}
|
||||
} else {
|
||||
gUnk_0810860C[this->manager.action](this);
|
||||
}
|
||||
sub_0805A8EC(this);
|
||||
}
|
||||
|
||||
void sub_0805A4CC(Manager15*, u32);
|
||||
|
||||
void sub_0805A464(Manager15* this) {
|
||||
if (CheckLocalFlag(this->unk_3e)) {
|
||||
this->manager.action = 2;
|
||||
sub_0805A4CC(this, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A480(Manager15* this) {
|
||||
if (this->manager.unk_0d != 0) {
|
||||
this->manager.action = 3;
|
||||
SetFlag(this->unk_3c);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A498(Manager15* this) {
|
||||
if (!CheckLocalFlag(this->unk_3e)) {
|
||||
this->manager.action = 4;
|
||||
sub_0805A4CC(this, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A4B4(Manager15* this) {
|
||||
if (this->manager.unk_0d != 0) {
|
||||
this->manager.action = 1;
|
||||
ClearFlag(this->unk_3c);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A4CC(Manager15* this, u32 unk_0) {
|
||||
Entity* tmp;
|
||||
tmp = CreateObject(0x8e, unk_0, 0);
|
||||
if (tmp) {
|
||||
tmp->x.HALF.HI = this->unk_38 + gRoomControls.roomOriginX;
|
||||
tmp->y.HALF.HI = this->unk_3a + gRoomControls.roomOriginY - 0x30;
|
||||
tmp->parent = (Entity*) this;
|
||||
this->manager.unk_0d = 0;
|
||||
}
|
||||
}
|
||||
|
||||
extern void (*const gUnk_08108620[])(Manager15*);
|
||||
void sub_0805AA58(Manager15*);
|
||||
void sub_0805A9CC(Manager15*);
|
||||
|
||||
void sub_0805A500(Manager15* this) {
|
||||
if (this->manager.action == 0) {
|
||||
sub_0805A89C(this);
|
||||
this->unk_28 = 0;
|
||||
if (CheckLocalFlag(0x36)) {
|
||||
this->unk_23 = 3;
|
||||
this->manager.action = 5;
|
||||
gScreen.lcd.displayControl |= 0x4800;
|
||||
} else {
|
||||
if (CheckLocalFlag(0x34)) {
|
||||
this->unk_23 = 4;
|
||||
this->manager.action = 3;
|
||||
gScreen.lcd.displayControl |= 0x4800;
|
||||
} else {
|
||||
this->unk_23 = 4;
|
||||
this->manager.action = 1;
|
||||
gScreen.lcd.displayControl &= 0xB7FF;
|
||||
}
|
||||
}
|
||||
sub_0805AAF0(this->unk_23);
|
||||
} else {
|
||||
gUnk_08108620[this->manager.action](this);
|
||||
}
|
||||
sub_0805AA58(this);
|
||||
sub_0805A9CC(this);
|
||||
if (gRoomControls.unk2 == 1) {
|
||||
gScreen.lcd.displayControl |= 0x80<<7;
|
||||
this->manager.unk_0d = 1;
|
||||
return;
|
||||
}
|
||||
if (!this->manager.unk_0d) return;
|
||||
this->manager.unk_0d = 0;
|
||||
if (this->unk_20 == gRoomControls.roomID) return;
|
||||
gScreen.lcd.displayControl &= 0xB7FF;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_0805A5FC(Manager15* this) {
|
||||
if (CheckLocalFlag(0x34)) {
|
||||
this->manager.action = 2;
|
||||
sub_0805A4CC(this,2);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A618(Manager15* this) {
|
||||
if (this->manager.unk_0d) {
|
||||
this->manager.action = 3;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A628(Manager15* this) {
|
||||
if (CheckLocalFlag(0x36)) {
|
||||
this->manager.action = 4;
|
||||
this->unk_23 = 3;
|
||||
sub_0805A4CC(this,3);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A64C(Manager15* this) {
|
||||
if (this->manager.unk_0d) {
|
||||
this->manager.action = 5;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A65C(Manager15* this) {}
|
||||
void sub_0805A660(Manager15* this) {}
|
||||
|
||||
extern void (*const gUnk_08108638[])(Manager15*);
|
||||
void sub_0805A68C(Manager15*);
|
||||
|
||||
void sub_0805A664(Manager15* this) {
|
||||
gUnk_08108638[this->manager.action](this);
|
||||
sub_0805A8EC(this);
|
||||
sub_0805A68C(this);
|
||||
}
|
||||
|
||||
extern u32 sub_0806FBFC(u32, u32, u32, u32);
|
||||
|
||||
void sub_0805A68C(Manager15* this) {
|
||||
if (sub_0806FBFC(this->unk_38 - 0x18, this->unk_3a - 0x18, 0x30, 0x30)) {
|
||||
if (this->unk_2c <= 0x1007) {
|
||||
gScreen.controls.alphaBlend = ++this->unk_2c;
|
||||
this->unk_22 = 0;
|
||||
}
|
||||
} else {
|
||||
if (this->unk_2c > 0x1000) {
|
||||
this->unk_2c--;
|
||||
}
|
||||
gScreen.controls.alphaBlend=this->unk_2c;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_0805A73C(Manager15*);
|
||||
|
||||
void sub_0805A6E8(Manager15* this) {
|
||||
u16 tmp;
|
||||
sub_0805A89C(this);
|
||||
this->unk_23 = 0;
|
||||
sub_0805AAF0(0);
|
||||
this->unk_38 += gRoomControls.roomOriginX;
|
||||
this->unk_3a += gRoomControls.roomOriginY;
|
||||
if (!sub_0805A73C(this)) {
|
||||
this->manager.action++;
|
||||
}
|
||||
this->unk_2c = 0x1000;
|
||||
tmp = gScreen.lcd.displayControl | 0x4800;
|
||||
gScreen.lcd.displayControl = tmp;
|
||||
}
|
||||
|
||||
u32 sub_0805A73C(Manager15* this) {
|
||||
return sub_0806FBFC(this->unk_38 - 0x6, this->unk_3a - 0x6, 0xC, 0xC);
|
||||
}
|
||||
|
||||
void sub_0805A758(Manager15* this) {
|
||||
if (!sub_0805A73C(this)) {
|
||||
this->manager.action++;
|
||||
}
|
||||
}
|
||||
|
||||
extern u8 gUnk_02034490;
|
||||
extern void sub_0805E4E0(Manager*, u32);
|
||||
extern void sub_08077B20(void);
|
||||
|
||||
void sub_0805A76C(Manager15* this) {
|
||||
if ((gPlayerEntity.currentHealth != 0)
|
||||
&& (gPlayerEntity.height.HALF.HI == 0)
|
||||
&& (!gPlayerState.field_0x2c)
|
||||
) {
|
||||
switch (gPlayerState.field_0xa9) {
|
||||
case 1:
|
||||
case 0:
|
||||
if (sub_0805A73C(this)) {
|
||||
this->manager.action++;
|
||||
sub_08004168(&gPlayerEntity);
|
||||
gPlayerEntity.animationState = 4;
|
||||
sub_0805E4E0(&this->manager, 0x258);
|
||||
sub_08078A90(0xFF);
|
||||
gUnk_02034490 = 1;
|
||||
gRoomControls.cameraTarget = 0;
|
||||
sub_08077B20();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A7E4(Manager15* this) {
|
||||
if (gPlayerState.playerAction != 0x12) {
|
||||
gPlayerState.playerAction = 0x12;
|
||||
gPlayerState.field_0x38 = 0;
|
||||
gPlayerState.field_0x39 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A804(Manager15* this) {
|
||||
switch (this->manager.action) {
|
||||
case 0:
|
||||
if (CheckLocalFlag(this->unk_3e)) {
|
||||
this->manager.action = 1;
|
||||
} else {
|
||||
this->manager.action = 2;
|
||||
}
|
||||
this->manager.unk_0d = 1;
|
||||
this->manager.unk_10 |= 0x20;
|
||||
sub_0805E3A0(this, 6);
|
||||
break;
|
||||
case 1:
|
||||
if (CheckLocalFlag(this->unk_3e)) break;
|
||||
this->manager.action = 2;
|
||||
sub_0805A4CC(this,4);
|
||||
break;
|
||||
case 2:
|
||||
if (this->manager.unk_0d) {
|
||||
this->manager.action = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!CheckLocalFlag(this->unk_3e)) break;
|
||||
this->manager.action = 4;
|
||||
sub_0805A4CC(this,4);
|
||||
break;
|
||||
case 4:
|
||||
if (this->manager.unk_0d) {
|
||||
this->manager.action = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805AAC8(Manager15*);
|
||||
extern void sub_08052D74(void*, void*, void*);
|
||||
|
||||
void sub_0805A89C(Manager15* this) {
|
||||
sub_0805E3A0(this, 6);
|
||||
this->manager.action = 1;
|
||||
this->manager.unk_10 |= 0x20;
|
||||
this->manager.unk_0e = 8;
|
||||
this->manager.unk_0f = 0x10;
|
||||
this->unk_21 = 0;
|
||||
this->unk_22 = 0;
|
||||
this->unk_20 = gRoomControls.roomID;
|
||||
this->unk_24 = gRoomControls.roomOriginX;
|
||||
this->unk_26 = gRoomControls.roomOriginY;
|
||||
sub_08052D74(this, sub_0805AAC8, 0);
|
||||
}
|
||||
|
||||
void sub_0805A94C(Manager15* this);
|
||||
|
||||
void sub_0805A8EC(Manager15* this) {
|
||||
sub_0805AA58(this);
|
||||
sub_0805A94C(this);
|
||||
if (gRoomControls.unk2 == 1) {
|
||||
gScreen.lcd.displayControl |= 0x4000;
|
||||
this->manager.unk_0d = 1;
|
||||
} else {
|
||||
if (!this->manager.unk_0d) return;
|
||||
this->manager.unk_0d = 0;
|
||||
if (this->unk_20 == gRoomControls.roomID) return;
|
||||
gScreen.lcd.displayControl &= 0xB7FF;
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805A94C(Manager15* this) {
|
||||
int tmp1, tmp2;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY - this->unk_26 + this->unk_36;
|
||||
tmp1 = -gScreen.affine.bg3xOffset;
|
||||
tmp2 = tmp1 + 0x100;
|
||||
if (tmp1 < 0) tmp1 = 0;
|
||||
if (tmp1 > 0xF0) tmp1 = 0xF0;
|
||||
if (tmp2 < 0) tmp2 = 0;
|
||||
if (tmp2 > 0xF0) tmp2 = 0xF0;
|
||||
gScreen.controls.window1HorizontalDimensions = (tmp1 << 8 | tmp2);
|
||||
tmp1 = -gScreen.affine.bg3yOffset;
|
||||
tmp2 = tmp1 + 0x100;
|
||||
if (tmp1 < 0) tmp1 = 0;
|
||||
if (tmp1 > 0xA0) tmp1 = 0xA0;
|
||||
if (tmp2 < 0) tmp2 = 0;
|
||||
if (tmp2 > 0xA0) tmp2 = 0xA0;
|
||||
gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2);
|
||||
}
|
||||
|
||||
extern u8 gUnk_02001A40[];
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void sub_0805A9CC(Manager15* this) {
|
||||
int tmp1, tmp2;
|
||||
void* tmp3;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34;
|
||||
tmp1 = -gScreen.affine.bg3xOffset;
|
||||
tmp2 = tmp1 + 0x100;
|
||||
if (tmp1 < 0) tmp1 = 0;
|
||||
if (tmp1 > 0xF0) tmp1 = 0xF0;
|
||||
if (tmp2 < 0) tmp2 = 0;
|
||||
if (tmp2 > 0xF0) tmp2 = 0xF0;
|
||||
gScreen.controls.window1HorizontalDimensions = tmp1 << 8 | tmp2;
|
||||
tmp1 = gRoomControls.roomScrollY - this->unk_26 + this->unk_36;
|
||||
gScreen.affine.bg3yOffset = tmp1 & 0x3F;
|
||||
if (tmp1 < 0) tmp1 += 0x3F;
|
||||
tmp3 = (&gUnk_02001A40[(tmp1 >> 6 << 9)]);
|
||||
gScreen.affine.unk5 = (u32) tmp3;
|
||||
gScreen.controls.window1VerticalDimensions = 0xa0;
|
||||
if (this->unk_28 == tmp3) return;
|
||||
this->unk_28 = tmp3;
|
||||
gScreen.affine.unk4 = 1;
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_0805A9CC(Manager15* this) {
|
||||
asm(".include \"asm/non_matching/manager15/sub_0805A9CC.inc\"");
|
||||
}
|
||||
#endif
|
||||
|
||||
extern struct {
|
||||
u8 unk_00[0x20];
|
||||
} gUnk_085A97A0[];
|
||||
extern u16 gUnk_081085B8[];
|
||||
extern void LoadPalettes(const u8*, u32, u32);
|
||||
|
||||
void sub_0805AA58(Manager15* this) {
|
||||
if (--this->manager.unk_0e == 0) {
|
||||
this->manager.unk_0e = 8;
|
||||
this->unk_21 += 1;
|
||||
this->unk_21 &= 3;
|
||||
LoadPalettes(gUnk_085A97A0[this->unk_21].unk_00,5,1);
|
||||
}
|
||||
if (--this->manager.unk_0f == 0) {
|
||||
this->manager.unk_0f = 0x10;
|
||||
this->unk_22 += 1;
|
||||
this->unk_22 &= 0xF;
|
||||
gScreen.controls.alphaBlend = gUnk_081085B8[this->unk_22];
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805AAC8(Manager15* this) {
|
||||
sub_0805AAF0(this->unk_23);
|
||||
sub_0805A280(&this->manager);
|
||||
}
|
||||
|
||||
|
||||
extern u16 gUnk_08108648[];
|
||||
|
||||
void sub_0805AADC(u32 unk0) {
|
||||
LoadGfxGroup(gUnk_08108648[unk0]);
|
||||
}
|
||||
|
||||
void sub_0805AAF0(u32 unk0) {
|
||||
sub_0805AADC(unk0);
|
||||
gScreen.controls.layerFXControl = 0x3E48;
|
||||
gScreen.controls.alphaBlend = 0x1008;
|
||||
gScreen.affine.bg3Control = 0x1E04;
|
||||
gScreen.affine.unk5 = &gUnk_02001A40;
|
||||
gScreen.affine.bg3xOffset = 0;
|
||||
gScreen.affine.bg3yOffset = 0;
|
||||
gScreen.affine.unk4 = 1;
|
||||
gScreen.controls.windowInsideControl = 0x3F3F;
|
||||
gScreen.controls.windowOutsideControl = 0x37;
|
||||
gScreen.controls.window1HorizontalDimensions = 0xF0;
|
||||
gScreen.controls.window1VerticalDimensions = 0xA0;
|
||||
}
|
||||
Loading…
Reference in New Issue