mirror of https://github.com/zeldaret/tmc.git
Match sub_080ACF2C and put const data in playerItemHeldObject
This commit is contained in:
parent
1208153d25
commit
26b9110180
|
@ -1,81 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xd]
|
||||
ldr r0, _080ACF60 @ =gUnk_081320E4
|
||||
str r0, [r4, #0x48]
|
||||
ldr r5, [r4, #0x54]
|
||||
adds r6, r5, #0
|
||||
cmp r5, #0
|
||||
beq _080ACF64
|
||||
ldr r0, [r5, #0x2c]
|
||||
str r0, [r4, #0x2c]
|
||||
ldr r0, [r5, #0x30]
|
||||
str r0, [r4, #0x30]
|
||||
ldr r0, [r5, #0x34]
|
||||
str r0, [r4, #0x34]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
ldrb r0, [r5, #0x16]
|
||||
strb r0, [r4, #0x16]
|
||||
b _080ACFB6
|
||||
.align 2, 0
|
||||
_080ACF60: .4byte gUnk_081320E4
|
||||
_080ACF64:
|
||||
adds r5, r4, #0
|
||||
str r4, [r4, #0x54]
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldr r3, _080ACFC8 @ =gUnk_081320B8
|
||||
ldrb r0, [r4, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0, #1]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
strb r6, [r4, #0x16]
|
||||
ldrb r0, [r4, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x60
|
||||
strh r1, [r0]
|
||||
ldrb r0, [r4, #0xf]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
bl sub_08078D60
|
||||
_080ACFB6:
|
||||
ldrb r1, [r5, #8]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6c
|
||||
strh r1, [r0]
|
||||
ldrb r1, [r5, #9]
|
||||
adds r0, #2
|
||||
strh r1, [r0]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080ACFC8: .4byte gUnk_081320B8
|
||||
.syntax divided
|
|
@ -45161,31 +45161,6 @@
|
|||
"DEMO_JP": -2268
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "playerItemHeldObject/gUnk_081320B8.bin",
|
||||
"start": 1253560,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"path": "playerItemHeldObject/gUnk_081320C4.bin",
|
||||
"start": 1253572,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "playerItemHeldObject/gUnk_081320CC.bin",
|
||||
"start": 1253580,
|
||||
"size": 8
|
||||
},
|
||||
{
|
||||
"path": "playerItemHeldObject/gUnk_081320D4.bin",
|
||||
"start": 1253588,
|
||||
"size": 16
|
||||
},
|
||||
{
|
||||
"path": "playerItemHeldObject/gUnk_081320E4.bin",
|
||||
"start": 1253604,
|
||||
"size": 12
|
||||
},
|
||||
{
|
||||
"offsets": {
|
||||
"DEMO_JP": -988
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_081320A8:: @ 081320A8
|
||||
.4byte sub_080ACF2C
|
||||
.4byte sub_080ACFCC
|
||||
.4byte sub_080AD040
|
||||
.4byte sub_080AD274
|
||||
|
||||
gUnk_081320B8:: @ 081320B8
|
||||
.incbin "playerItemHeldObject/gUnk_081320B8.bin"
|
||||
|
||||
gUnk_081320C4:: @ 081320C4
|
||||
.incbin "playerItemHeldObject/gUnk_081320C4.bin"
|
||||
|
||||
gUnk_081320CC:: @ 081320CC
|
||||
.incbin "playerItemHeldObject/gUnk_081320CC.bin"
|
||||
|
||||
gUnk_081320D4:: @ 081320D4
|
||||
.incbin "playerItemHeldObject/gUnk_081320D4.bin"
|
||||
|
||||
gUnk_081320E4:: @ 081320E4
|
||||
.incbin "playerItemHeldObject/gUnk_081320E4.bin"
|
|
@ -403,6 +403,7 @@ u32 sub_0807AC54(Entity*);
|
|||
void sub_080792D8(void);
|
||||
u32 sub_08078F74(Entity*);
|
||||
void sub_0807879C(Entity*);
|
||||
void sub_08078D60(void);
|
||||
void PlayerSetNormalAndCollide(void);
|
||||
bool32 PlayerTryDropObject(ItemBehavior* arg0, u32 unk);
|
||||
void InitItemGetSequence(u32, u32, u32);
|
||||
|
|
|
@ -1639,7 +1639,7 @@ SECTIONS {
|
|||
src/projectile/v3TennisBallProjectile.o(.rodata);
|
||||
src/playerItem/playerItemGust.o(.rodata);
|
||||
src/flagDebug.o(.rodata);
|
||||
data/const/playerItem/playerItemHeldObject.o(.rodata);
|
||||
src/playerItem/playerItemHeldObject.o(.rodata);
|
||||
src/title.o(.rodata);
|
||||
src/projectile.o(.rodata);
|
||||
src/playerItem/playerItemGustJar.o(.rodata);
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
#include "new_player.h"
|
||||
#include "player.h"
|
||||
|
||||
extern void (*const gUnk_081320A8[])(Entity*);
|
||||
|
||||
typedef struct {
|
||||
Entity base;
|
||||
u8 unk_68[4];
|
||||
|
@ -23,20 +21,65 @@ typedef struct {
|
|||
} PlayerItemHeldObjectEntity;
|
||||
extern bool32 ProcessMovement10(Entity*);
|
||||
|
||||
extern const s8 gUnk_081320C4[];
|
||||
typedef struct {
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
} struct_gUnk_081320B8;
|
||||
|
||||
bool32 sub_080AD32C(PlayerItemHeldObjectEntity*);
|
||||
void sub_080AD27C(PlayerItemHeldObjectEntity*);
|
||||
void sub_080ACF2C(PlayerItemHeldObjectEntity*);
|
||||
void sub_080ACFCC(PlayerItemHeldObjectEntity*);
|
||||
void sub_080AD040(PlayerItemHeldObjectEntity*);
|
||||
void sub_080AD274(PlayerItemHeldObjectEntity*);
|
||||
u32 sub_0806F8DC(Entity*);
|
||||
|
||||
extern const u16 gUnk_081320CC[];
|
||||
extern const u32 gUnk_081320D4[];
|
||||
|
||||
void PlayerItemHeldObject(Entity* this) {
|
||||
gUnk_081320A8[this->subAction](this);
|
||||
static void (*const subActionFuncs[])(PlayerItemHeldObjectEntity*) = {
|
||||
sub_080ACF2C,
|
||||
sub_080ACFCC,
|
||||
sub_080AD040,
|
||||
sub_080AD274,
|
||||
};
|
||||
subActionFuncs[this->subAction]((PlayerItemHeldObjectEntity*)this);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/playerItem13/sub_080ACF2C.inc", void sub_080ACF2C(Entity* this))
|
||||
static const Hitbox3D gUnk_081320E4;
|
||||
|
||||
void sub_080ACF2C(PlayerItemHeldObjectEntity* this) {
|
||||
static const struct_gUnk_081320B8 gUnk_081320B8[] = { { 0, 2, 0xe8, 0 }, { 0, 5, 0xe0, 0 }, { 0, 5, 0xf2, 0 } };
|
||||
PlayerItemHeldObjectEntity* child;
|
||||
PlayerItemHeldObjectEntity* child2;
|
||||
const struct_gUnk_081320B8* ptr;
|
||||
u32 temp;
|
||||
|
||||
super->subAction++;
|
||||
super->hitbox = (Hitbox*)&gUnk_081320E4;
|
||||
child = (PlayerItemHeldObjectEntity*)super->child;
|
||||
child2 = child;
|
||||
if (child != NULL) {
|
||||
super->x = (child->base).x;
|
||||
super->y = (child->base).y;
|
||||
super->z = (child->base).z;
|
||||
super->collisionLayer = (child->base).collisionLayer;
|
||||
super->carryFlags = (child->base).carryFlags;
|
||||
} else {
|
||||
child = this;
|
||||
super->child = super;
|
||||
super->action = 2;
|
||||
ptr = gUnk_081320B8;
|
||||
super->palette.b.b0 = temp = ptr[super->subtimer].unk1;
|
||||
super->spriteSettings.draw = 1;
|
||||
super->carryFlags = (int)child2;
|
||||
super->spriteVramOffset = ptr[super->subtimer].unk2;
|
||||
InitializeAnimation(super, ptr[super->subtimer].unk0);
|
||||
sub_08078D60();
|
||||
}
|
||||
this->unk_6c = (child->base).kind;
|
||||
this->unk_6e = (child->base).id;
|
||||
}
|
||||
|
||||
void sub_080ACFCC(PlayerItemHeldObjectEntity* this) {
|
||||
Entity* child = super->child;
|
||||
|
@ -60,6 +103,9 @@ void sub_080ACFCC(PlayerItemHeldObjectEntity* this) {
|
|||
}
|
||||
|
||||
void sub_080AD040(PlayerItemHeldObjectEntity* this) {
|
||||
static const s8 gUnk_081320C4[] = {
|
||||
0, -6, 6, 0, 0, 6, -6, 0,
|
||||
};
|
||||
PlayerItemHeldObjectEntity* child;
|
||||
u32 tile;
|
||||
u32 tmp;
|
||||
|
@ -177,11 +223,18 @@ void sub_080AD040(PlayerItemHeldObjectEntity* this) {
|
|||
}
|
||||
}
|
||||
|
||||
void sub_080AD274(Entity* this) {
|
||||
void sub_080AD274(PlayerItemHeldObjectEntity* this) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
|
||||
void sub_080AD27C(PlayerItemHeldObjectEntity* this) {
|
||||
static const u16 gUnk_081320CC[] = {
|
||||
0x400,
|
||||
0x200,
|
||||
0x200,
|
||||
0x200,
|
||||
};
|
||||
static const u32 gUnk_081320D4[] = { Q_16_16(0), Q_16_16(0.5), Q_16_16(1.25), Q_16_16(1.25) };
|
||||
u32 tmp;
|
||||
PlayerItemHeldObjectEntity* child = (PlayerItemHeldObjectEntity*)super->child;
|
||||
gNewPlayerEntity.unk_74 = NULL;
|
||||
|
@ -217,3 +270,5 @@ bool32 sub_080AD32C(PlayerItemHeldObjectEntity* this) {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
static const Hitbox3D gUnk_081320E4 = { 0, 0, { 6, 3, 3, 6 }, 4, 4, 0x10, { 0, 0, 0 } };
|
||||
|
|
Loading…
Reference in New Issue