mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 18:02:16 +00:00
more boss run
This commit is contained in:
1 parent
bb14071fc0
commit
a0b1a35812
4 files changed
+125
-465
No files matched your search
Vendored
+2
-1
@@ -338,7 +338,8 @@
|
||||
"packed.h": "c",
|
||||
"endings.h": "c",
|
||||
"team_play.h": "c",
|
||||
"stdlib.h": "c"
|
||||
"stdlib.h": "c",
|
||||
"boss_8.h": "c"
|
||||
},
|
||||
"asm-code-lens.donated": true,
|
||||
"editor.formatOnSave": true,
|
||||
|
||||
-418
@@ -37,424 +37,6 @@ gUnknown_080D8874:
|
||||
.syntax unified
|
||||
.arm
|
||||
|
||||
thumb_func_start sub_8049D20
|
||||
sub_8049D20: @ 0x08049D20
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0xc
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldr r0, _08049E74 @ =sub_8049E90
|
||||
movs r1, #0xb2
|
||||
lsls r1, r1, #1
|
||||
movs r2, #0x81
|
||||
lsls r2, r2, #7
|
||||
ldr r3, _08049E78 @ =sub_804A6B4
|
||||
str r3, [sp]
|
||||
movs r3, #0
|
||||
bl TaskCreate
|
||||
ldrh r0, [r0, #6]
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #0x12
|
||||
adds r7, r0, r1
|
||||
ldr r2, _08049E7C @ =IWRAM_START + 0x15D
|
||||
adds r1, r0, r2
|
||||
movs r2, #0
|
||||
strb r2, [r1]
|
||||
ldr r3, _08049E80 @ =IWRAM_START + 0x120
|
||||
adds r1, r0, r3
|
||||
str r4, [r1]
|
||||
adds r3, #0x40
|
||||
adds r1, r0, r3
|
||||
str r5, [r1]
|
||||
subs r3, #2
|
||||
adds r1, r0, r3
|
||||
strb r2, [r1]
|
||||
ldr r1, _08049E84 @ =IWRAM_START + 0x15F
|
||||
adds r0, r0, r1
|
||||
strb r2, [r0]
|
||||
movs r0, #0x2f
|
||||
bl VramMalloc
|
||||
str r0, [sp, #4]
|
||||
movs r2, #0xf0
|
||||
lsls r2, r2, #1
|
||||
adds r0, r0, r2
|
||||
str r0, [sp, #8]
|
||||
movs r5, #0
|
||||
ldr r3, _08049E88 @ =gUnknown_080D8840
|
||||
mov sb, r3
|
||||
movs r0, #4
|
||||
add r0, sb
|
||||
mov sl, r0
|
||||
movs r6, #0
|
||||
_08049D8A:
|
||||
lsls r2, r5, #3
|
||||
movs r3, #0x92
|
||||
lsls r3, r3, #1
|
||||
adds r1, r7, r3
|
||||
adds r1, r1, r2
|
||||
mov r3, sb
|
||||
adds r0, r2, r3
|
||||
ldr r0, [r0]
|
||||
lsls r0, r0, #8
|
||||
str r0, [r1]
|
||||
movs r0, #0x94
|
||||
lsls r0, r0, #1
|
||||
adds r1, r7, r0
|
||||
adds r1, r1, r2
|
||||
mov r3, sl
|
||||
adds r0, r2, r3
|
||||
ldr r0, [r0]
|
||||
lsls r0, r0, #8
|
||||
str r0, [r1]
|
||||
movs r1, #0x9e
|
||||
lsls r1, r1, #1
|
||||
adds r0, r7, r1
|
||||
adds r0, r0, r2
|
||||
str r6, [r0]
|
||||
movs r3, #0xa0
|
||||
lsls r3, r3, #1
|
||||
adds r0, r7, r3
|
||||
adds r0, r0, r2
|
||||
str r6, [r0]
|
||||
lsls r3, r5, #1
|
||||
movs r0, #0xaa
|
||||
lsls r0, r0, #1
|
||||
adds r2, r7, r0
|
||||
adds r2, r2, r3
|
||||
adds r0, r5, #2
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r2]
|
||||
movs r1, #0xad
|
||||
lsls r1, r1, #1
|
||||
adds r0, r7, r1
|
||||
adds r0, r0, r5
|
||||
strb r6, [r0]
|
||||
movs r4, #0
|
||||
adds r2, r5, #1
|
||||
mov r8, r2
|
||||
adds r3, r3, r5
|
||||
lsls r3, r3, #5
|
||||
adds r5, r7, r3
|
||||
_08049DF2:
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #4
|
||||
adds r2, r5, r0
|
||||
movs r0, #0x50
|
||||
strh r0, [r2, #0x16]
|
||||
strh r0, [r2, #0x18]
|
||||
lsls r0, r4, #2
|
||||
add r0, sp
|
||||
adds r0, #4
|
||||
ldr r0, [r0]
|
||||
str r0, [r2, #4]
|
||||
ldr r0, _08049E8C @ =gUnknown_080D8864
|
||||
lsls r1, r4, #3
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1, #4]
|
||||
strh r0, [r2, #0xa]
|
||||
ldrb r1, [r1, #6]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x20
|
||||
strb r1, [r0]
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r2, #0x1a]
|
||||
strh r6, [r2, #8]
|
||||
strh r6, [r2, #0x14]
|
||||
strh r6, [r2, #0x1c]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x21
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
adds r1, #1
|
||||
movs r0, #0x10
|
||||
strb r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x25
|
||||
strb r6, [r0]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
str r0, [r2, #0x28]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
str r0, [r2, #0x10]
|
||||
adds r0, r2, #0
|
||||
bl UpdateSpriteAnimation
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #1
|
||||
bls _08049DF2
|
||||
mov r3, r8
|
||||
lsls r0, r3, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #2
|
||||
bls _08049D8A
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08049E74: .4byte sub_8049E90
|
||||
_08049E78: .4byte sub_804A6B4
|
||||
_08049E7C: .4byte IWRAM_START + 0x15D
|
||||
_08049E80: .4byte IWRAM_START + 0x120
|
||||
_08049E84: .4byte IWRAM_START + 0x15F
|
||||
_08049E88: .4byte gUnknown_080D8840
|
||||
_08049E8C: .4byte gUnknown_080D8864
|
||||
|
||||
thumb_func_start sub_8049E90
|
||||
sub_8049E90: @ 0x08049E90
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _08049EB0 @ =gCurTask
|
||||
ldr r2, [r0]
|
||||
ldrh r1, [r2, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x12
|
||||
adds r5, r1, r0
|
||||
ldr r0, _08049EB4 @ =gActiveBossTask
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08049EB8
|
||||
adds r0, r2, #0
|
||||
bl TaskDestroy
|
||||
b _08049F08
|
||||
.align 2, 0
|
||||
_08049EB0: .4byte gCurTask
|
||||
_08049EB4: .4byte gActiveBossTask
|
||||
_08049EB8:
|
||||
movs r4, #0
|
||||
ldr r6, _08049F10 @ =gUnknown_080D8874
|
||||
_08049EBC:
|
||||
movs r1, #0xad
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, r1
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r6
|
||||
ldr r2, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl _call_via_r2
|
||||
adds r0, r4, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #2
|
||||
bls _08049EBC
|
||||
ldr r1, _08049F14 @ =gPlayer
|
||||
ldr r0, [r1, #0xc]
|
||||
asrs r0, r0, #8
|
||||
cmp r0, #0x84
|
||||
bgt _08049EEE
|
||||
adds r0, r1, #0
|
||||
bl sub_800CBA4
|
||||
_08049EEE:
|
||||
ldr r2, _08049F18 @ =0x0000015F
|
||||
adds r1, r5, r2
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _08049F08
|
||||
adds r2, #1
|
||||
adds r0, r5, r2
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r0, #0
|
||||
bne _08049F08
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_08049F08:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08049F10: .4byte gUnknown_080D8874
|
||||
_08049F14: .4byte gPlayer
|
||||
_08049F18: .4byte 0x0000015F
|
||||
|
||||
thumb_func_start sub_8049F1C
|
||||
sub_8049F1C: @ 0x08049F1C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
mov ip, r0
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
mov r8, r1
|
||||
mov r0, r8
|
||||
lsls r0, r0, #1
|
||||
str r0, [sp]
|
||||
add r0, r8
|
||||
lsls r0, r0, #5
|
||||
mov r1, ip
|
||||
adds r7, r1, r0
|
||||
movs r0, #0x30
|
||||
adds r0, r0, r7
|
||||
mov sl, r0
|
||||
mov r1, r8
|
||||
lsls r3, r1, #3
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
adds r2, r0, r3
|
||||
ldr r0, [r2]
|
||||
rsbs r0, r0, #0
|
||||
mov sb, r0
|
||||
ldr r6, _0804A060 @ =0x0000015F
|
||||
add r6, ip
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
bne _08049F62
|
||||
str r0, [r2]
|
||||
_08049F62:
|
||||
ldr r2, [r2]
|
||||
add sb, r2
|
||||
movs r1, #0x92
|
||||
lsls r1, r1, #1
|
||||
add r1, ip
|
||||
adds r1, r1, r3
|
||||
movs r0, #0x9e
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
adds r0, r0, r3
|
||||
ldr r1, [r1]
|
||||
ldr r0, [r0]
|
||||
adds r1, r1, r0
|
||||
asrs r4, r1, #8
|
||||
movs r0, #0x94
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
adds r0, r0, r3
|
||||
ldr r0, [r0]
|
||||
adds r0, r0, r2
|
||||
asrs r5, r0, #8
|
||||
ldr r1, _0804A064 @ =gCamera
|
||||
ldr r0, [r1]
|
||||
subs r0, r4, r0
|
||||
strh r0, [r7, #0x16]
|
||||
ldr r0, [r1, #4]
|
||||
subs r0, r5, r0
|
||||
strh r0, [r7, #0x18]
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
bne _08049FD6
|
||||
movs r0, #0xaa
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldr r1, [sp]
|
||||
adds r6, r0, r1
|
||||
ldrh r0, [r6]
|
||||
subs r0, #1
|
||||
strh r0, [r6]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08049FD6
|
||||
ldr r3, _0804A068 @ =gUnknown_080D8858
|
||||
movs r2, #0xad
|
||||
lsls r2, r2, #1
|
||||
add r2, ip
|
||||
add r2, r8
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
adds r1, r3, #1
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
strh r0, [r6]
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
_08049FD6:
|
||||
ldr r0, _0804A06C @ =gPlayer
|
||||
ldr r1, [r0, #0x20]
|
||||
movs r2, #8
|
||||
ands r1, r2
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0804A008
|
||||
ldr r0, [r6, #0x3c]
|
||||
cmp r0, r7
|
||||
bne _0804A008
|
||||
ldr r0, [r6, #0xc]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
add r0, sb
|
||||
str r0, [r6, #0xc]
|
||||
movs r0, #0xaf
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _0804A008
|
||||
ldr r0, [r6, #8]
|
||||
adds r0, r0, r1
|
||||
str r0, [r6, #8]
|
||||
_0804A008:
|
||||
ldr r0, [r6, #0x20]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0804A036
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
adds r3, r6, #0
|
||||
bl sub_800CCB8
|
||||
adds r1, r0, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #9
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0804A036
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x10
|
||||
ldr r0, [r6, #0xc]
|
||||
adds r0, r0, r1
|
||||
str r0, [r6, #0xc]
|
||||
_0804A036:
|
||||
adds r0, r7, #0
|
||||
bl DisplaySprite
|
||||
ldrh r0, [r7, #0x16]
|
||||
mov r1, sl
|
||||
strh r0, [r1, #0x16]
|
||||
ldrh r0, [r7, #0x18]
|
||||
adds r0, #0x40
|
||||
strh r0, [r1, #0x18]
|
||||
mov r0, sl
|
||||
bl DisplaySprite
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804A060: .4byte 0x0000015F
|
||||
_0804A064: .4byte gCamera
|
||||
_0804A068: .4byte gUnknown_080D8858
|
||||
_0804A06C: .4byte gPlayer
|
||||
|
||||
thumb_func_start sub_804A070
|
||||
sub_804A070: @ 0x0804A070
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
||||
+118
-45
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "game/stage/player.h"
|
||||
#include "game/stage/camera.h"
|
||||
#include "sakit/collision.h"
|
||||
|
||||
#include "game/bosses/common.h"
|
||||
|
||||
@@ -203,6 +204,10 @@ void sub_80499D8(void)
|
||||
|
||||
void sub_8049D1C(struct Task *t) { }
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec2_32 qPos;
|
||||
/* 0x08 */ u8 livesCockpit;
|
||||
} SuperEggRoboZ;
|
||||
typedef struct {
|
||||
Sprite unk0[3][2];
|
||||
s32 unk120;
|
||||
@@ -213,60 +218,128 @@ typedef struct {
|
||||
u8 unk15D;
|
||||
u8 unk15E;
|
||||
u8 unk15F;
|
||||
s32 unk160;
|
||||
SuperEggRoboZ *unk160;
|
||||
} UNK_8049D20; /* 0x164 */
|
||||
|
||||
void sub_8049E90(void);
|
||||
void sub_804A6B4(struct Task *);
|
||||
|
||||
typedef void (*UNK_8049D20Callback)(UNK_8049D20 *, u8);
|
||||
|
||||
extern const UNK_8049D20Callback gUnknown_080D8874[];
|
||||
extern const s32 gUnknown_080D8840[][2];
|
||||
extern const TileInfo gUnknown_080D8864[];
|
||||
|
||||
// void sub_8049D20(s32 p1, s32 p2)
|
||||
// {
|
||||
// u8 i, j;
|
||||
// void *vrams[2];
|
||||
// struct Task *t = TaskCreate(sub_8049E90, 0x164, 0x4080, 0, sub_804A6B4);
|
||||
// UNK_8049D20 *unkD20 = TASK_DATA(t);
|
||||
// Sprite *s;
|
||||
void sub_8049D20(s32 p1, SuperEggRoboZ *boss)
|
||||
{
|
||||
u8 i, j;
|
||||
void *vrams[2];
|
||||
struct Task *t = TaskCreate(sub_8049E90, 0x164, 0x4080, 0, sub_804A6B4);
|
||||
UNK_8049D20 *unkD20 = TASK_DATA(t);
|
||||
Sprite *s;
|
||||
|
||||
// unkD20->unk15D = 0;
|
||||
// unkD20->unk120 = p1;
|
||||
// unkD20->unk160 = p2;
|
||||
// unkD20->unk15E = 0;
|
||||
// unkD20->unk15F = 0;
|
||||
// vrams[0] = VramMalloc(47);
|
||||
// vrams[1] = vrams[0] + 0x1E0;
|
||||
unkD20->unk15D = 0;
|
||||
unkD20->unk120 = p1;
|
||||
unkD20->unk160 = boss;
|
||||
unkD20->unk15E = 0;
|
||||
unkD20->unk15F = 0;
|
||||
vrams[0] = VramMalloc(47);
|
||||
vrams[1] = vrams[0] + 0x1E0;
|
||||
|
||||
// for (i = 0; i < 3; i++) {
|
||||
// unkD20->unk124[i][0] = Q(gUnknown_080D8840[i][0]);
|
||||
// unkD20->unk124[i][1] = Q(gUnknown_080D8840[i][1]);
|
||||
// unkD20->unk13C[i][0] = 0;
|
||||
// unkD20->unk13C[i][1] = 0;
|
||||
// unkD20->unk154[i] = (i + 2) * 300;
|
||||
// unkD20->unk15A[i] = 0;
|
||||
// for (j = 0; j < 2; j++) {
|
||||
// s = &unkD20->unk0[i][j];
|
||||
// s->x = 80;
|
||||
// s->y = 80;
|
||||
// s->graphics.dest = vrams[j];
|
||||
// SPRITE_INIT_WITHOUT_VRAM(s, gUnknown_080D8864[j].anim,
|
||||
// gUnknown_080D8864[j].variant, 15, 1, 0);
|
||||
// UpdateSpriteAnimation(s);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
for (i = 0; i < 3; i++) {
|
||||
unkD20->unk124[i][0] = Q(gUnknown_080D8840[i][0]);
|
||||
unkD20->unk124[i][1] = Q(gUnknown_080D8840[i][1]);
|
||||
unkD20->unk13C[i][0] = 0;
|
||||
unkD20->unk13C[i][1] = 0;
|
||||
unkD20->unk154[i] = (i + 2) * 300;
|
||||
unkD20->unk15A[i] = 0;
|
||||
for (j = 0; j < 2; j++) {
|
||||
s = &unkD20->unk0[i][j];
|
||||
s->x = 80;
|
||||
s->y = 80;
|
||||
s->graphics.dest = vrams[j];
|
||||
SPRITE_INIT_WITHOUT_VRAM(s, gUnknown_080D8864[j].anim,
|
||||
gUnknown_080D8864[j].variant, 28, 1, 0);
|
||||
UpdateSpriteAnimation(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// void sub_8049E90(void)
|
||||
// {
|
||||
// u8 i;
|
||||
// UNK_8049D20 *unkD20 = TASK_DATA(gCurTask);
|
||||
// if (gActiveBossTask == NULL) {
|
||||
// TaskDestroy(gCurTask);
|
||||
// return;
|
||||
// }
|
||||
void sub_8049E90(void)
|
||||
{
|
||||
u8 i;
|
||||
UNK_8049D20 *unkD20 = TASK_DATA(gCurTask);
|
||||
if (gActiveBossTask == NULL) {
|
||||
TaskDestroy(gCurTask);
|
||||
return;
|
||||
}
|
||||
|
||||
// for (i = 0; i < 3; i++) {
|
||||
// gUnknown_080D8874[]
|
||||
// }
|
||||
// }
|
||||
for (i = 0; i < 3; i++) {
|
||||
gUnknown_080D8874[unkD20->unk15A[i]](unkD20, i);
|
||||
}
|
||||
|
||||
if (I(gPlayer.y) < 133) {
|
||||
sub_800CBA4(&gPlayer);
|
||||
}
|
||||
|
||||
if (unkD20->unk15F == 0 && unkD20->unk160->livesCockpit == 0) {
|
||||
unkD20->unk15F = 1;
|
||||
}
|
||||
}
|
||||
|
||||
extern const u8 gUnknown_080D8858[][2];
|
||||
void sub_8049F1C(UNK_8049D20 *unkD20, u8 i)
|
||||
{
|
||||
Sprite *s = &unkD20->unk0[i][0];
|
||||
Sprite *s2 = &unkD20->unk0[i][1];
|
||||
|
||||
s32 preY = -unkD20->unk13C[i][1];
|
||||
|
||||
Vec2_32 pos;
|
||||
#ifndef NON_MATCHING
|
||||
register u8 *unk15F asm("r6") = &unkD20->unk15F;
|
||||
#else
|
||||
u8 *unk15F = &unkD20->unk15F;
|
||||
#endif
|
||||
if (*unk15F == 0) {
|
||||
unkD20->unk13C[i][1] = 0;
|
||||
}
|
||||
|
||||
preY += unkD20->unk13C[i][1];
|
||||
|
||||
pos.x = I(unkD20->unk124[i][0] + unkD20->unk13C[i][0]);
|
||||
pos.y = I(unkD20->unk124[i][1] + unkD20->unk13C[i][1]);
|
||||
|
||||
s->x = pos.x - gCamera.x;
|
||||
s->y = pos.y - gCamera.y;
|
||||
|
||||
if (*unk15F == 0) {
|
||||
|
||||
if (--unkD20->unk154[i] == 0) {
|
||||
unkD20->unk154[i] = gUnknown_080D8858[unkD20->unk15A[i]][1];
|
||||
unkD20->unk15A[i] = gUnknown_080D8858[unkD20->unk15A[i]][0];
|
||||
}
|
||||
}
|
||||
|
||||
if (gPlayer.moveState & MOVESTATE_8 && gPlayer.unk3C == s) {
|
||||
gPlayer.y += Q(1);
|
||||
gPlayer.y += preY;
|
||||
if (unkD20->unk15E == 1) {
|
||||
gPlayer.x += Q(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (!(gPlayer.moveState & MOVESTATE_400000)) {
|
||||
u32 result = sub_800CCB8(s, pos.x, pos.y, &gPlayer);
|
||||
|
||||
if (result & 0x10000) {
|
||||
gPlayer.y += Q(result << 0x10) >> 0x10;
|
||||
}
|
||||
}
|
||||
|
||||
DisplaySprite(s);
|
||||
s2->x = s->x;
|
||||
s2->y = s->y + 0x40;
|
||||
|
||||
DisplaySprite(s2);
|
||||
}
|
||||
@@ -30,8 +30,12 @@ extern void sub_8048C7C(void *boss);
|
||||
const u16 gUnknown_080D87E6[][2] = { { 0, 0 } };
|
||||
const u16 gUnknown_080D87D8[] = { 0 };
|
||||
const u32 gUnknown_080D8808[][2] = { { 0, 0 } };
|
||||
const u8 gUnknown_080D8858[][2] = { { 0, 0 } };
|
||||
const u32 gUnknown_080D8874[] = { 0 };
|
||||
const TileInfo gUnknown_080D8864[] = { { 0, 0, 0 } };
|
||||
const s32 gUnknown_080D8840[][2] = { { 0, 0 } };
|
||||
|
||||
void sub_8049D20(void *vramTiles, void *boss) { }
|
||||
void sub_804A6B4(struct Task *) {};
|
||||
|
||||
// boss_9
|
||||
const s16 gUnknown_080D8A94[4] = { 0 };
|
||||
|
||||
Reference in new issue
Block a user