Start extracting arm cannon data

This commit is contained in:
y.demaisonregne 2023-03-22 23:29:31 +01:00
parent b99445fe5c
commit 7c73239a02
6 changed files with 265 additions and 111 deletions

View File

@ -2232,6 +2232,113 @@ samus/graphics/suitless/Bottom_FacingTheBackground_Frame0.gfx;416;0x2af3de;1
samus/graphics/suitless/Bottom_Left_TurningFromFacingTheBackground_Frame0.gfx;384;0x2af580;1
samus/graphics/suitless/Bottom_Right_TurningFromFacingTheBackground_Frame0.gfx;384;0x2af702;1
# Arm cannon
samus/graphics/arm_cannon/Upper_Forward_Left_Default.gfx;64;0x2320ec;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Default.gfx;64;0x23212c;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Default.gfx;64;0x23216c;1
samus/graphics/arm_cannon/Upper_Up_Left_Default.gfx;64;0x2321ac;1
samus/graphics/arm_cannon/Upper_Down_Left_Default.gfx;64;0x2321ec;1
samus/graphics/arm_cannon/Lower_Forward_Left_Default.gfx;64;0x23222c;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Default.gfx;64;0x23226c;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Default.gfx;64;0x2322ac;1
samus/graphics/arm_cannon/Lower_Up_Left_Default.gfx;64;0x2322ec;1
samus/graphics/arm_cannon/Lower_Down_Left_Default.gfx;64;0x23232c;1
samus/graphics/arm_cannon/Upper_Forward_Right_Default.gfx;64;0x23236c;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Right_Default.gfx;64;0x2323ac;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Default.gfx;64;0x2323ec;1
samus/graphics/arm_cannon/Upper_Up_Standing.gfx;64;0x23242c;1
samus/graphics/arm_cannon/Upper_Down_Standing.gfx;64;0x23246c;1
samus/graphics/arm_cannon/Lower_Forward_Right_Default.gfx;64;0x2324ac;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Right_Default.gfx;64;0x2324ec;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Default.gfx;64;0x23252c;1
samus/graphics/arm_cannon/Lower_Up_Standing.gfx;64;0x23256c;1
samus/graphics/arm_cannon/Lower_Down_Standing.gfx;64;0x2325ac;1
samus/graphics/arm_cannon/Upper_Forward_Left_Armed_Default.gfx;64;0x2325ec;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Armed_Default.gfx;64;0x23262c;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Armed_Default.gfx;64;0x23266c;1
samus/graphics/arm_cannon/Upper_Up_Left_Armed_Default.gfx;64;0x2326ac;1
samus/graphics/arm_cannon/Upper_Down_Left_Armed_Default.gfx;64;0x2326ec;1
samus/graphics/arm_cannon/Lower_Forward_Left_Armed_Default.gfx;64;0x23272c;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Armed_Default.gfx;64;0x23276c;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Armed_Default.gfx;64;0x2327ac;1
samus/graphics/arm_cannon/Lower_Up_Left_Armed_Default.gfx;64;0x2327ec;1
samus/graphics/arm_cannon/Lower_Down_Left_Armed_Default.gfx;64;0x23282c;1
samus/graphics/arm_cannon/Upper_Forward_Right_Armed_Default.gfx;64;0x23286c;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Right_Armed_Default.gfx;64;0x2328ac;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Armed_Default.gfx;64;0x2328ec;1
samus/graphics/arm_cannon/Upper_Up_Right_Armed_Default.gfx;64;0x23292c;1
samus/graphics/arm_cannon/Upper_Down_Right_Armed_Default.gfx;64;0x23296c;1
samus/graphics/arm_cannon/Lower_Forward_Right_Armed_Default.gfx;64;0x2329ac;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Right_Armed_Default.gfx;64;0x2329ec;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Armed_Default.gfx;64;0x232a2c;1
samus/graphics/arm_cannon/Unused.gfx;64;0x232a6c;1
samus/graphics/arm_cannon/Lower_Armed_Down.gfx;64;0x232aac;1
samus/graphics/arm_cannon/Upper_Forward_Right_Hanging.gfx;64;0x232aec;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Right_OnZipline.gfx;64;0x232b2c;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Hanging.gfx;64;0x232b6c;1
samus/graphics/arm_cannon/Upper_Up_Right_OnZipline.gfx;64;0x232bac;1
samus/graphics/arm_cannon/Upper_Down_Right_Hanging.gfx;64;0x232bec;1
samus/graphics/arm_cannon/Lower_Forward_Right_Hanging.gfx;64;0x232c2c;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Right_OnZipline.gfx;64;0x232c6c;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Hanging.gfx;64;0x232cac;1
samus/graphics/arm_cannon/Lower_Up_Right_OnZipline.gfx;64;0x232cec;1
samus/graphics/arm_cannon/Lower_Down_Right_Hanging.gfx;64;0x232d2c;1
samus/graphics/arm_cannon/Upper_Forward_Left_Hanging.gfx;64;0x232d6c;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Hanging.gfx;64;0x232dac;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Hanging.gfx;64;0x232dec;1
samus/graphics/arm_cannon/Upper_Up_Left_Hanging.gfx;64;0x232e2c;1
samus/graphics/arm_cannon/Upper_Down_Left_Hanging.gfx;64;0x232e6c;1
samus/graphics/arm_cannon/Lower_Forward_Left_Hanging.gfx;64;0x232eac;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Hanging.gfx;64;0x232eec;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Hanging.gfx;64;0x232f2c;1
samus/graphics/arm_cannon/Lower_Up_Left_Hanging.gfx;64;0x232f6c;1
samus/graphics/arm_cannon/Lower_Down_Left_Hanging.gfx;64;0x232fac;1
samus/graphics/arm_cannon/Upper_Forward_Right_Armed_Hanging.gfx;64;0x232fec;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Right_Armed_Hanging.gfx;64;0x23302c;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Armed_Hanging.gfx;64;0x23306c;1
samus/graphics/arm_cannon/Upper_Up_Right_Armed_Hanging.gfx;64;0x2330ac;1
samus/graphics/arm_cannon/Upper_Down_Right_Armed_Hanging.gfx;64;0x2330ec;1
samus/graphics/arm_cannon/Lower_Forward_Right_Armed_Hanging.gfx;64;0x23312c;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Right_Armed_Hanging.gfx;64;0x23316c;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Armed_Hanging.gfx;64;0x2331ac;1
samus/graphics/arm_cannon/Lower_Up_Right_Armed_Hanging.gfx;64;0x2331ec;1
samus/graphics/arm_cannon/Lower_Down_Right_Armed_Hanging.gfx;64;0x23322c;1
samus/graphics/arm_cannon/Upper_Forward_Left_Armed_Hanging.gfx;64;0x23326c;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Armed_Hanging.gfx;64;0x2332ac;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Armed_Hanging.gfx;64;0x2332ec;1
samus/graphics/arm_cannon/Upper_Up_Left_Armed_Hanging.gfx;64;0x23332c;1
samus/graphics/arm_cannon/Upper_Down_Left_Armed_Hanging.gfx;64;0x23336c;1
samus/graphics/arm_cannon/Lower_Forward_Left_Armed_Hanging.gfx;64;0x2333ac;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Armed_Hanging.gfx;64;0x2333ec;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Armed_Hanging.gfx;64;0x23342c;1
samus/graphics/arm_cannon/Lower_Up_Left_Armed_Hanging.gfx;64;0x23346c;1
samus/graphics/arm_cannon/Lower_Down_Left_Armed_Hanging.gfx;64;0x2334ac;1
samus/graphics/arm_cannon/Upper_Forward_Right_OnZipline.gfx;64;0x2334ec;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Right_OnZipline.gfx;64;0x23352c;1
samus/graphics/arm_cannon/Upper_Down_Right_OnZipline.gfx;64;0x23356c;1
samus/graphics/arm_cannon/Lower_Forward_Right_OnZipline.gfx;64;0x2335ac;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Right_OnZipline.gfx;64;0x2335ec;1
samus/graphics/arm_cannon/Lower_Down_Right_OnZipline.gfx;64;0x23362c;1
samus/graphics/arm_cannon/Upper_Forward_Right_Armed_OnZipline.gfx;64;0x23366c;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Armed_OnZipline.gfx;64;0x2336ac;1
samus/graphics/arm_cannon/Upper_Down_Right_Armed_OnZipline.gfx;64;0x2336ec;1
samus/graphics/arm_cannon/Lower_Forward_Right_Armed_OnZipline.gfx;64;0x23372c;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Armed_OnZipline.gfx;64;0x23376c;1
samus/graphics/arm_cannon/Lower_Down_Right_Armed_OnZipline.gfx;64;0x2337ac;1
samus/graphics/arm_cannon/Upper_Forward_Standing.gfx;64;0x2337ec;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Standing.gfx;64;0x23382c;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Standing.gfx;64;0x23386c;1
samus/graphics/arm_cannon/Lower_Forward_Standing.gfx;64;0x2338ac;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Standing.gfx;64;0x2338ec;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Standing.gfx;64;0x23392c;1
samus/graphics/arm_cannon/Upper_Forward_Armed_Standing.gfx;64;0x23396c;1
samus/graphics/arm_cannon/Upper_DiagonalUp_Armed_Standing.gfx;64;0x2339ac;1
samus/graphics/arm_cannon/Upper_DiagonalDown_Armed_Standing.gfx;64;0x2339ec;1
samus/graphics/arm_cannon/Lower_Forward_Armed_Standing.gfx;64;0x233a2c;1
samus/graphics/arm_cannon/Lower_DiagonalUp_Armed_Standing.gfx;64;0x233a6c;1
samus/graphics/arm_cannon/Lower_DiagonalDown_Armed_Standing.gfx;64;0x233aac;1
# Blobs
Blob_8cad0_8cee2.bin;1042;0x8cad0;1

View File

@ -2,9 +2,11 @@
#define SAMUS_ARM_CANNON_DATA_H
#include "types.h"
#include "macros.h"
#include "structs/samus.h"
// Size of header plus size of graphics
#define SAMUS_ARM_CANNON_GFX_SIZE (2 + 62)
// 2 tiles in size
#define SAMUS_ARM_CANNON_GFX_SIZE (2 * 32)
// Naming :
// Part of the gfx, arm cannon direction, facing direction, pose
@ -115,27 +117,19 @@ extern const u8 sArmCannonGfx_Lower_Up_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_S
extern const u8 sArmCannonGfx_Lower_Down_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Forward_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_DiagonalUp_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_DiagonalDown_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Up_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Down_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_Forward_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_DiagonalUp_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_DiagonalDown_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_Up_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_Down_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Forward_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_DiagonalUp_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_DiagonalDown_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Up_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Down_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_Forward_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_DiagonalUp_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_DiagonalDown_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_Up_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_Down_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Upper_Forward_Standing[SAMUS_ARM_CANNON_GFX_SIZE];
@ -154,4 +148,6 @@ extern const u8 sArmCannonGfx_Lower_Forward_Armed_Standing[SAMUS_ARM_CANNON_GFX_
extern const u8 sArmCannonGfx_Lower_DiagonalUp_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE];
extern const u8 sArmCannonGfx_Lower_DiagonalDown_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE];
#endif /* SAMUS_ARM_CANNON_DATA_H */

View File

@ -0,0 +1,136 @@
#include "data/samus/arm_cannon_data.h"
#include "macros.h"
const u8 sArmCannonGfx_Upper_Forward_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Left_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Default.gfx");
const u8 sArmCannonGfx_Upper_Up_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Left_Default.gfx");
const u8 sArmCannonGfx_Upper_Down_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Left_Default.gfx");
const u8 sArmCannonGfx_Lower_Forward_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Left_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Default.gfx");
const u8 sArmCannonGfx_Lower_Up_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Left_Default.gfx");
const u8 sArmCannonGfx_Lower_Down_Left_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Left_Default.gfx");
const u8 sArmCannonGfx_Upper_Forward_Right_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Right_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Right_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Right_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Right_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Default.gfx");
const u8 sArmCannonGfx_Upper_Up_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Standing.gfx");
const u8 sArmCannonGfx_Upper_Down_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Standing.gfx");
const u8 sArmCannonGfx_Lower_Forward_Right_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Right_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Right_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Right_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Right_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Default.gfx");
const u8 sArmCannonGfx_Lower_Up_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Standing.gfx");
const u8 sArmCannonGfx_Lower_Down_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Standing.gfx");
const u8 sArmCannonGfx_Upper_Forward_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_Up_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_Down_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_Forward_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_Up_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_Down_Left_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Left_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_Forward_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_Up_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Upper_Down_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_Forward_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Right_Armed_Default[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Armed_Default.gfx");
const u8 sArmCannonGfx_Unused[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Unused.gfx");
const u8 sArmCannonGfx_Lower_Armed_Down[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Armed_Down.gfx");
const u8 sArmCannonGfx_Upper_Forward_Right_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Right_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Right_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Up_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_Down_Right_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Right_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Forward_Right_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Right_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Right_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Up_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_Down_Right_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Right_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Forward_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Left_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Up_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Left_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Down_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Left_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Forward_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Left_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Up_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Left_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Down_Left_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Left_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Forward_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Up_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Down_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Forward_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Up_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Down_Right_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Right_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Forward_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Up_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Up_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Down_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Forward_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Up_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Up_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Lower_Down_Left_Armed_Hanging[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Left_Armed_Hanging.gfx");
const u8 sArmCannonGfx_Upper_Forward_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_Down_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_Forward_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_Down_Right_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Right_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_Forward_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Right_Armed_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Right_Armed_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_Down_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Down_Right_Armed_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_Forward_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Right_Armed_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Right_Armed_OnZipline.gfx");
const u8 sArmCannonGfx_Lower_Down_Right_Armed_OnZipline[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Down_Right_Armed_OnZipline.gfx");
const u8 sArmCannonGfx_Upper_Forward_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Standing.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Standing.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Standing.gfx");
const u8 sArmCannonGfx_Lower_Forward_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Standing.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Standing.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Standing.gfx");
const u8 sArmCannonGfx_Upper_Forward_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_Forward_Armed_Standing.gfx");
const u8 sArmCannonGfx_Upper_DiagonalUp_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalUp_Armed_Standing.gfx");
const u8 sArmCannonGfx_Upper_DiagonalDown_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Upper_DiagonalDown_Armed_Standing.gfx");
const u8 sArmCannonGfx_Lower_Forward_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_Forward_Armed_Standing.gfx");
const u8 sArmCannonGfx_Lower_DiagonalUp_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalUp_Armed_Standing.gfx");
const u8 sArmCannonGfx_Lower_DiagonalDown_Armed_Standing[SAMUS_ARM_CANNON_GFX_SIZE] = INCBIN_U8("data/samus/graphics/arm_cannon/Lower_DiagonalDown_Armed_Standing.gfx");

View File

@ -2516,7 +2516,7 @@ const u8* const sArmCannonGfxPointers_Upper_Right_OnZipline[5] = {
const u8* const sArmCannonGfxPointers_Lower_Right_OnZipline[5] = {
[ACD_FORWARD] = sArmCannonGfx_Lower_Forward_Right_OnZipline,
[ACD_DIAGONALLY_UP] = sArmCannonGfx_Lower_DiagonalUp_Right_OnZipline,
[ACD_DIAGONALLY_UP] = sArmCannonGfx_Lower_DiagonalUp_Right_Armed_Hanging,
[ACD_DIAGONALLY_DOWN] = sArmCannonGfx_Lower_DiagonalDown_Right_OnZipline,
[ACD_UP] = sArmCannonGfx_Lower_Up_Right_OnZipline,
[ACD_DOWN] = sArmCannonGfx_Lower_Down_Right_OnZipline
@ -2524,17 +2524,17 @@ const u8* const sArmCannonGfxPointers_Lower_Right_OnZipline[5] = {
const u8* const sArmCannonGfxPointers_Upper_Right_Armed_OnZipline[5] = {
[ACD_FORWARD] = sArmCannonGfx_Upper_Forward_Right_Armed_OnZipline,
[ACD_DIAGONALLY_UP] = sArmCannonGfx_Upper_DiagonalUp_Right_Armed_OnZipline,
[ACD_DIAGONALLY_UP] = sArmCannonGfx_Upper_DiagonalUp_Right_Armed_Hanging,
[ACD_DIAGONALLY_DOWN] = sArmCannonGfx_Upper_DiagonalDown_Right_Armed_OnZipline,
[ACD_UP] = sArmCannonGfx_Upper_Up_Right_Armed_OnZipline,
[ACD_UP] = sArmCannonGfx_Upper_Up_Right_Armed_Hanging,
[ACD_DOWN] = sArmCannonGfx_Upper_Down_Right_Armed_OnZipline
};
const u8* const sArmCannonGfxPointers_Lower_Right_Armed_OnZipline[5] = {
[ACD_FORWARD] = sArmCannonGfx_Lower_Forward_Right_Armed_OnZipline,
[ACD_DIAGONALLY_UP] = sArmCannonGfx_Lower_DiagonalUp_Right_Armed_OnZipline,
[ACD_DIAGONALLY_UP] = sArmCannonGfx_Lower_DiagonalUp_Right_Armed_Hanging,
[ACD_DIAGONALLY_DOWN] = sArmCannonGfx_Lower_DiagonalDown_Right_Armed_OnZipline,
[ACD_UP] = sArmCannonGfx_Lower_Up_Right_Armed_OnZipline,
[ACD_UP] = sArmCannonGfx_Lower_Up_Right_Armed_Hanging,
[ACD_DOWN] = sArmCannonGfx_Lower_Down_Right_Armed_OnZipline
};

View File

@ -36,6 +36,7 @@ subDirs: array = [
"samus/graphics/full_suit/",
"samus/graphics/suitless/",
"samus/graphics/effects/",
"samus/graphics/arm_cannon/",
]
try:

View File

@ -1,7 +1,7 @@
from io import BufferedReader
file: BufferedReader = open("../mzm_us_baserom.gba", "rb")
header: BufferedReader = open("../include/data/samus/samus_graphics.h", "r")
header: BufferedReader = open("../include/data/samus/arm_cannon_data.h", "r")
def ParsePart0(value):
result = ""
@ -91,7 +91,7 @@ def ParsePart2(value):
return result
def Func():
addr = 0x23a5bc
addr = 0x2320ec
file.seek(addr)
@ -99,45 +99,23 @@ def Func():
line: str = header.readline()
while line != '':
if line.find("u8 sSamusGfx") != -1 or line.find("u8 sSamusEffectGfx") != -1:
if line.find("u8 sArmCannonGfx") != -1:
# Generate graphics
splitted = line.split("[SAMUS_GFX_SIZE(")
name: str = ""
try:
name: str = splitted[0].split("extern const u8 sSamusGfx_")[1]
except:
name: str = splitted[0].split("extern const u8 sSamusEffectGfx_")[1]
splitted = line.split("[SAMUS_ARM_CANNON_GFX_SIZE")
name: str = splitted[0].split("extern const u8 sArmCannonGfx_")[1]
folderName: str = "samus/graphics/power_suit/"
if name.find("FullSuit") != -1:
folderName = "samus/graphics/full_suit/"
elif name.find("Suitless") != -1:
folderName = "samus/graphics/suitless/"
elif line.find("sSamusEffectGfx") != -1:
folderName = "samus/graphics/effects/"
folderName: str = "samus/graphics/arm_cannon/"
name = name.replace("_PowerSuit", "", 1)
name = name.replace("_FullSuit", "", 1)
name = name.replace("_Suitless", "", 1)
name = name.replace("extern ", "", 1)
name = name.__add__(".gfx")
fileName: str = folderName.__add__(name)
sizeInfo: str = splitted[1].split(")")[0].split(", ")
size: int = 2 + int(sizeInfo[0]) * 32 + int(sizeInfo[1]) * 32
size: int = 64
size1: int = int.from_bytes(file.read(1), "little")
size2: int = int.from_bytes(file.read(1), "little")
result += line.replace("extern ", "").replace(";\n", "").__add__(' = INCBIN_U8("data/').__add__(fileName).__add__('");')
result += line.replace("extern ", "").replace(";\n", "").__add__(' = {\n\t').__add__(str(size1)).__add__(", ").__add__(str(size2)).__add__(',\n\t_INCBIN_U8("data/').__add__(fileName).__add__('")\n};\n')
if int(sizeInfo[0]) != size1 or int(sizeInfo[1]) != size2:
print("Wrong GFX size at : " + hex(addr) + " while reading " + line, end="")
print("Got : " + str(sizeInfo[0]) + " and " + str(sizeInfo[1]) + ", expected : " + str(size1) + " and " + str(size2))
return result
dbEntry: str = fileName.__add__(";").__add__(str(size - 2)).__add__(";").__add__(hex(addr + 2)).__add__(";1")
dbEntry: str = fileName.__add__(";").__add__(str(size)).__add__(";").__add__(hex(addr)).__add__(";1")
# print()
print(dbEntry)
@ -182,76 +160,12 @@ def Func():
result += name.replace(";\n", " = {\n").__add__(oam).__add__("};\n")
elif line.find("struct SamusAnimationData sSamusAnim") != -1:
# Generate anim data
pad: int = addr % 4
if pad != 0:
addr += pad
file.seek(addr)
# print("Extracting anim at " + hex(addr))
name: str = line.replace("extern ", "", 1)
size: int = int(line.split("[")[1].split("]")[0])
result += name.replace(";\n", " = {\n")
body: str = " = {\n\t\t.pTopGfx = ,\n\t\t.pBottomGfx = ,\n\t\t.pOam = ,\n\t\t.timer = "
for x in range(0, size):
if x != size - 1:
file.read(12)
timer: int = int.from_bytes(file.read(1), "little")
file.read(3)
result = result.__add__("\t[").__add__(str(x)).__add__("]").__add__(body).__add__(str(timer)).__add__(",\n\t},\n")
else:
file.read(16)
result = result.__add__("\t[").__add__(str(x)).__add__("] = SAMUS_ANIM_TERMINATOR\n")
addr += size * 16
file.seek(addr)
result += "};"
elif line.find("struct SamusEffectAnimationData sSamusEffectAnim") != -1:
# Generate anim data
pad: int = addr % 4
if pad != 0:
addr += pad
file.seek(addr)
# print("Extracting effect anim at " + hex(addr))
name: str = line.replace("extern ", "", 1)
size: int = int(line.split("[")[1].split("]")[0])
result += name.replace(";\n", " = {\n")
body: str = " = {\n\t\t.pGraphics = ,\n\t\t.pOam = ,\n\t\t.timer = "
for x in range(0, size):
if x != size - 1:
file.read(8)
timer: int = int.from_bytes(file.read(1), "little")
file.read(3)
result = result.__add__("\t[").__add__(str(x)).__add__("]").__add__(body).__add__(str(timer)).__add__(",\n\t},\n")
else:
file.read(12)
result = result.__add__("\t[").__add__(str(x)).__add__("] = SAMUS_EFFECT_ANIM_TERMINATOR\n")
addr += size * 12
file.seek(addr)
result += "};"
line = header.readline()
result += "\n"
return result
f = open("samus_graphics.txt", "w")
f = open("arm_cannon_data.txt", "w")
f.write(Func())
f.close()