mirror of https://github.com/zeldaret/tmc.git
windcrest.c, windTribeFlag.c OK
This commit is contained in:
parent
90a9cd39be
commit
0105a247b8
|
@ -1,58 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start WindTribeFlag
|
||||
WindTribeFlag: @ 0x0809CEC8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0809CF06
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0809CEEE
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
b _0809CEF4
|
||||
_0809CEEE:
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
_0809CEF4:
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl UpdateSpriteOrderAndFlip
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
b _0809CF0C
|
||||
_0809CF06:
|
||||
adds r0, r4, #0
|
||||
bl sub_08004274
|
||||
_0809CF0C:
|
||||
adds r4, #0x59
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #0xff
|
||||
bne _0809CF20
|
||||
bl Random
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
adds r0, #0x10
|
||||
strb r0, [r4]
|
||||
_0809CF20:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
|
@ -1,62 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start Windcrest
|
||||
Windcrest: @ 0x080A20FC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
bne _080A2114
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD64
|
||||
_080A2114:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DDAC
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DDE4
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080A2124
|
||||
sub_080A2124: @ 0x080A2124
|
||||
push {lr}
|
||||
ldr r3, _080A2134 @ =gUnk_08125010
|
||||
movs r1, #1
|
||||
movs r2, #0xe
|
||||
bl sub_08078850
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A2134: .4byte gUnk_08125010
|
||||
|
||||
thumb_func_start sub_080A2138
|
||||
sub_080A2138: @ 0x080A2138
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x72
|
||||
bl PlaySFX
|
||||
ldr r2, _080A2160 @ =gUnk_02002A40
|
||||
ldrb r0, [r4, #0xb]
|
||||
adds r0, #0x18
|
||||
movs r1, #1
|
||||
lsls r1, r0
|
||||
ldr r0, [r2, #0x40]
|
||||
orrs r0, r1
|
||||
str r0, [r2, #0x40]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x46
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A2160: .4byte gUnk_02002A40
|
|
@ -109,7 +109,7 @@ typedef struct Entity {
|
|||
struct Entity* parent;
|
||||
struct Entity* attachedEntity;
|
||||
u8 field_0x58;
|
||||
u8 field_0x59;
|
||||
u8 animTime;
|
||||
union {
|
||||
u8 all;
|
||||
struct {
|
||||
|
|
|
@ -737,7 +737,7 @@ SECTIONS {
|
|||
asm/object91.o(.text);
|
||||
asm/bakerOven.o(.text);
|
||||
asm/object93.o(.text);
|
||||
asm/windTribeFlag.o(.text);
|
||||
src/windTribeFlag.o(.text);
|
||||
asm/bird.o(.text);
|
||||
asm/object96.o(.text);
|
||||
asm/object97.o(.text);
|
||||
|
@ -777,7 +777,7 @@ SECTIONS {
|
|||
asm/windTribeTeleporter.o(.text);
|
||||
asm/objectB9.o(.text);
|
||||
asm/objectBA.o(.text);
|
||||
asm/windcrest.o(.text);
|
||||
src/windcrest.o(.text);
|
||||
asm/litArea.o(.text);
|
||||
asm/objectBD.o(.text);
|
||||
asm/pinwheel.o(.text);
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
void WindTribeFlag(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
this->action++;
|
||||
this->collisionLayer = 2;
|
||||
if ((this->entityType).parameter1 == 0) {
|
||||
this->spriteSettings.b.ss6 = 0;
|
||||
}
|
||||
else {
|
||||
this->spriteSettings.b.ss6 = 1;
|
||||
}
|
||||
UpdateSpriteOrderAndFlip(this);
|
||||
InitializeAnimation(this,0);
|
||||
}
|
||||
else {
|
||||
sub_08004274(this);
|
||||
}
|
||||
if (this->animTime == 0xff) {
|
||||
this->animTime = (Random() & 0xf) + 0x10;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
u8 filler[64];
|
||||
u32 windcrests;
|
||||
} struct_02002A40;
|
||||
|
||||
extern void sub_0807DD64(Entity*);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
extern void sub_0807DDE4(Entity*);
|
||||
extern void sub_08078850(Entity*, u32, u32, u8*);
|
||||
extern void PlaySFX(u32);
|
||||
extern Entity* CreateFx (Entity*, u32, u32);
|
||||
|
||||
extern u8 gUnk_08125010;
|
||||
extern struct_02002A40 gUnk_02002A40;
|
||||
|
||||
void Windcrest(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
this->action++;
|
||||
this->animationList = 0;
|
||||
sub_0807DD64(this);
|
||||
}
|
||||
sub_0807DDAC(this, 0);
|
||||
sub_0807DDE4(this);
|
||||
}
|
||||
|
||||
void sub_080A2124(Entity *this)
|
||||
{
|
||||
sub_08078850(this, 1, 0xe, &gUnk_08125010);
|
||||
}
|
||||
|
||||
void Windcrest_Unlock(Entity *this)
|
||||
{
|
||||
PlaySFX(0x72);
|
||||
gUnk_02002A40.windcrests = gUnk_02002A40.windcrests | 1 << (this->entityType.parameter2 + 0x18);
|
||||
CreateFx(this, 0x46, 0);
|
||||
}
|
Loading…
Reference in New Issue