mirror of https://github.com/zeldaret/tmc.git
Merge pull request #299 from hatal175/CopyOAM
This commit is contained in:
commit
2cf294d02d
|
@ -112,9 +112,11 @@ typedef struct {
|
||||||
} WStruct;
|
} WStruct;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u16 unk0;
|
u8 unk0;
|
||||||
|
u8 unk1;
|
||||||
u16 unk2;
|
u16 unk2;
|
||||||
u16 unk4;
|
u8 unk4;
|
||||||
|
u8 unk5;
|
||||||
u8 unk6;
|
u8 unk6;
|
||||||
u8 unk7;
|
u8 unk7;
|
||||||
} OAMObj;
|
} OAMObj;
|
||||||
|
|
26
src/affine.c
26
src/affine.c
|
@ -24,23 +24,26 @@ void FlushSprites(void) {
|
||||||
gOAMControls.updated = 0;
|
gOAMControls.updated = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
NONMATCH("asm/non_matching/vram/CopyOAM.inc", void CopyOAM(void)) {
|
void CopyOAM(void) {
|
||||||
s32 rem;
|
|
||||||
u16* d;
|
u16* d;
|
||||||
|
s32 rem;
|
||||||
|
|
||||||
if (gMain.ticks.HALF.LO == 0) {
|
if (gMain.pad == 0) {
|
||||||
gOAMControls.unk[0x20].unk0 = gMain.ticks.HALF.LO;
|
gOAMControls.unk[0x20].unk0 = 0;
|
||||||
gOAMControls.unk[0x48].unk4 = gMain.ticks.HALF.LO;
|
gOAMControls.unk[0x48].unk4 = 0;
|
||||||
gOAMControls.unk[0x71].unk0 = gMain.ticks.HALF.LO;
|
gOAMControls.unk[0x71].unk0 = 0;
|
||||||
gOAMControls.unk[0x99].unk4 = gMain.ticks.HALF.LO;
|
gOAMControls.unk[0x99].unk4 = 0;
|
||||||
} else {
|
} else {
|
||||||
gMain.ticks.HALF.LO--;
|
gMain.pad--;
|
||||||
}
|
}
|
||||||
|
|
||||||
rem = 0x80 - gOAMControls.updated;
|
rem = 0x80 - gOAMControls.updated;
|
||||||
for (d = (u16*)&gOAMControls.oam[0x80 + gOAMControls.updated]; rem > 0; rem--) {
|
if (rem > 0) {
|
||||||
*d = 0x2A0;
|
d = (u16*)&gOAMControls.oam[gOAMControls.updated];
|
||||||
(u8*)d += 6;
|
for (; rem != 0; rem--) {
|
||||||
|
*d = 0x2A0;
|
||||||
|
(u8*)d += 8;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (gOAMControls.unk[0].unk7) {
|
if (gOAMControls.unk[0].unk7) {
|
||||||
gOAMControls.unk[0].unk7 = 0;
|
gOAMControls.unk[0].unk7 = 0;
|
||||||
|
@ -48,7 +51,6 @@ NONMATCH("asm/non_matching/vram/CopyOAM.inc", void CopyOAM(void)) {
|
||||||
}
|
}
|
||||||
gOAMControls.field_0x0 = 1;
|
gOAMControls.field_0x0 = 1;
|
||||||
}
|
}
|
||||||
END_NONMATCH
|
|
||||||
|
|
||||||
void DrawEntities(void) {
|
void DrawEntities(void) {
|
||||||
void (*fn)(void);
|
void (*fn)(void);
|
||||||
|
|
|
@ -37,7 +37,7 @@ void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) {
|
||||||
|
|
||||||
gOAMControls.unk[0].unk7 = 1;
|
gOAMControls.unk[0].unk7 = 1;
|
||||||
|
|
||||||
temp = &gOAMControls.unk[param_1].unk0;
|
temp = (u16*)&gOAMControls.unk[param_1].unk0;
|
||||||
temp[0] = param_2;
|
temp[0] = param_2;
|
||||||
temp[1] = param_3;
|
temp[1] = param_3;
|
||||||
temp[2] = param_4;
|
temp[2] = param_4;
|
||||||
|
|
Loading…
Reference in New Issue