More cleanup

This commit is contained in:
y.demaisonregne 2023-07-13 02:54:53 +02:00
parent 00e2adb2c3
commit 3a64637a15
32 changed files with 3773 additions and 3580 deletions

View File

@ -409,8 +409,8 @@ lbl_0803db78:
lbl_0803db84: .4byte gCurrentSprite
lbl_0803db88: .4byte gCurrentClipdataAffectingAction
thumb_func_start AcidWormPlaySound
AcidWormPlaySound: @ 0x0803db8c
thumb_func_start AcidWormPlayRetractingSound
AcidWormPlayRetractingSound: @ 0x0803db8c
push {lr}
ldr r0, lbl_0803dba0 @ =gSubSpriteData1
ldrb r0, [r0, #0xf]
@ -458,7 +458,7 @@ lbl_0803dbc8:
adds r1, #0x24
movs r0, #0x27
strb r0, [r1]
bl AcidWormPlaySound
bl AcidWormPlayRetractingSound
movs r0, #1
lbl_0803dbe8:
pop {r1}
@ -1591,7 +1591,7 @@ lbl_0803e4f6:
subs r1, #8
movs r0, #0x27
strb r0, [r1]
bl AcidWormPlaySound
bl AcidWormPlayRetractingSound
b lbl_0803e6a8
.align 2, 0
lbl_0803e504: .4byte gSubSpriteData1
@ -1802,7 +1802,7 @@ lbl_0803e68e:
adds r1, #0x24
movs r0, #0x27
strb r0, [r1]
bl AcidWormPlaySound
bl AcidWormPlayRetractingSound
lbl_0803e6a8:
add sp, #0xc
pop {r4, r5}

View File

@ -3,6 +3,9 @@
#include "types.h"
#define SUITLESS_BAR_NBR_ELEMS 56
#define SUITLESS_BAR_SIZE 256
// 32ba08
extern const u16 sCommonSpritesPAL[96];
@ -65,7 +68,7 @@ extern const u8 sEnergyTanksRefillGfx_Ten[160 * 3];
extern const u8 sEnergyTanksRefillGfx_Eleven[160 * 3];
extern const u8 sEnergyTanksRefillGfx_Twelve[160 * 3];
extern const u8 sSuitlessHUDChargeBarGfx[56 * 256];
extern const u8 sSuitlessHUDChargeBarGfx[SUITLESS_BAR_NBR_ELEMS * SUITLESS_BAR_SIZE];
// 8339aa8

View File

@ -618,7 +618,7 @@ extern const struct FrameData sChargedPistolOAM_Vertical[3];
extern const struct FrameData sParticleChargedPistolTrailOam[5];
extern const struct FrameData sParticleEscapeOAM_Unused[2];
extern const struct FrameData sParticleEscapeOam_Unused[2];
extern const struct FrameData sParticleSamusReflectionOAM_Unused[2];

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
#include "types.h"
extern const u16 sSamusCloseUpPAL[6 * 16];
extern const u16 sSamusCloseUpPal[6 * 16];
extern const u32 sSamusCloseUpGfx[2319];
extern const u32 sSamusCloseUpEyesGfx_1[80];

View File

@ -17,45 +17,45 @@ extern const s16 sAcidWormHeadRandomXVelocity[45];
extern const u32 sAcidWormGfx[1000];
extern const u16 sAcidWormPAL[64];
extern const u16 sAcidWormBodyOAM_Unused2_Frame0[52];
extern const u16 sAcidWormBodyOam_Unused2_Frame0[52];
extern const u16 sAcidWormBodyOAM_Unused2_Frame1[52];
extern const u16 sAcidWormBodyOam_Unused2_Frame1[52];
extern const u16 sAcidWormBodyOAM_Unused2_Frame2[52];
extern const u16 sAcidWormBodyOam_Unused2_Frame2[52];
extern const u16 sAcidWormOAM_Spitting_Frame4[34];
extern const u16 sAcidWormOam_Spitting_Frame4[34];
extern const u16 sAcidWormOAM_Spitting_Frame3[34];
extern const u16 sAcidWormOam_Spitting_Frame3[34];
extern const u16 sAcidWormOAM_Spitting_Frame2[34];
extern const u16 sAcidWormOam_Spitting_Frame2[34];
extern const u16 sAcidWormOAM_Spitting_Frame0[34];
extern const u16 sAcidWormOam_Spitting_Frame0[34];
extern const u16 sAcidWormOAM_MouthClosed_Frame2[34];
extern const u16 sAcidWormOam_MouthClosed_Frame2[34];
extern const u16 sAcidWormOAM_Idle_Frame0[34];
extern const u16 sAcidWormOam_Idle_Frame0[34];
extern const u16 sAcidWormOAM_Idle_Frame1[34];
extern const u16 sAcidWormOam_Idle_Frame1[34];
extern const u16 sAcidWormOAM_Idle_Frame2[34];
extern const u16 sAcidWormOam_Idle_Frame2[34];
extern const u16 sAcidWormOAM_Moving_Frame0[34];
extern const u16 sAcidWormOam_Moving_Frame0[34];
extern const u16 sAcidWormOAM_Moving_Frame1[34];
extern const u16 sAcidWormOam_Moving_Frame1[34];
extern const u16 sAcidWormBodyOAM_AroundMouth_Frame0[4];
extern const u16 sAcidWormBodyOam_AroundMouth_Frame0[4];
extern const u16 sAcidWormBodyOAM_WeakPoint_Frame0[4];
extern const u16 sAcidWormBodyOam_WeakPoint_Frame0[4];
extern const u16 sAcidWormBodyOAM_WeakPoint_Frame1[4];
extern const u16 sAcidWormBodyOam_WeakPoint_Frame1[4];
extern const u16 sAcidWormBodyOAM_WeakPoint_Frame2[4];
extern const u16 sAcidWormBodyOam_WeakPoint_Frame2[4];
extern const u16 sAcidWormBodyOAM_BelowWeakPoint_Frame0[4];
extern const u16 sAcidWormBodyOam_BelowWeakPoint_Frame0[4];
extern const u16 sAcidWormBodyOAM_AboveSegments_Frame0[4];
extern const u16 sAcidWormBodyOam_AboveSegments_Frame0[4];
extern const u16 sAcidWormBodyOAM_Segment_Frame0[4];
extern const u16 sAcidWormBodyOam_Segment_Frame0[4];
extern const u16 sAcidWormSpitOAM_Moving_Frame0[4];
@ -71,34 +71,34 @@ extern const u16 sAcidWormSpitOAM_Exploding_Frame3[25];
extern const u16 sAcidWormSpitOAM_Exploding_Frame4[20];
extern const struct FrameData sAcidWormOAM_Idle[5];
extern const struct FrameData sAcidWormOam_Idle[5];
extern const struct FrameData sAcidWormOAM_Moving[3];
extern const struct FrameData sAcidWormOam_Moving[3];
extern const struct FrameData sAcidWormOAM_Spitting[15];
extern const struct FrameData sAcidWormOam_Spitting[15];
extern const struct FrameData sAcidWormOAM_MouthClosed[5];
extern const struct FrameData sAcidWormOam_MouthClosed[5];
extern const struct FrameData sAcidWormBodyOAM_AroundMouth[2];
extern const struct FrameData sAcidWormBodyOam_AroundMouth[2];
extern const struct FrameData sAcidWormBodyOAM_WeakPoint[9];
extern const struct FrameData sAcidWormBodyOam_WeakPoint[9];
extern const struct FrameData sAcidWormBodyOAM_Unused[5];
extern const struct FrameData sAcidWormBodyOam_Unused[5];
extern const struct FrameData sAcidWormBodyOAM_BelowWeakPoint[2];
extern const struct FrameData sAcidWormBodyOam_BelowWeakPoint[2];
extern const struct FrameData sAcidWormBodyOAM_AboveSegments[2];
extern const struct FrameData sAcidWormBodyOam_AboveSegments[2];
extern const struct FrameData sAcidWormBodyOAM_Segment[2];
extern const struct FrameData sAcidWormBodyOam_Segment[2];
extern const struct FrameData sAcidWormBodyOAM_Unused2[5];
extern const struct FrameData sAcidWormBodyOam_Unused2[5];
extern const struct FrameData sAcidWormSpitOAM_Moving[4];
extern const struct FrameData sAcidWormSpitOAM_Exploding[6];
extern const struct FrameData sAcidWormOAM_Warning[14];
extern const struct FrameData sAcidWormOam_Warning[14];
extern const struct FrameData sAcidWormOAM_SpawnOnTop[24];
extern const struct FrameData sAcidWormOam_SpawnOnTop[24];
#endif

View File

@ -8,50 +8,50 @@ extern const u32 sAreaBannerGfx[65];
extern const u16 sAreaBannerPAL[16];
extern const u16 sAreaBannerLocationTextPAL[16];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame0[7];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame0[7];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame1[13];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame1[13];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame2[19];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame2[19];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame3[25];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame3[25];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame4[28];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame4[28];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame5[55];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame5[55];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame6[55];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame6[55];
extern const u16 sAreaBannerOAM_SpawnMiddle_Frame7[55];
extern const u16 sAreaBannerOam_SpawnMiddle_Frame7[55];
extern const u16 sAreaBannerOAM_StaticMiddle_Frame0[34];
extern const u16 sAreaBannerOam_StaticMiddle_Frame0[34];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame0[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame0[28];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame1[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame1[28];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame2[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame2[28];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame3[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame3[28];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame4[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame4[28];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame5[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame5[28];
extern const u16 sAreaBannerOAM_SpawnBottom_Frame6[28];
extern const u16 sAreaBannerOam_SpawnBottom_Frame6[28];
extern const u16 sAreaBannerOAM_StaticBottom_Frame0[28];
extern const u16 sAreaBannerOam_StaticBottom_Frame0[28];
extern const struct FrameData sAreaBannerOAM_StaticMiddle[2];
extern const struct FrameData sAreaBannerOam_StaticMiddle[2];
extern const struct FrameData sAreaBannerOAM_SpawnMiddle[9];
extern const struct FrameData sAreaBannerOam_SpawnMiddle[9];
extern const struct FrameData sAreaBannerOAM_RemovingMiddle[9];
extern const struct FrameData sAreaBannerOam_RemovingMiddle[9];
extern const struct FrameData sAreaBannerOAM_StaticBottom[2];
extern const struct FrameData sAreaBannerOam_StaticBottom[2];
extern const struct FrameData sAreaBannerOAM_SpawnBottom[8];
extern const struct FrameData sAreaBannerOam_SpawnBottom[8];
extern const struct FrameData sAreaBannerOAM_RemovingBottom[8];
extern const struct FrameData sAreaBannerOam_RemovingBottom[8];
#endif

View File

@ -32,6 +32,6 @@ extern const struct FrameData sParticleSpriteSplashAcidHugeOam[10];
extern const struct FrameData sParticleSpriteSplashAcidSmallOam[7];
extern const u8 sEscapeTimerDigitsGfx[1024 * 2];
extern const u16 sParticleEscapeOAM[34];
extern const u16 sParticleEscapeOam[34];
#endif /* VISUAL_EFFECTS_DATA_H */

View File

@ -7,7 +7,7 @@
u8 EscapeDetermineTimer(void);
u8 EscapeCheckHasEscaped(void);
void EscapeUpdateOAM(void);
void EscapeUpdateOam(void);
void EscapeCheckReloadGraphics(void);
void EscapeStart(void);
void EscapeSetTimer(void);

View File

@ -7,8 +7,8 @@
// Not sure where to put/name those functions, might move them later
void HUDGenericLoadCommonSpriteGfx(void);
void HUDGenericResetRefillAnimations(void);
void HUDGenericResetHUDData(void);
void HudGenericLoadCommonSpriteGfx(void);
void HudGenericResetRefillAnimations(void);
void HudGenericResetHUDData(void);
#endif /* HUD_GENERIC_H */

View File

@ -103,6 +103,14 @@
*/
#define DIV_SHIFT(value, div) ((value) >> ((div) == 2 ? 1 : ((div) == 4 ? 2 : ((div) == 8 ? 3 : ((div) == 16 ? 4 : ((div) == 32 ? 5 : ((div) == 64 ? 6 : ((div) == 128 ? 7 : ((div) == 256 ? 8 : ((div) == 512 ? 9 : ((div) == 1024 ? 10 : 0)))))))))))
/**
* @brief Performs a multiplaction (value * mul) operation on a value using the left shift operation (WARNING only use a value for div that is divisble by 2 and <= 256)
*
* @param value Value
* @param mul Multiplier
*/
#define MUL_SHIFT(value, mul) ((value) << ((mul) == 2 ? 1 : ((mul) == 4 ? 2 : ((mul) == 8 ? 3 : ((mul) == 16 ? 4 : ((mul) == 32 ? 5 : ((mul) == 64 ? 6 : ((mul) == 128 ? 7 : ((mul) == 256 ? 8 : ((mul) == 512 ? 9 : ((mul) == 1024 ? 10 : 0)))))))))))
#define GET_PSPRITE_HEALTH(id) sPrimarySpriteStats[(id)][0]
#define GET_SSPRITE_HEALTH(id) sSecondarySpriteStats[(id)][0]

View File

@ -36,13 +36,17 @@
// Acid worm spit
#define ACID_WORM_SPAWN_RANGE (BLOCK_SIZE * 2 + QUARTER_BLOCK_SIZE - PIXEL_SIZE)
void AcidWormHandleRotation(void);
void AcidWormRandomXMovement(void);
void AcidWormChangeTwoGroundCCAA(u8 caa, u16 yPosition, u16 xPosition);
void AcidWormChangeBigBlockDownCCAA(u8 caa);
void AcidWormChangeBigBlockMiddleCCAA(u8 caa);
void AcidWormChangeBigBlockTopCCAA(u8 caa);
void AcidWormPlaySound(void);
void AcidWormPlayRetractingSound(void);
u8 AcidWormCollidingWithSamusWhenExtending(void);
void AcidWormInit(void);
void AcidWormCheckSamusOnZipline(void);

View File

@ -20,4 +20,14 @@ extern u8 gCurrentEscapeStatus;
extern u8 gEscapeTimerCounter;
extern struct EscapeDigits gEscapeTimerDigits;
#endif
#define CREATE_ESCAPE_TIMER(minutes, seconds, milli)\
{\
gEscapeTimerDigits.hundredths = (milli) % 10;\
gEscapeTimerDigits.tenths = (milli) / 10;\
gEscapeTimerDigits.secondsOnes = (seconds) % 10;\
gEscapeTimerDigits.secondsTens = (seconds) / 10;\
gEscapeTimerDigits.minutesOnes = (minutes) % 10;\
gEscapeTimerDigits.minutesTens = (minutes) / 10;\
}
#endif /* ESCAPE_STRUCT_H */

View File

@ -2,6 +2,7 @@
#define SAMUS_STRUCT_H
#include "types.h"
#include "macros.h"
#define MAX_AMOUNT_OF_SAMUS_POSES 67

View File

@ -37,10 +37,13 @@ typedef volatile signed int vs32;
#define HALF_BLOCK_SIZE (BLOCK_SIZE / 2)
#define QUARTER_BLOCK_SIZE (BLOCK_SIZE / 4)
#define PIXEL_SIZE (BLOCK_SIZE / SUB_PIXEL_NUMBER)
#define BLOCK_POSITION_FLAG ((u16)~BLOCK_SIZE + 1)
#define SUB_PIXEL_POSITION_FLAG (BLOCK_SIZE - 1)
#define BLOCK_POSITION_FLAG ((u16)~BLOCK_SIZE + ONE_SUB_PIXEL)
#define SUB_PIXEL_POSITION_FLAG (BLOCK_SIZE - ONE_SUB_PIXEL)
#define ONE_SUB_PIXEL (PIXEL_SIZE / PIXEL_SIZE)
#define SCREEN_SIZE_X 240
#define SCREEN_SIZE_Y 160
struct RawCoordsX {
u16 x;
u16 y;

View File

@ -2651,7 +2651,7 @@ const struct FrameData sParticleChargedPistolTrailOam[5] = {
0x0
};
const struct FrameData sParticleEscapeOAM_Unused[2] = {
const struct FrameData sParticleEscapeOam_Unused[2] = {
gParticleEscapeOamFrames,
UCHAR_MAX,
NULL,

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#include "data/samus_close_up_data.h"
#include "macros.h"
const u16 sSamusCloseUpPAL[6 * 16] = INCBIN_U16("data/close_up/Palette.pal");
const u16 sSamusCloseUpPal[6 * 16] = INCBIN_U16("data/close_up/Palette.pal");
const u32 sSamusCloseUpGfx[2319] = INCBIN_U32("data/close_up/CloseUp.gfx.lz");
const u32 sSamusCloseUpEyesGfx_1[80] = INCBIN_U32("data/close_up/Eyes1.gfx");

View File

@ -29,7 +29,7 @@ const s16 sAcidWormHeadRandomXVelocity[45] = {
const u32 sAcidWormGfx[1000] = INCBIN_U32("data/sprites/AcidWorm.gfx.lz");
const u16 sAcidWormPAL[64] = INCBIN_U16("data/sprites/AcidWorm.pal");
const u16 sAcidWormBodyOAM_Unused2_Frame0[52] = {
const u16 sAcidWormBodyOam_Unused2_Frame0[52] = {
0x11,
0xf7, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x206,
0x9, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x212,
@ -50,7 +50,7 @@ const u16 sAcidWormBodyOAM_Unused2_Frame0[52] = {
0x39, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x292
};
const u16 sAcidWormBodyOAM_Unused2_Frame1[52] = {
const u16 sAcidWormBodyOam_Unused2_Frame1[52] = {
0x11,
0xf6, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x206,
0x8, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x212,
@ -71,7 +71,7 @@ const u16 sAcidWormBodyOAM_Unused2_Frame1[52] = {
0x38, OBJ_SIZE_32x32 | 0x1f2, OBJ_SPRITE_OAM | 0x292
};
const u16 sAcidWormBodyOAM_Unused2_Frame2[52] = {
const u16 sAcidWormBodyOam_Unused2_Frame2[52] = {
0x11,
0xf6, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x206,
0x7, OBJ_SIZE_32x32 | 0x1f3, OBJ_SPRITE_OAM | 0x212,
@ -92,7 +92,7 @@ const u16 sAcidWormBodyOAM_Unused2_Frame2[52] = {
0x37, OBJ_SIZE_32x32 | 0x1f1, OBJ_SPRITE_OAM | 0x292
};
const u16 sAcidWormOAM_Spitting_Frame4[34] = {
const u16 sAcidWormOam_Spitting_Frame4[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xec, 0xa, OBJ_SPRITE_OAM | 0x21f,
OBJ_SHAPE_VERTICAL | 0xef, 0x4, OBJ_SPRITE_OAM | 0x21e,
@ -107,7 +107,7 @@ const u16 sAcidWormOAM_Spitting_Frame4[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Spitting_Frame3[34] = {
const u16 sAcidWormOam_Spitting_Frame3[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xec, 0xa, OBJ_SPRITE_OAM | 0x25f,
OBJ_SHAPE_VERTICAL | 0xef, 0x4, OBJ_SPRITE_OAM | 0x25e,
@ -122,7 +122,7 @@ const u16 sAcidWormOAM_Spitting_Frame3[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Spitting_Frame2[34] = {
const u16 sAcidWormOam_Spitting_Frame2[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xeb, 0x9, OBJ_SPRITE_OAM | 0x29f,
OBJ_SHAPE_VERTICAL | 0xef, 0x2, OBJ_SPRITE_OAM | 0x29e,
@ -137,7 +137,7 @@ const u16 sAcidWormOAM_Spitting_Frame2[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Spitting_Frame0[34] = {
const u16 sAcidWormOam_Spitting_Frame0[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xec, 0x8, OBJ_SPRITE_OAM | 0x29f,
OBJ_SHAPE_VERTICAL | 0xef, 0x1, OBJ_SPRITE_OAM | 0x29e,
@ -152,7 +152,7 @@ const u16 sAcidWormOAM_Spitting_Frame0[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_MouthClosed_Frame2[34] = {
const u16 sAcidWormOam_MouthClosed_Frame2[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xef, 0x1fc, OBJ_SPRITE_OAM | 0x2dd,
OBJ_SHAPE_VERTICAL | 0xee, 0x1, OBJ_SPRITE_OAM | 0x2de,
@ -167,7 +167,7 @@ const u16 sAcidWormOAM_MouthClosed_Frame2[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Idle_Frame0[34] = {
const u16 sAcidWormOam_Idle_Frame0[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xef, 0x2, OBJ_SPRITE_OAM | 0x219,
0xec, OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x258,
@ -182,7 +182,7 @@ const u16 sAcidWormOAM_Idle_Frame0[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Idle_Frame1[34] = {
const u16 sAcidWormOam_Idle_Frame1[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xef, 0x2, OBJ_SPRITE_OAM | 0x299,
0xec, OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x2d8,
@ -197,7 +197,7 @@ const u16 sAcidWormOAM_Idle_Frame1[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Idle_Frame2[34] = {
const u16 sAcidWormOam_Idle_Frame2[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xef, 0x1, OBJ_SPRITE_OAM | 0x299,
0xec, OBJ_SIZE_16x16 | 0x1ff, OBJ_SPRITE_OAM | 0x2d8,
@ -212,7 +212,7 @@ const u16 sAcidWormOAM_Idle_Frame2[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Moving_Frame0[34] = {
const u16 sAcidWormOam_Moving_Frame0[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xed, 0xb, OBJ_SPRITE_OAM | 0x21f,
OBJ_SHAPE_VERTICAL | 0xf0, 0x4, OBJ_SPRITE_OAM | 0x21e,
@ -227,7 +227,7 @@ const u16 sAcidWormOAM_Moving_Frame0[34] = {
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormOAM_Moving_Frame1[34] = {
const u16 sAcidWormOam_Moving_Frame1[34] = {
0xb,
OBJ_SHAPE_VERTICAL | 0xed, 0xc, OBJ_SPRITE_OAM | 0x21f,
OBJ_SHAPE_VERTICAL | 0xf0, 0x5, OBJ_SPRITE_OAM | 0x21e,
@ -242,37 +242,37 @@ const u16 sAcidWormOAM_Moving_Frame1[34] = {
0xf1, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x201
};
const u16 sAcidWormBodyOAM_AroundMouth_Frame0[4] = {
const u16 sAcidWormBodyOam_AroundMouth_Frame0[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x281
};
const u16 sAcidWormBodyOAM_WeakPoint_Frame0[4] = {
const u16 sAcidWormBodyOam_WeakPoint_Frame0[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x206
};
const u16 sAcidWormBodyOAM_WeakPoint_Frame1[4] = {
const u16 sAcidWormBodyOam_WeakPoint_Frame1[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x20a
};
const u16 sAcidWormBodyOAM_WeakPoint_Frame2[4] = {
const u16 sAcidWormBodyOam_WeakPoint_Frame2[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x20e
};
const u16 sAcidWormBodyOAM_BelowWeakPoint_Frame0[4] = {
const u16 sAcidWormBodyOam_BelowWeakPoint_Frame0[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x212
};
const u16 sAcidWormBodyOAM_AboveSegments_Frame0[4] = {
const u16 sAcidWormBodyOam_AboveSegments_Frame0[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x28e
};
const u16 sAcidWormBodyOAM_Segment_Frame0[4] = {
const u16 sAcidWormBodyOam_Segment_Frame0[4] = {
0x1,
0xf0, OBJ_SIZE_32x32 | 0x1f0, OBJ_SPRITE_OAM | 0x292
};
@ -332,144 +332,144 @@ const u16 sAcidWormSpitOAM_Exploding_Frame4[20] = {
};
const struct FrameData sAcidWormOAM_Idle[5] = {
sAcidWormOAM_Idle_Frame0,
const struct FrameData sAcidWormOam_Idle[5] = {
sAcidWormOam_Idle_Frame0,
0xA,
sAcidWormOAM_Idle_Frame1,
sAcidWormOam_Idle_Frame1,
0x10,
sAcidWormOAM_Idle_Frame2,
sAcidWormOam_Idle_Frame2,
0x1C,
sAcidWormOAM_Idle_Frame1,
sAcidWormOam_Idle_Frame1,
0x10,
NULL,
0x0
};
const struct FrameData sAcidWormOAM_Moving[3] = {
sAcidWormOAM_Moving_Frame0,
const struct FrameData sAcidWormOam_Moving[3] = {
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x3,
NULL,
0x0
};
const struct FrameData sAcidWormOAM_Spitting[15] = {
sAcidWormOAM_Spitting_Frame0,
const struct FrameData sAcidWormOam_Spitting[15] = {
sAcidWormOam_Spitting_Frame0,
0x1,
sAcidWormOAM_Idle_Frame1,
sAcidWormOam_Idle_Frame1,
0x16,
sAcidWormOAM_Spitting_Frame2,
sAcidWormOam_Spitting_Frame2,
0x3,
sAcidWormOAM_Spitting_Frame3,
sAcidWormOam_Spitting_Frame3,
0x2,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
0x3,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
0x1,
NULL,
0x0
};
const struct FrameData sAcidWormOAM_MouthClosed[5] = {
sAcidWormOAM_Spitting_Frame2,
const struct FrameData sAcidWormOam_MouthClosed[5] = {
sAcidWormOam_Spitting_Frame2,
0x5,
sAcidWormOAM_Spitting_Frame0,
sAcidWormOam_Spitting_Frame0,
0x4,
sAcidWormOAM_MouthClosed_Frame2,
sAcidWormOam_MouthClosed_Frame2,
0x3,
sAcidWormOAM_Spitting_Frame0,
sAcidWormOam_Spitting_Frame0,
0x4,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_AroundMouth[2] = {
sAcidWormBodyOAM_AroundMouth_Frame0,
const struct FrameData sAcidWormBodyOam_AroundMouth[2] = {
sAcidWormBodyOam_AroundMouth_Frame0,
0x8,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_WeakPoint[9] = {
sAcidWormBodyOAM_WeakPoint_Frame0,
const struct FrameData sAcidWormBodyOam_WeakPoint[9] = {
sAcidWormBodyOam_WeakPoint_Frame0,
0x14,
sAcidWormBodyOAM_WeakPoint_Frame1,
sAcidWormBodyOam_WeakPoint_Frame1,
0x10,
sAcidWormBodyOAM_WeakPoint_Frame2,
sAcidWormBodyOam_WeakPoint_Frame2,
0xC,
sAcidWormBodyOAM_WeakPoint_Frame1,
sAcidWormBodyOam_WeakPoint_Frame1,
0x10,
sAcidWormBodyOAM_WeakPoint_Frame0,
sAcidWormBodyOam_WeakPoint_Frame0,
0xA,
sAcidWormBodyOAM_WeakPoint_Frame1,
sAcidWormBodyOam_WeakPoint_Frame1,
0x8,
sAcidWormBodyOAM_WeakPoint_Frame2,
sAcidWormBodyOam_WeakPoint_Frame2,
0x8,
sAcidWormBodyOAM_WeakPoint_Frame1,
sAcidWormBodyOam_WeakPoint_Frame1,
0xA,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_Unused[5] = {
sAcidWormBodyOAM_WeakPoint_Frame0,
const struct FrameData sAcidWormBodyOam_Unused[5] = {
sAcidWormBodyOam_WeakPoint_Frame0,
0x4,
sAcidWormBodyOAM_WeakPoint_Frame1,
sAcidWormBodyOam_WeakPoint_Frame1,
0x4,
sAcidWormBodyOAM_WeakPoint_Frame2,
sAcidWormBodyOam_WeakPoint_Frame2,
0x4,
sAcidWormBodyOAM_WeakPoint_Frame1,
sAcidWormBodyOam_WeakPoint_Frame1,
0x4,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_BelowWeakPoint[2] = {
sAcidWormBodyOAM_BelowWeakPoint_Frame0,
const struct FrameData sAcidWormBodyOam_BelowWeakPoint[2] = {
sAcidWormBodyOam_BelowWeakPoint_Frame0,
0x4,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_AboveSegments[2] = {
sAcidWormBodyOAM_AboveSegments_Frame0,
const struct FrameData sAcidWormBodyOam_AboveSegments[2] = {
sAcidWormBodyOam_AboveSegments_Frame0,
0x4,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_Segment[2] = {
sAcidWormBodyOAM_Segment_Frame0,
const struct FrameData sAcidWormBodyOam_Segment[2] = {
sAcidWormBodyOam_Segment_Frame0,
0x4,
NULL,
0x0
};
const struct FrameData sAcidWormBodyOAM_Unused2[5] = {
sAcidWormBodyOAM_Unused2_Frame0,
const struct FrameData sAcidWormBodyOam_Unused2[5] = {
sAcidWormBodyOam_Unused2_Frame0,
0xC,
sAcidWormBodyOAM_Unused2_Frame1,
sAcidWormBodyOam_Unused2_Frame1,
0xC,
sAcidWormBodyOAM_Unused2_Frame2,
sAcidWormBodyOam_Unused2_Frame2,
0xC,
sAcidWormBodyOAM_Unused2_Frame1,
sAcidWormBodyOam_Unused2_Frame1,
0xC,
NULL,
0x0
@ -501,83 +501,83 @@ const struct FrameData sAcidWormSpitOAM_Exploding[6] = {
0x0
};
const struct FrameData sAcidWormOAM_Warning[14] = {
sAcidWormOAM_Idle_Frame2,
const struct FrameData sAcidWormOam_Warning[14] = {
sAcidWormOam_Idle_Frame2,
0x1,
sAcidWormOAM_Spitting_Frame2,
sAcidWormOam_Spitting_Frame2,
0x1,
sAcidWormOAM_Spitting_Frame3,
sAcidWormOam_Spitting_Frame3,
0x2,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
0x1,
sAcidWormOAM_Spitting_Frame3,
sAcidWormOam_Spitting_Frame3,
0x2,
sAcidWormOAM_Idle_Frame2,
sAcidWormOam_Idle_Frame2,
0x4,
sAcidWormOAM_Spitting_Frame2,
sAcidWormOam_Spitting_Frame2,
0x1,
sAcidWormOAM_Spitting_Frame3,
sAcidWormOam_Spitting_Frame3,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x6,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
3,
sAcidWormOAM_Spitting_Frame3,
sAcidWormOam_Spitting_Frame3,
0x1,
NULL,
0x0
};
const struct FrameData sAcidWormOAM_SpawnOnTop[24] = {
sAcidWormOAM_Spitting_Frame0,
const struct FrameData sAcidWormOam_SpawnOnTop[24] = {
sAcidWormOam_Spitting_Frame0,
0x1,
sAcidWormOAM_Spitting_Frame2,
sAcidWormOam_Spitting_Frame2,
0x3,
sAcidWormOAM_Spitting_Frame3,
sAcidWormOam_Spitting_Frame3,
0x2,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
0x3,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Moving_Frame0,
sAcidWormOam_Moving_Frame0,
0x3,
sAcidWormOAM_Moving_Frame1,
sAcidWormOam_Moving_Frame1,
0x2,
sAcidWormOAM_Spitting_Frame4,
sAcidWormOam_Spitting_Frame4,
0x1,
NULL,
0x0

View File

@ -6,13 +6,13 @@ const u32 sAreaBannerGfx[65] = INCBIN_U32("data/sprites/AreaBanner.gfx.lz");
const u16 sAreaBannerPAL[16] = INCBIN_U16("data/sprites/AreaBanner.pal");
const u16 sAreaBannerLocationTextPAL[16] = INCBIN_U16("data/sprites/AreaBannerLocationText.pal");
const u16 sAreaBannerOAM_SpawnMiddle_Frame0[7] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame0[7] = {
0x2,
0xfc, 0x1f8, OBJ_SPRITE_OAM | 0x21c,
0xfc, OBJ_X_FLIP | 0x0, OBJ_SPRITE_OAM | 0x21c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame1[13] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame1[13] = {
0x4,
0xfc, 0x1d8, OBJ_SPRITE_OAM | 0x21c,
0xfc, OBJ_X_FLIP | 0x20, OBJ_SPRITE_OAM | 0x21c,
@ -20,7 +20,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame1[13] = {
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x0, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame2[19] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame2[19] = {
0x6,
0xfc, 0x1b8, OBJ_SPRITE_OAM | 0x21c,
0xfc, OBJ_X_FLIP | 0x40, OBJ_SPRITE_OAM | 0x21c,
@ -30,7 +30,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame2[19] = {
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x1c0, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame3[25] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame3[25] = {
0x8,
0xfc, 0x198, OBJ_SPRITE_OAM | 0x21c,
0xfc, OBJ_X_FLIP | 0x60, OBJ_SPRITE_OAM | 0x21c,
@ -42,7 +42,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame3[25] = {
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x1c0, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame4[28] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame4[28] = {
0x9,
0xfc, 0x188, OBJ_SPRITE_OAM | 0x21c,
0xfc, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21c,
@ -55,7 +55,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame4[28] = {
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x8 | 0x1f0, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame5[55] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame5[55] = {
0x12,
0xfb, 0x188, OBJ_SPRITE_OAM | 0x21d,
0xfb, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
@ -77,7 +77,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame5[55] = {
OBJ_SHAPE_HORIZONTAL | 0xfd, OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame6[55] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame6[55] = {
0x12,
0xfa, 0x188, OBJ_SPRITE_OAM | 0x21d,
0xfa, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
@ -99,7 +99,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame6[55] = {
OBJ_SHAPE_HORIZONTAL | 0xfe, OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_SpawnMiddle_Frame7[55] = {
const u16 sAreaBannerOam_SpawnMiddle_Frame7[55] = {
0x12,
0xf9, 0x188, OBJ_SPRITE_OAM | 0x21d,
0xf9, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
@ -121,7 +121,7 @@ const u16 sAreaBannerOAM_SpawnMiddle_Frame7[55] = {
OBJ_SHAPE_HORIZONTAL | 0xff, OBJ_SIZE_32x8 | 0x50, OBJ_SPRITE_OAM | 0x23c
};
const u16 sAreaBannerOAM_StaticMiddle_Frame0[34] = {
const u16 sAreaBannerOam_StaticMiddle_Frame0[34] = {
0xb,
0xf8, 0x188, OBJ_SPRITE_OAM | 0x21d,
0xf8, OBJ_X_FLIP | 0x70, OBJ_SPRITE_OAM | 0x21d,
@ -136,7 +136,7 @@ const u16 sAreaBannerOAM_StaticMiddle_Frame0[34] = {
OBJ_SHAPE_HORIZONTAL | 0xf8, OBJ_SIZE_32x16 | 0x50, OBJ_SPRITE_OAM | 0x218
};
const u16 sAreaBannerOAM_UnusedFrame[28] = {
const u16 sAreaBannerOam_UnusedFrame[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0x8, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -149,7 +149,7 @@ const u16 sAreaBannerOAM_UnusedFrame[28] = {
OBJ_SHAPE_VERTICAL | 0x8, 0x188, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame0[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame0[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0x6, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0x6, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -162,7 +162,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame0[28] = {
OBJ_SHAPE_VERTICAL | 0x6, 0x188, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame1[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame1[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0x4, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0x4, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -175,7 +175,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame1[28] = {
OBJ_SHAPE_VERTICAL | 0x4, 0x188, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame2[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame2[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0x2, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0x2, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -188,7 +188,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame2[28] = {
OBJ_SHAPE_VERTICAL | 0x2, 0x188, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame3[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame3[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0x0, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0x0, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -201,7 +201,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame3[28] = {
OBJ_SHAPE_VERTICAL | 0x0, 0x70, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame4[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame4[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0xfe, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xfe, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -214,7 +214,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame4[28] = {
OBJ_SHAPE_VERTICAL | 0xfe, 0x188, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame5[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame5[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xfc, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -227,7 +227,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame5[28] = {
OBJ_SHAPE_VERTICAL | 0xfc, 0x70, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_SpawnBottom_Frame6[28] = {
const u16 sAreaBannerOam_SpawnBottom_Frame6[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0xfa, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xfa, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -240,7 +240,7 @@ const u16 sAreaBannerOAM_SpawnBottom_Frame6[28] = {
OBJ_SHAPE_VERTICAL | 0xfa, 0x188, OBJ_SPRITE_OAM | 0x21f
};
const u16 sAreaBannerOAM_StaticBottom_Frame0[28] = {
const u16 sAreaBannerOam_StaticBottom_Frame0[28] = {
0x9,
OBJ_SHAPE_HORIZONTAL | 0xf8, OBJ_SIZE_32x16 | 0x190, OBJ_SPRITE_OAM | 0x200,
OBJ_SHAPE_HORIZONTAL | 0xf8, OBJ_SIZE_32x16 | 0x1b0, OBJ_SPRITE_OAM | 0x204,
@ -253,95 +253,95 @@ const u16 sAreaBannerOAM_StaticBottom_Frame0[28] = {
OBJ_SHAPE_VERTICAL | 0xf8, 0x70, OBJ_SPRITE_OAM | 0x21f
};
const struct FrameData sAreaBannerOAM_StaticMiddle[2] = {
sAreaBannerOAM_StaticMiddle_Frame0,
const struct FrameData sAreaBannerOam_StaticMiddle[2] = {
sAreaBannerOam_StaticMiddle_Frame0,
0xFF,
NULL,
0x0
};
const struct FrameData sAreaBannerOAM_SpawnMiddle[9] = {
sAreaBannerOAM_SpawnMiddle_Frame0,
const struct FrameData sAreaBannerOam_SpawnMiddle[9] = {
sAreaBannerOam_SpawnMiddle_Frame0,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame1,
sAreaBannerOam_SpawnMiddle_Frame1,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame2,
sAreaBannerOam_SpawnMiddle_Frame2,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame3,
sAreaBannerOam_SpawnMiddle_Frame3,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame4,
sAreaBannerOam_SpawnMiddle_Frame4,
0x2,
sAreaBannerOAM_SpawnMiddle_Frame5,
sAreaBannerOam_SpawnMiddle_Frame5,
0x2,
sAreaBannerOAM_SpawnMiddle_Frame6,
sAreaBannerOam_SpawnMiddle_Frame6,
0x2,
sAreaBannerOAM_SpawnMiddle_Frame7,
sAreaBannerOam_SpawnMiddle_Frame7,
0x2,
NULL,
0x0
};
const struct FrameData sAreaBannerOAM_RemovingMiddle[9] = {
sAreaBannerOAM_SpawnMiddle_Frame7,
const struct FrameData sAreaBannerOam_RemovingMiddle[9] = {
sAreaBannerOam_SpawnMiddle_Frame7,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame6,
sAreaBannerOam_SpawnMiddle_Frame6,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame5,
sAreaBannerOam_SpawnMiddle_Frame5,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame4,
sAreaBannerOam_SpawnMiddle_Frame4,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame3,
sAreaBannerOam_SpawnMiddle_Frame3,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame2,
sAreaBannerOam_SpawnMiddle_Frame2,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame1,
sAreaBannerOam_SpawnMiddle_Frame1,
0x1,
sAreaBannerOAM_SpawnMiddle_Frame0,
sAreaBannerOam_SpawnMiddle_Frame0,
0x1,
NULL,
0x0
};
const struct FrameData sAreaBannerOAM_StaticBottom[2] = {
sAreaBannerOAM_StaticBottom_Frame0,
const struct FrameData sAreaBannerOam_StaticBottom[2] = {
sAreaBannerOam_StaticBottom_Frame0,
0xFF,
NULL,
0x0
};
const struct FrameData sAreaBannerOAM_SpawnBottom[8] = {
sAreaBannerOAM_SpawnBottom_Frame0,
const struct FrameData sAreaBannerOam_SpawnBottom[8] = {
sAreaBannerOam_SpawnBottom_Frame0,
0x1,
sAreaBannerOAM_SpawnBottom_Frame1,
sAreaBannerOam_SpawnBottom_Frame1,
0x1,
sAreaBannerOAM_SpawnBottom_Frame2,
sAreaBannerOam_SpawnBottom_Frame2,
0x1,
sAreaBannerOAM_SpawnBottom_Frame3,
sAreaBannerOam_SpawnBottom_Frame3,
0x1,
sAreaBannerOAM_SpawnBottom_Frame4,
sAreaBannerOam_SpawnBottom_Frame4,
0x2,
sAreaBannerOAM_SpawnBottom_Frame5,
sAreaBannerOam_SpawnBottom_Frame5,
0x2,
sAreaBannerOAM_SpawnBottom_Frame6,
sAreaBannerOam_SpawnBottom_Frame6,
0x2,
NULL,
0x0
};
const struct FrameData sAreaBannerOAM_RemovingBottom[8] = {
sAreaBannerOAM_SpawnBottom_Frame6,
const struct FrameData sAreaBannerOam_RemovingBottom[8] = {
sAreaBannerOam_SpawnBottom_Frame6,
0x2,
sAreaBannerOAM_SpawnBottom_Frame5,
sAreaBannerOam_SpawnBottom_Frame5,
0x2,
sAreaBannerOAM_SpawnBottom_Frame4,
sAreaBannerOam_SpawnBottom_Frame4,
0x1,
sAreaBannerOAM_SpawnBottom_Frame3,
sAreaBannerOam_SpawnBottom_Frame3,
0x1,
sAreaBannerOAM_SpawnBottom_Frame2,
sAreaBannerOam_SpawnBottom_Frame2,
0x1,
sAreaBannerOAM_SpawnBottom_Frame1,
sAreaBannerOam_SpawnBottom_Frame1,
0x1,
sAreaBannerOAM_SpawnBottom_Frame0,
sAreaBannerOam_SpawnBottom_Frame0,
0x1,
NULL,
0x0

View File

@ -2006,7 +2006,7 @@ const struct FrameData sParticleSpriteSplashAcidSmallOam[7] = {
const u8 sEscapeTimerDigitsGfx[1024 * 2] = INCBIN_U8("data/EscapeTimerDigits.gfx");
const u16 sParticleEscapeOAM[34] = {
const u16 sParticleEscapeOam[34] = {
0x8,
OBJ_SHAPE_VERTICAL | 0x0, 0x0, 0x33c0,
OBJ_SHAPE_VERTICAL | 0x0, 0x8, 0x33c0,

View File

@ -23,13 +23,18 @@ u8 EscapeDetermineTimer(void)
if (!EventFunction(EVENT_ACTION_CHECKING, EVENT_ESCAPED_ZEBES))
{
if (EventFunction(EVENT_ACTION_CHECKING, EVENT_MOTHER_BRAIN_KILLED))
{
// Didn't escape zebes, and mother brain killed
return ESCAPE_MOTHER_BRAIN;
}
}
else
{
if (!EventFunction(EVENT_ACTION_CHECKING, EVENT_ESCAPED_CHOZODIA) &&
EventFunction(EVENT_ACTION_CHECKING, EVENT_MECHA_RIDLEY_KILLED))
return ESCAPE_MECHA_RIDLEY;
if (!EventFunction(EVENT_ACTION_CHECKING, EVENT_ESCAPED_CHOZODIA) && EventFunction(EVENT_ACTION_CHECKING, EVENT_MECHA_RIDLEY_KILLED))
{
// Didn't escape chozodia, and mecha ridley killed
return ESCAPE_MECHA_RIDLEY;
}
}
return ESCAPE_NONE;
@ -62,18 +67,19 @@ u8 EscapeCheckHasEscaped(void)
* @brief 539e0 | 38 | Updates the OAM of the escape timer
*
*/
void EscapeUpdateOAM(void)
void EscapeUpdateOam(void)
{
u16 increment;
u16 baseTile;
increment = 0x33C0;
// Third palette, base tile of 0x3C0
baseTile = 3 << 12 | 0x3C0;
gParticleEscapeOamFrames[24] = gEscapeTimerDigits.hundredths + increment;
gParticleEscapeOamFrames[21] = gEscapeTimerDigits.tenths + increment;
gParticleEscapeOamFrames[15] = gEscapeTimerDigits.secondsOnes + increment;
gParticleEscapeOamFrames[12] = gEscapeTimerDigits.secondsTens + increment;
gParticleEscapeOamFrames[6] = gEscapeTimerDigits.minutesOnes + increment;
gParticleEscapeOamFrames[3] = gEscapeTimerDigits.minutesTens + increment;
gParticleEscapeOamFrames[24] = baseTile + gEscapeTimerDigits.hundredths;
gParticleEscapeOamFrames[21] = baseTile + gEscapeTimerDigits.tenths;
gParticleEscapeOamFrames[15] = baseTile + gEscapeTimerDigits.secondsOnes;
gParticleEscapeOamFrames[12] = baseTile + gEscapeTimerDigits.secondsTens;
gParticleEscapeOamFrames[6] = baseTile + gEscapeTimerDigits.minutesOnes;
gParticleEscapeOamFrames[3] = baseTile + gEscapeTimerDigits.minutesTens;
}
/**
@ -84,7 +90,7 @@ void EscapeCheckReloadGraphics(void)
{
if (EscapeDetermineTimer() != ESCAPE_NONE)
{
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, DMA_ENABLE << 16 | sizeof(sEscapeTimerDigitsGfx) / 2);
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, C_32_2_16(DMA_ENABLE, sizeof(sEscapeTimerDigitsGfx) / 2));
}
}
@ -94,10 +100,16 @@ void EscapeCheckReloadGraphics(void)
*/
void EscapeStart(void)
{
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, DMA_ENABLE << 16 | 0xB0);
DMA_SET(3, sEscapeTimerDigitsGfx + 1024, VRAM_BASE + 0x17c00, DMA_ENABLE << 16 | 0xB0);
DMA_SET(3, sParticleEscapeOAM, gParticleEscapeOamFrames, DMA_ENABLE << 16 | sizeof(gParticleEscapeOamFrames) / 2);
ParticleSet(2, 141, PE_ESCAPE);
DMA_SET(3, sEscapeTimerDigitsGfx, VRAM_BASE + 0x17800, C_32_2_16(DMA_ENABLE, 0xB0));
DMA_SET(3, sEscapeTimerDigitsGfx + 1024, VRAM_BASE + 0x17c00, C_32_2_16(DMA_ENABLE, 0xB0));
// Setup oam
DMA_SET(3, sParticleEscapeOam, gParticleEscapeOamFrames, C_32_2_16(DMA_ENABLE, ARRAY_SIZE(gParticleEscapeOamFrames)));
// Escape timer uses absolute position, which isn't converted to pixel coordinates when drawing,
// hence pixel coordinates are used when creating it
ParticleSet(SUB_PIXEL_TO_PIXEL(PIXEL_SIZE * 2),
SUB_PIXEL_TO_PIXEL(BLOCK_SIZE * 9 - QUARTER_BLOCK_SIZE + PIXEL_SIZE), PE_ESCAPE);
}
/**
@ -109,66 +121,38 @@ void EscapeSetTimer(void)
u8 escape;
escape = EscapeDetermineTimer();
gEscapeTimerCounter = 0xFF;
gEscapeTimerCounter = UCHAR_MAX;
if (escape == ESCAPE_MOTHER_BRAIN)
{
if (gDifficulty == DIFF_EASY)
{
gEscapeTimerDigits.hundredths = 0x0;
gEscapeTimerDigits.tenths = 0x0;
gEscapeTimerDigits.secondsOnes = 0x0;
gEscapeTimerDigits.secondsTens = 0x0;
gEscapeTimerDigits.minutesOnes = 0x3;
gEscapeTimerDigits.minutesTens = 0x0;
CREATE_ESCAPE_TIMER(3, 0, 0);
}
else if (gDifficulty == DIFF_HARD)
{
gEscapeTimerDigits.hundredths = 0x0;
gEscapeTimerDigits.tenths = 0x0;
gEscapeTimerDigits.secondsOnes = 0x0;
gEscapeTimerDigits.secondsTens = 0x0;
gEscapeTimerDigits.minutesOnes = 0x1;
gEscapeTimerDigits.minutesTens = 0x0;
CREATE_ESCAPE_TIMER(1, 0, 0);
}
else
{
gEscapeTimerDigits.hundredths = 0x0;
gEscapeTimerDigits.tenths = 0x0;
gEscapeTimerDigits.secondsOnes = 0x0;
gEscapeTimerDigits.secondsTens = 0x0;
gEscapeTimerDigits.minutesOnes = 0x2;
gEscapeTimerDigits.minutesTens = 0x0;
CREATE_ESCAPE_TIMER(2, 0, 0);
}
}
else if (escape == ESCAPE_MECHA_RIDLEY)
{
if (gDifficulty == DIFF_HARD)
{
gEscapeTimerDigits.hundredths = 0x0;
gEscapeTimerDigits.tenths = 0x0;
gEscapeTimerDigits.secondsOnes = 0x0;
gEscapeTimerDigits.secondsTens = 0x0;
gEscapeTimerDigits.minutesOnes = 0x3;
gEscapeTimerDigits.minutesTens = 0x0;
CREATE_ESCAPE_TIMER(3, 0, 0);
}
else
{
gEscapeTimerDigits.hundredths = 0x0;
gEscapeTimerDigits.tenths = 0x0;
gEscapeTimerDigits.secondsOnes = 0x0;
gEscapeTimerDigits.secondsTens = 0x0;
gEscapeTimerDigits.minutesOnes = 0x5;
gEscapeTimerDigits.minutesTens = 0x0;
CREATE_ESCAPE_TIMER(5, 0, 0);
}
}
else
{
gEscapeTimerDigits.hundredths = 0x9;
gEscapeTimerDigits.tenths = 0x9;
gEscapeTimerDigits.secondsOnes = 0x9;
gEscapeTimerDigits.secondsTens = 0x9;
gEscapeTimerDigits.minutesOnes = 0x9;
gEscapeTimerDigits.minutesTens = 0x9;
CREATE_ESCAPE_TIMER(99, 99, 99);
}
}
@ -189,71 +173,78 @@ void EscaepUpdateTimer(void)
if (gGameModeSub1 != SUB_GAME_MODE_PLAYING)
return;
if (gPreventMovementTimer != 0x0)
if (gPreventMovementTimer != 0)
return;
counter = ++gEscapeTimerCounter;
if (counter & 0x1)
if (counter % 2)
{
if (gEscapeTimerDigits.hundredths > 0x1)
gEscapeTimerDigits.hundredths -= 0x2;
if (gEscapeTimerDigits.hundredths > 1)
{
gEscapeTimerDigits.hundredths -= 2;
}
else
{
gEscapeTimerDigits.hundredths += 0x8;
if (gEscapeTimerDigits.tenths != 0x0)
gEscapeTimerDigits.hundredths += 8;
if (gEscapeTimerDigits.tenths != 0)
gEscapeTimerDigits.tenths--;
else
gEscapeTimerDigits.tenths = 0x9;
gEscapeTimerDigits.tenths = 9;
}
}
else
{
if (gEscapeTimerDigits.hundredths != 0x0)
if (gEscapeTimerDigits.hundredths != 0)
{
gEscapeTimerDigits.hundredths--;
}
else
{
gEscapeTimerDigits.hundredths = 0x9;
if (gEscapeTimerDigits.tenths != 0x0)
gEscapeTimerDigits.hundredths = 9;
if (gEscapeTimerDigits.tenths != 0)
gEscapeTimerDigits.tenths--;
else
gEscapeTimerDigits.tenths = 0x9;
gEscapeTimerDigits.tenths = 9;
}
}
if ((counter & 0x3F) == 0x0)
if (counter % 64 == 0)
{
gEscapeTimerDigits.hundredths = 0x9;
gEscapeTimerDigits.tenths = 0x9;
if (gEscapeTimerDigits.secondsOnes != 0x0)
gEscapeTimerDigits.secondsOnes--;
else
gEscapeTimerDigits.hundredths = 99 / 10;
gEscapeTimerDigits.tenths = 99 % 10;
if (gEscapeTimerDigits.secondsOnes != 0)
{
gEscapeTimerDigits.secondsOnes = 0x9;
if (gEscapeTimerDigits.secondsTens != 0x0)
gEscapeTimerDigits.secondsTens--;
else
{
gEscapeTimerDigits.secondsTens = 0x5;
if (gEscapeTimerDigits.minutesOnes != 0x0)
gEscapeTimerDigits.minutesOnes--;
else
{
gEscapeTimerDigits.minutesOnes = 0x9;
if (gEscapeTimerDigits.minutesTens != 0x0)
gEscapeTimerDigits.minutesTens--;
else
{
gEscapeTimerDigits.hundredths = 0x0;
gEscapeTimerDigits.tenths = 0x0;
gEscapeTimerDigits.secondsOnes = 0x0;
gEscapeTimerDigits.secondsTens = 0x0;
gEscapeTimerDigits.minutesOnes = 0x0;
gEscapeTimerDigits.minutesTens = 0x0;
gCurrentEscapeStatus = ESCAPE_STATUS_FAILED;
}
}
}
gEscapeTimerDigits.secondsOnes--;
return;
}
gEscapeTimerDigits.secondsOnes = 9;
if (gEscapeTimerDigits.secondsTens != 0)
{
gEscapeTimerDigits.secondsTens--;
return;
}
gEscapeTimerDigits.secondsTens = 5;
if (gEscapeTimerDigits.minutesOnes != 0)
{
gEscapeTimerDigits.minutesOnes--;
return;
}
gEscapeTimerDigits.minutesOnes = 9;
if (gEscapeTimerDigits.minutesTens != 0)
{
gEscapeTimerDigits.minutesTens--;
return;
}
CREATE_ESCAPE_TIMER(0, 0, 0);
gCurrentEscapeStatus = ESCAPE_STATUS_FAILED;
}
}
}

View File

@ -1,5 +1,6 @@
#include "gba.h"
#include "hud.h"
#include "gba.h"
#include "macros.h"
#include "oam.h"
#include "data/hud_data.h"
@ -1208,17 +1209,28 @@ void HUDUpdateGfx(void)
*/
void HudDrawSuitless(void)
{
u32 chargeCounter;
u8 chargeCounter;
u8 normalized;
chargeCounter = gSamusWeaponInfo.chargeCounter;
if (chargeCounter >= 0x70)
chargeCounter = (u8)(gSamusWeaponInfo.chargeCounter - 0x70) / 4 + 0x34;
else
chargeCounter /= 2;
if (chargeCounter < 0x38)
if (chargeCounter >= SUITLESS_BAR_NBR_ELEMS * 2)
{
DMA_SET(3, sSuitlessHUDChargeBarGfx + chargeCounter * 256, VRAM_BASE + 0x11100, (DMA_ENABLE << 16) | 0x80);
// Normalize to 0
normalized = gSamusWeaponInfo.chargeCounter - SUITLESS_BAR_NBR_ELEMS * 2;
// Switch between the last 4 graphics
chargeCounter = normalized / 4 + SUITLESS_BAR_NBR_ELEMS - 4;
}
else
{
chargeCounter /= 2;
}
// Transfer graphics
if (chargeCounter < SUITLESS_BAR_NBR_ELEMS)
{
DMA_SET(3, &sSuitlessHUDChargeBarGfx[chargeCounter * SUITLESS_BAR_SIZE], VRAM_BASE + 0x11100,
C_32_2_16(DMA_ENABLE, SUITLESS_BAR_SIZE / 2));
}
}
@ -1228,12 +1240,16 @@ void HudDrawSuitless(void)
*/
void HudDraw(void)
{
HudDrawEnergy(0x0);
HudDrawEnergy(0);
HudDrawMissiles(FALSE);
HudDrawPowerBomb(FALSE);
HudDrawSuperMissiles(FALSE);
HUDUpdateGfx();
if (gEquipment.suitType == SUIT_SUITLESS)
HudDrawSuitless();
HUDUpdateOAM();
}
}

View File

@ -19,76 +19,77 @@
* @brief 53c68 | 24 | Loads the common sprites graphics
*
*/
void HUDGenericLoadCommonSpriteGfx(void)
void HudGenericLoadCommonSpriteGfx(void)
{
DMA_SET(3, sCommonSpritesGfx, VRAM_BASE + 0x10800, DMA_ENABLE << 16 | 0x1C00);
DMA_SET(3, sCommonSpritesGfx, VRAM_BASE + 0x10800, C_32_2_16(DMA_ENABLE, 0x1C00));
}
/**
* @brief 53c8c | 24 | Resets the refill animations
*
*/
void HUDGenericResetRefillAnimations(void)
void HudGenericResetRefillAnimations(void)
{
gEnergyRefillAnimation = 0x0;
gMissileRefillAnimation = 0x0;
gSuperMissileRefillAnimation = 0x0;
gPowerBombRefillAnimation = 0x0;
gEnergyRefillAnimation = 0;
gMissileRefillAnimation = 0;
gSuperMissileRefillAnimation = 0;
gPowerBombRefillAnimation = 0;
}
/**
* @brief 53cb0 | 120 | Resets the HUD data and the particles
*
*/
void HUDGenericResetHUDData(void)
void HudGenericResetHUDData(void)
{
struct ParticleEffect* pParticle;
if (gGameModeSub3 == 0x0 || gTourianEscapeCutsceneStage != 0x0)
if (gGameModeSub3 == 0 || gTourianEscapeCutsceneStage != 0)
{
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
pParticle->status = 0x0;
pParticle->status = 0;
gEnergyDigits.ones = 0xF;
gEnergyDigits.tens = 0xF;
gEnergyDigits.hundreds = 0xF;
gEnergyDigits.thousands = 0xF;
gEnergyDigits.ones = 15;
gEnergyDigits.tens = 15;
gEnergyDigits.hundreds = 15;
gEnergyDigits.thousands = 15;
gMaxEnergyDigits.ones = 0xF;
gMaxEnergyDigits.tens = 0xF;
gMaxEnergyDigits.hundreds = 0xF;
gMaxEnergyDigits.thousands = 0xF;
gMaxEnergyDigits.ones = 15;
gMaxEnergyDigits.tens = 15;
gMaxEnergyDigits.hundreds = 15;
gMaxEnergyDigits.thousands = 15;
gMissileDigits.ones = 0xF;
gMissileDigits.tens = 0xF;
gMissileDigits.hundreds = 0xF;
gMissileDigits.ones = 15;
gMissileDigits.tens = 15;
gMissileDigits.hundreds = 15;
gPowerBombDigits.ones = 0xF;
gPowerBombDigits.tens = 0xF;
gPowerBombDigits.hundreds = 0xF;
gPowerBombDigits.ones = 15;
gPowerBombDigits.tens = 15;
gPowerBombDigits.hundreds = 15;
gSuperMissileDigits.ones = 0xF;
gSuperMissileDigits.tens = 0xF;
gSuperMissileDigits.hundreds = 0xF;
gSuperMissileDigits.ones = 15;
gSuperMissileDigits.tens = 15;
gSuperMissileDigits.hundreds = 15;
gMissileHighlightStatus = 0x0;
gPowerBombHighlightStatus = 0x0;
gSuperMissileHighlightStatus = 0x0;
gMissileHighlightStatus = 0;
gPowerBombHighlightStatus = 0;
gSuperMissileHighlightStatus = 0;
gUpdateMinimapFlag = MINIMAP_UPDATE_FLAG_LOWER_LINE;
gCurrentEscapeStatus = ESCAPE_STATUS_NONE;
HUDGenericResetRefillAnimations();
HudGenericResetRefillAnimations();
}
else if (gPauseScreenFlag == PAUSE_SCREEN_NONE)
{
HUDGenericResetRefillAnimations();
HudGenericResetRefillAnimations();
for (pParticle = gParticleEffects; pParticle < gParticleEffects + MAX_AMOUNT_OF_PARTICLES; pParticle++)
{
if (pParticle->effect < PE_CHARGING_BEAM)
pParticle->status = 0x0;
pParticle->status = 0;
else if (pParticle->effect == PE_ESCAPE && EscapeDetermineTimer() == ESCAPE_NONE)
pParticle->status = 0x0;
pParticle->status = 0;
}
}
}

View File

@ -372,7 +372,7 @@ void InitAndLoadGenerics(void)
if (gGameModeSub3 == 0 || gTourianEscapeCutsceneStage != 0)
{
ClearGfxRam();
HUDGenericLoadCommonSpriteGfx();
HudGenericLoadCommonSpriteGfx();
}
gWrittenToBLDY_NonGameplay = 0x10;
@ -408,7 +408,7 @@ void InitAndLoadGenerics(void)
do {
} while ((u16)(read16(REG_VCOUNT) - 0x15) < 0x8C);
HUDGenericResetHUDData();
HudGenericResetHUDData();
SpriteLoadAllData();
ProjectileCallLoadGraphicsAndClearProjectiles();

View File

@ -196,11 +196,11 @@ void unk_5fd58(void)
{
for (j = 0; j < 10; j++)
{
value = src[i * 0x20 + j] & 0xFFF;
value = src[i * 32 + j] & 0xFFF;
dst[i * 0x20 + j] = (dst[i * 0x20 + j] & 0xF000) | value;
dst[i * 0x20 + j + 10] = (dst[i * 0x20 + j + 10] & 0xF000) | value;
dst[i * 0x20 + j + 20] = (dst[i * 0x20 + j + 20] & 0xF000) | value;
dst[i * 32 + j] = (dst[i * 32 + j] & 0xF000) | value;
dst[i * 32 + j + 10] = (dst[i * 32 + j + 10] & 0xF000) | value;
dst[i * 32 + j + 20] = (dst[i * 32 + j + 20] & 0xF000) | value;
}
}
}
@ -284,7 +284,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
break;
case 2:
if (gInGameCutscene.timer & 1)
if (MOD_AND(gInGameCutscene.timer, 2))
break;
if (gWrittenToBLDALPHA_H != 16)
@ -307,21 +307,21 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
changeStage++;
gWrittenToBLDALPHA = gWrittenToBLDALPHA_H << 8 | gWrittenToBLDALPHA_L;
changeStage >>= 1;
changeStage = DIV_SHIFT(changeStage, 2);
break;
case 3:
// Hide BG0, and backup its tilemap
gWrittenToDISPCNT = gIoRegistersBackup.DISPCNT_NonGameplay & ~DCNT_BG0;
DMA_SET(3, VRAM_BASE + 0x800, EWRAM_BASE + 0x1E000, DMA_ENABLE << 16 | 0x400);
DMA_SET(3, VRAM_BASE + (1 * BGCNT_VRAM_TILE_SIZE), EWRAM_BASE + 0x1E000, C_32_2_16(DMA_ENABLE, BGCNT_VRAM_TILE_SIZE / 2));
changeStage = TRUE;
break;
case 4:
// Fill BG0 tilemap with tile 0xC0, palette 9
BitFill(3, (9 << 0xC) | 0xC0, VRAM_BASE + 0x800, 0x800, 16);
write16(REG_BG0CNT, 0x104);
BitFill(3, (9 << 12) | 0xC0, VRAM_BASE + (1 * BGCNT_VRAM_TILE_SIZE), 0x800, 16);
write16(REG_BG0CNT, CREATE_BGCNT(1, 1, BGCNT_HIGH_PRIORITY, BGCNT_SIZE_256x256));
changeStage = TRUE;
break;
@ -338,14 +338,14 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
gWrittenToDISPCNT = gIoRegistersBackup.DISPCNT_NonGameplay;
gWrittenToWININ_H = 0x3F;
gWrittenToWINOUT_L = 0x1E;
gWrittenToBLDALPHA = 0x100D;
gWrittenToBLDCNT = 0x3F41;
gWrittenToBLDALPHA = C_16_2_8(16, 13);
gWrittenToBLDCNT = BLDCNT_BG0_FIRST_TARGET_PIXEL | BLDCNT_ALPHA_BLENDING_EFFECT | BLDCNT_SCREEN_SECOND_TARGET;
gSuitFlashEffect.left = left;
gSuitFlashEffect.right = right;
gSuitFlashEffect.top = top;
gSuitFlashEffect.bottom = bottom;
gSuitFlashEffect.timer = 0x0;
gSuitFlashEffect.timer = 0;
if (gCurrentItemBeingAcquired == ITEM_ACQUISITION_VARIA)
SoundPlay(0x222); // Varia upgrade sound
@ -378,7 +378,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
else
changeStage++;
changeStage >>= 1;
changeStage = DIV_SHIFT(changeStage, 2);
break;
case 9:
@ -404,7 +404,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
else
changeStage++;
changeStage >>= 1;
changeStage = DIV_SHIFT(changeStage, 2);
break;
case 10:
@ -430,8 +430,8 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
case 13:
// Handle suit flash shrinking vertically
result = InGameCutsceneCalculateSuitFlashOffset(3, top - gSuitFlashEffect.top, gSuitFlashEffect.bottom - bottom);
res_1 = result & 0xFF;
res_2 = (result & 0xFF00) >> 8;
res_1 = LOW_BYTE(result);
res_2 = HIGH_BYTE(result);
if (gSuitFlashEffect.top < top)
{
@ -451,14 +451,14 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
else
changeStage++;
changeStage >>= 1;
changeStage = DIV_SHIFT(changeStage, 2);
break;
case 14:
// Handle suit flash shrinking horizontally
result = InGameCutsceneCalculateSuitFlashOffset(9, left - gSuitFlashEffect.left, gSuitFlashEffect.right - right);
res_1 = result & 0xFF;
res_2 = (result & 0xFF00) >> 8;
res_1 = LOW_BYTE(result);
res_2 = HIGH_BYTE(result);
if (gSuitFlashEffect.left < left)
{
@ -478,7 +478,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
else
changeStage++;
changeStage >>= 1;
changeStage = DIV_SHIFT(changeStage, 2);
break;
case 15:
@ -498,7 +498,7 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
case 16:
// Put BG0 in the state it was before the cutscene
DMA_SET(3, EWRAM_BASE + 0x1E000, VRAM_BASE + 0x800, DMA_ENABLE << 16 | 0x400);
DMA_SET(3, EWRAM_BASE + 0x1E000, VRAM_BASE + (1 * BGCNT_VRAM_TILE_SIZE), C_32_2_16(DMA_ENABLE, BGCNT_VRAM_TILE_SIZE / 2));
write16(REG_BG0CNT, gIoRegistersBackup.BG0CNT);
changeStage = TRUE;
@ -533,8 +533,8 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
else
changeStage++;
gWrittenToBLDALPHA = gWrittenToBLDALPHA_H << 8 | gWrittenToBLDALPHA_L;
changeStage >>= 1;
gWrittenToBLDALPHA = C_16_2_8(gWrittenToBLDALPHA_H, gWrittenToBLDALPHA_L);
changeStage = DIV_SHIFT(changeStage, 2);
break;
case 19:
@ -559,8 +559,8 @@ u32 InGameCutsceneUpgradingSuit(u8 cutsceneNumber, u8 cutsceneNumberNoFlag)
}
// Update window 1
gWrittenToWIN1H = gSuitFlashEffect.left << 8 | gSuitFlashEffect.right;
gWrittenToWIN1V = gSuitFlashEffect.top << 8 | gSuitFlashEffect.bottom;
gWrittenToWIN1H = C_16_2_8(gSuitFlashEffect.left, gSuitFlashEffect.right);
gWrittenToWIN1V = C_16_2_8(gSuitFlashEffect.top, gSuitFlashEffect.bottom);
return ended;
}
@ -601,7 +601,7 @@ u16 InGameCutsceneCalculateSuitFlashOffset(u8 intensity, u8 start, u8 end)
newEnd = intensity;
}
return newEnd << 8 | newStart;
return C_16_2_8(newEnd, newStart);
}
/**
@ -756,7 +756,7 @@ void InGameCutsceneCheckPlayOnTransition(void)
for (i = 0; i < ARRAY_SIZE(sInGameCutsceneData); i++)
{
// ?
if (i % 32 == 0 && gInGameCutscenesTriggered[i >> 5] == -1)
if (i % 32 == 0 && gInGameCutscenesTriggered[DIV_SHIFT(i, 32)] == -1)
{
i += 32;
continue;
@ -794,7 +794,7 @@ void InGameCutsceneCheckPlayOnTransition(void)
CallLZ77UncompVRAM(sSamusCloseUpGfx, VRAM_BASE + 0x9000);
CallLZ77UncompWRAM(sSamusCloseUpBackgroundMap, gDecompBG0Map);
CallLZ77UncompWRAM(sSamusCloseUpEyesTiletable, EWRAM_BASE + 0x2B000);
DMA_SET(3, sSamusCloseUpPAL, PALRAM_BASE + 0xE0, DMA_ENABLE << 16 | 0x60);
DMA_SET(3, sSamusCloseUpPal, PALRAM_BASE + 0xE0, C_32_2_16(DMA_ENABLE, ARRAY_SIZE(sSamusCloseUpPal)));
unk_5fd58();
@ -900,13 +900,13 @@ void UpdateAnimatedPaletteAfterTransitionOrReload(void)
if (gPauseScreenFlag)
{
if (gAnimatedGraphicsEntry.palette != 0) // FIXME add symbol for ewram address
DMA_SET(3, ANIMATED_PALETTE_EWRAM, ANIMATED_PALETTE_PALRAM, DMA_ENABLE << 16 | 16);
DMA_SET(3, ANIMATED_PALETTE_EWRAM, ANIMATED_PALETTE_PALRAM, C_32_2_16(DMA_ENABLE, 16));
}
else
{
gInGameCutscene.stage = 0;
gInGameCutscene.timer = 0;
AnimatedPaletteCheckDisableOnTransition(); // Undefined
AnimatedPaletteCheckDisableOnTransition();
}
}

View File

@ -1869,7 +1869,7 @@ void ParticleEscape(struct ParticleEffect* pParticle)
pParticle->status = 0;
}
EscapeUpdateOAM();
EscapeUpdateOam();
gCurrentParticleEffectOamFramePointer = gParticleEscapeOamFrames;
}

File diff suppressed because it is too large Load Diff

View File

@ -557,7 +557,7 @@ u32 SramProcessEndingSave_Unused(void)
// 0 | 0 | Hard hiragana | Normal hiragana | Easy hiragana | Hard english | Normal english | Easy english
bit = 1;
if (gLanguage == LANGUAGE_HIRAGANA)
bit = 8;
bit = 1 << 3;
gGameCompletion.completedGame |= bit << gDifficulty;

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,11 @@
#include "sprites_AI/area_banner.h"
#include "macros.h"
#include "data/sprites/area_banner.h"
#include "constants/sprite.h"
#include "structs/sprite.h"
#include "globals.h"
/**
* @brief 3c704 | a4 | Initializes an area banner sprite
@ -13,37 +16,39 @@ void AreaBannerInit(void)
gCurrentSprite.samusCollision = SSC_NONE;
gCurrentSprite.properties |= SP_ALWAYS_ACTIVE;
gCurrentSprite.drawDistanceTopOffset = 0x10;
gCurrentSprite.drawDistanceBottomOffset = 0x10,
gCurrentSprite.drawDistanceHorizontalOffset = 0x80;
gCurrentSprite.drawDistanceTopOffset = SUB_PIXEL_TO_PIXEL(BLOCK_SIZE);
gCurrentSprite.drawDistanceBottomOffset = SUB_PIXEL_TO_PIXEL(BLOCK_SIZE);
gCurrentSprite.drawDistanceHorizontalOffset = SUB_PIXEL_TO_PIXEL(BLOCK_SIZE * 8);
gCurrentSprite.hitboxTopOffset = -0x4;
gCurrentSprite.hitboxBottomOffset = 0x4;
gCurrentSprite.hitboxLeftOffset = -0x4;
gCurrentSprite.hitboxRightOffset = 0x4;
gCurrentSprite.hitboxTopOffset = -PIXEL_SIZE;
gCurrentSprite.hitboxBottomOffset = PIXEL_SIZE;
gCurrentSprite.hitboxLeftOffset = -PIXEL_SIZE;
gCurrentSprite.hitboxRightOffset = PIXEL_SIZE;
gCurrentSprite.animationDurationCounter = 0x0;
gCurrentSprite.currentAnimationFrame = 0x0;
gCurrentSprite.animationDurationCounter = 0;
gCurrentSprite.currentAnimationFrame = 0;
gCurrentSprite.pose = AREA_BANNER_POSE_SPAWN;
if (gCurrentSprite.roomSlot < LT_MOTHERSHIP)
{
// Area name, spawn at bottom
gCurrentSprite.pOam = sAreaBannerOAM_SpawnBottom;
gCurrentSprite.pOam = sAreaBannerOam_SpawnBottom;
gCurrentSprite.workVariable = TRUE;
gCurrentSprite.yPosition = 0x98;
gCurrentSprite.xPosition = 0x78;
gCurrentSprite.xPosition = SCREEN_SIZE_X / 2;
}
else if ((gCurrentSprite.roomSlot == LT_SAVE_ROOM || gCurrentSprite.roomSlot == LT_MAP_ROOM) && gAlarmTimer != 0)
{
gCurrentSprite.status = 0; // Don't spawn save/map if alarm is active
}
else if ((gCurrentSprite.roomSlot == LT_SAVE_ROOM || gCurrentSprite.roomSlot == LT_MAP_ROOM) && gAlarmTimer != 0x0)
gCurrentSprite.status = 0x0; // Don't spawn save/map if alarm is active
else
{
// Spawn in middle
gCurrentSprite.pOam = sAreaBannerOAM_SpawnMiddle;
gCurrentSprite.pOam = sAreaBannerOam_SpawnMiddle;
gCurrentSprite.workVariable = FALSE;
gCurrentSprite.yPosition = 0x36;
gCurrentSprite.xPosition = 0x78;
gCurrentSprite.xPosition = SCREEN_SIZE_X / 2;
}
}
@ -66,23 +71,23 @@ void AreaBannerScrollingUp(void)
{
if (SpriteUtilCheckEndCurrentSpriteAnim())
{
gCurrentSprite.animationDurationCounter = 0x0;
gCurrentSprite.currentAnimationFrame = 0x0;
gCurrentSprite.animationDurationCounter = 0;
gCurrentSprite.currentAnimationFrame = 0;
gCurrentSprite.pose = AREA_BANNER_POSE_STATIC;
// Set OAM and timer for how long the message stays
if (gCurrentSprite.workVariable) // Position flag, 1 = on bottom, 0 = in middle
{
gCurrentSprite.pOam = sAreaBannerOAM_StaticBottom;
gCurrentSprite.timer = 0x78;
gCurrentSprite.pOam = sAreaBannerOam_StaticBottom;
gCurrentSprite.timer = 120;
}
else
{
gCurrentSprite.pOam = sAreaBannerOAM_StaticMiddle;
gCurrentSprite.pOam = sAreaBannerOam_StaticMiddle;
if (gCurrentSprite.roomSlot == LT_SAVE_ROOM || gCurrentSprite.roomSlot == LT_MAP_ROOM)
gCurrentSprite.timer = 0x32;
gCurrentSprite.timer = 50;
else
gCurrentSprite.timer = 0x5A;
gCurrentSprite.timer = 90;
}
}
}
@ -94,17 +99,17 @@ void AreaBannerScrollingUp(void)
void AreaBannerStatic(void)
{
gCurrentSprite.timer--; // Timer for how long it stays
if (gCurrentSprite.timer == 0x0)
if (gCurrentSprite.timer == 0)
{
gCurrentSprite.animationDurationCounter = 0x0;
gCurrentSprite.currentAnimationFrame = 0x0;
gCurrentSprite.animationDurationCounter = 0;
gCurrentSprite.currentAnimationFrame = 0;
gCurrentSprite.pose = AREA_BANNER_POSE_REMOVING;
// Set OAM
if (gCurrentSprite.workVariable)
gCurrentSprite.pOam = sAreaBannerOAM_RemovingBottom;
gCurrentSprite.pOam = sAreaBannerOam_RemovingBottom;
else
gCurrentSprite.pOam = sAreaBannerOAM_RemovingMiddle;
gCurrentSprite.pOam = sAreaBannerOam_RemovingMiddle;
}
}
@ -115,7 +120,7 @@ void AreaBannerStatic(void)
void AreaBannerCheckRemovingAnimEnded(void)
{
if (SpriteUtilCheckEndCurrentSpriteAnim())
gCurrentSprite.status = 0x0; // Kill sprite
gCurrentSprite.status = 0; // Kill sprite
}
/**
@ -124,10 +129,11 @@ void AreaBannerCheckRemovingAnimEnded(void)
*/
void AreaBanner(void)
{
gCurrentSprite.ignoreSamusCollisionTimer = 0x1;
gCurrentSprite.ignoreSamusCollisionTimer = 1;
switch (gCurrentSprite.pose)
{
case 0x0:
case SPRITE_POSE_UNINITIALIZED:
AreaBannerInit();
break;
@ -147,4 +153,4 @@ void AreaBanner(void)
AreaBannerCheckRemovingAnimEnded();
break;
}
}
}

View File

@ -183,11 +183,12 @@ void WorkerRobotWalkingDetectProjectile(void)
if (!SpriteUtilCheckObjectsTouching(spriteTop, spriteBottom, spriteLeft, spriteRight, projTop, projBottom, projLeft, projRight))
continue;
if (pProj->direction == ACD_FORWARD ||
((pProj->direction == ACD_DIAGONALLY_UP || pProj->direction == ACD_DIAGONALLY_DOWN) &&
projY > spriteTop && projY < spriteBottom))
{
if (pProj->direction == ACD_FORWARD)
onSide++;
else if (pProj->direction == ACD_DIAGONALLY_UP || pProj->direction == ACD_DIAGONALLY_DOWN)
{
if (projY > spriteTop && projY < spriteBottom)
onSide++;
}
if (onSide)
@ -196,21 +197,23 @@ void WorkerRobotWalkingDetectProjectile(void)
{
projX = spriteLeft;
gCurrentSprite.status |= SPRITE_STATUS_FACING_RIGHT;
if (!(gCurrentSprite.status & SPRITE_STATUS_XFLIP))
{
if (gCurrentSprite.pOam != sWorkerRobotOAM_WalkingBackwards)
gCurrentSprite.pOam = sWorkerRobotOAM_WalkingBackwards;
}
else
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
{
if (gCurrentSprite.pOam != sWorkerRobotOAM_Walking)
gCurrentSprite.pOam = sWorkerRobotOAM_Walking;
}
else
{
if (gCurrentSprite.pOam != sWorkerRobotOAM_WalkingBackwards)
gCurrentSprite.pOam = sWorkerRobotOAM_WalkingBackwards;
}
}
else
{
projX = spriteRight;
gCurrentSprite.status &= ~SPRITE_STATUS_FACING_RIGHT;
if (gCurrentSprite.status & SPRITE_STATUS_XFLIP)
{
if (gCurrentSprite.pOam != sWorkerRobotOAM_WalkingBackwards)
@ -222,6 +225,7 @@ void WorkerRobotWalkingDetectProjectile(void)
gCurrentSprite.pOam = sWorkerRobotOAM_Walking;
}
}
gCurrentSprite.animationDurationCounter = 0;
}