mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 06:57:18 -05:00
Match SetSavingIconCoords and BlinkSavingIcon
This commit is contained in:
parent
c61c7df7e4
commit
02b6c6bd46
89
asm/sprite.s
89
asm/sprite.s
|
|
@ -5,95 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start SetSavingIconCoords
|
||||
SetSavingIconCoords:
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
cmp r3, 0
|
||||
bne _0800522C
|
||||
ldr r1, _08005228
|
||||
strh r3, [r1]
|
||||
movs r0, 0xA0
|
||||
strh r0, [r1, 0x2]
|
||||
b _0800523C
|
||||
.align 2, 0
|
||||
_08005228: .4byte gUnknown_2025694
|
||||
_0800522C:
|
||||
ldr r1, _08005240
|
||||
ldrh r0, [r3]
|
||||
movs r2, 0
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r3, 0x2]
|
||||
strh r0, [r1, 0x2]
|
||||
ldr r0, _08005244
|
||||
str r2, [r0]
|
||||
_0800523C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08005240: .4byte gUnknown_2025694
|
||||
_08005244: .4byte gUnknown_2025698
|
||||
thumb_func_end SetSavingIconCoords
|
||||
|
||||
thumb_func_start BlinkSavingIcon
|
||||
BlinkSavingIcon:
|
||||
push {r4,lr}
|
||||
movs r2, 0xE0
|
||||
lsls r2, 19
|
||||
ldr r0, _08005280
|
||||
ldr r1, [r0]
|
||||
adds r3, r1, 0
|
||||
adds r1, 0x1
|
||||
str r1, [r0]
|
||||
movs r0, 0x10
|
||||
ands r3, r0
|
||||
cmp r3, 0
|
||||
beq _08005288
|
||||
movs r0, 0xA0
|
||||
strh r0, [r2]
|
||||
adds r2, 0x2
|
||||
movs r1, 0x80
|
||||
lsls r1, 7
|
||||
adds r0, r1, 0
|
||||
strh r0, [r2]
|
||||
adds r2, 0x2
|
||||
ldr r4, _08005284
|
||||
adds r0, r4, 0
|
||||
strh r0, [r2]
|
||||
adds r2, 0x2
|
||||
movs r0, 0
|
||||
strh r0, [r2]
|
||||
b _080052A8
|
||||
.align 2, 0
|
||||
_08005280: .4byte gUnknown_2025698
|
||||
_08005284: .4byte 0x0000f3fc
|
||||
_08005288:
|
||||
ldr r1, _080052B0
|
||||
ldrh r0, [r1, 0x2]
|
||||
strh r0, [r2]
|
||||
ldr r2, _080052B4
|
||||
movs r4, 0x80
|
||||
lsls r4, 7
|
||||
adds r0, r4, 0
|
||||
ldrh r1, [r1]
|
||||
adds r0, r1
|
||||
strh r0, [r2]
|
||||
adds r2, 0x2
|
||||
ldr r1, _080052B8
|
||||
adds r0, r1, 0
|
||||
strh r0, [r2]
|
||||
adds r2, 0x2
|
||||
strh r3, [r2]
|
||||
_080052A8:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080052B0: .4byte gUnknown_2025694
|
||||
_080052B4: .4byte 0x07000002
|
||||
_080052B8: .4byte 0x0000f3fc
|
||||
thumb_func_end BlinkSavingIcon
|
||||
|
||||
thumb_func_start sub_80052BC
|
||||
sub_80052BC:
|
||||
push {r4-r6,lr}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef GUARD_SPRITE_H
|
||||
#define GUARD_SPRITE_H
|
||||
|
||||
#include "position.h"
|
||||
|
||||
// size: 0x8
|
||||
struct unkSprite
|
||||
{
|
||||
|
|
@ -39,15 +41,15 @@ struct unkStruct_2039DB0
|
|||
u16 unkA;
|
||||
};
|
||||
|
||||
void BlinkSavingIcon(void);
|
||||
void CopySpritesToOam(void);
|
||||
void InitSprites(void);
|
||||
void ResetSprites(bool8);
|
||||
void SetSavingIconCoords(struct Position *);
|
||||
void sub_8004E8C(struct unkStruct_2039DB0 *);
|
||||
void sub_8005180(void);
|
||||
|
||||
// sprite.s
|
||||
extern void AddSprite(struct unkSprite *, s32, u32 *, struct unkStruct_2039DB0 *);
|
||||
extern void BlinkSavingIcon(void);
|
||||
extern void SetSavingIconCoords(u32);
|
||||
|
||||
#endif // GUARD_SPRITE_H
|
||||
|
|
@ -96,7 +96,7 @@ void GameLoop(void)
|
|||
InitializeGameOptions(TRUE);
|
||||
SetWindowTitle(gPMDBuildVersion);
|
||||
sub_800DAAC();
|
||||
SetSavingIconCoords(0);
|
||||
SetSavingIconCoords(NULL);
|
||||
tmp = 0;
|
||||
if (ReadSaveFromPak(&tmp))
|
||||
sub_800135C();
|
||||
|
|
|
|||
60
src/sprite.c
60
src/sprite.c
|
|
@ -2,6 +2,8 @@
|
|||
#include "sprite.h"
|
||||
|
||||
extern u16 gUnknown_2025670;
|
||||
extern struct Position gUnknown_2025694;
|
||||
extern u32 gUnknown_2025698;
|
||||
extern struct SpriteList gUnknown_20256A0;
|
||||
extern struct UnkSpriteLink gUnknown_2025EA8[128];
|
||||
extern struct unkSprite gUnknown_20262A8[128];
|
||||
|
|
@ -13,7 +15,7 @@ extern u32 *gUnknown_203B074;
|
|||
void InitSprites(void)
|
||||
{
|
||||
ResetSprites(TRUE);
|
||||
SetSavingIconCoords(0);
|
||||
SetSavingIconCoords(NULL);
|
||||
}
|
||||
|
||||
void ResetSprites(bool8 a0)
|
||||
|
|
@ -26,7 +28,7 @@ void ResetSprites(bool8 a0)
|
|||
struct UnkSpriteLink *e;
|
||||
|
||||
gSpriteCount = 0;
|
||||
gCharMemCursor = (u32*)0x6010000;
|
||||
gCharMemCursor = (u32*)OBJ_VRAM0;
|
||||
gUnknown_203B074 = &gUnknown_20266B0;
|
||||
|
||||
a = &gUnknown_20256A0.sprites[0];
|
||||
|
|
@ -577,7 +579,7 @@ void CopySpritesToOam(void)
|
|||
{
|
||||
struct UnkSpriteLink *sLink;
|
||||
struct unkSprite *spr;
|
||||
u16 *oam;
|
||||
volatile u16 *oam;
|
||||
s32 count;
|
||||
|
||||
sLink = &gUnknown_20256A0.sprites[0];
|
||||
|
|
@ -621,4 +623,56 @@ void CopySpritesToOam(void)
|
|||
}
|
||||
|
||||
gUnknown_2025670 = count;
|
||||
}
|
||||
|
||||
void SetSavingIconCoords(struct Position *pos)
|
||||
{
|
||||
if (pos == NULL) {
|
||||
gUnknown_2025694.x = 0;
|
||||
gUnknown_2025694.y = DISPLAY_HEIGHT;
|
||||
}
|
||||
else {
|
||||
gUnknown_2025694.x = pos->x;
|
||||
gUnknown_2025694.y = pos->y;
|
||||
gUnknown_2025698 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void BlinkSavingIcon(void)
|
||||
{
|
||||
volatile u16 *oam;
|
||||
u32 uVar1;
|
||||
|
||||
oam = (u16 *)OAM;
|
||||
uVar1 = gUnknown_2025698++;
|
||||
|
||||
if (uVar1 & 16) {
|
||||
// Set y to 160
|
||||
// Set affineMode/objMode/mosaic/bpp/shape to 0
|
||||
*oam++ = DISPLAY_HEIGHT;
|
||||
// Set x/matrixNum to 0
|
||||
// Set size to 1
|
||||
*oam++ = 0x4000;
|
||||
// Set tileNum to 0x3FC
|
||||
// Set priority to 0
|
||||
// Set paletteNum to 15
|
||||
*oam++ = 0xF3FC;
|
||||
// Set affineParam to 0
|
||||
*oam = 0;
|
||||
}
|
||||
else {
|
||||
// Set y to gUnknown_2025694.y
|
||||
// Set affineMode/objMode/mosaic/bpp/shape to 0
|
||||
*oam++ = gUnknown_2025694.y;
|
||||
// Set x to gUnknown_2025694.x
|
||||
// Set matrixNum to 0
|
||||
// Set size to 1
|
||||
*oam++ = gUnknown_2025694.x + 0x4000;
|
||||
// Set tileNum to 0x3FC
|
||||
// Set priority to 0
|
||||
// Set paletteNum to 15
|
||||
*oam++ = 0xF3FC;
|
||||
// Set affineParam to 0
|
||||
*oam = 0;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user