Implement & link m_needlework.c

This commit is contained in:
Cuyler36
2023-04-29 13:27:49 -04:00
parent 1a18683a82
commit 1fb0b48ed8
5 changed files with 440 additions and 8 deletions
+2
View File
@@ -12,6 +12,8 @@ extern void JW_EndFrame();
extern void JW_JUTReport(int x, int y, int show_count, const char* fmt, ...);
extern void JW_SetLowResoMode(BOOL enable);
extern void JW_SetProgressiveMode(BOOL enable);
extern u32 JW_GetAramAddress(int resource_no);
extern u8* _JW_GetResourceAram(u32 aram_addr, u8* dst, size_t size);
extern void* JC_JFWSystem_getSystemConsole();
extern void* JC_JFWSystem_getRootHeap();
+7 -4
View File
@@ -18,6 +18,7 @@
#include "m_snowman.h"
#include "m_config.h"
#include "m_island.h"
#include "m_needlework.h"
#ifdef __cplusplus
extern "C" {
@@ -80,13 +81,15 @@ typedef struct Save_s {
/* 0x02138E */ u8 saved_rom_debug; /* flag to set save to 'debug rom' mode */
/* 0x02138F */ u8 _tmp5[0x11];
/* 0x0213A0 */ u8 keep_house_size[PLAYER_NUM]; /* saved flags for house sizes */
/* 0x0213A4 */ u8 _tmp6[0x1184];
/* 0x0213A4 */ u8 _tmp6[0x21400 - 0x213A4];
/* 0x021400 */ mNW_needlework_c needlework; /* Able Sisters' designs */
/* 0x022500 */ u8 _tmp7[0x22528 - 0x22500];
/* 0x022528 */ OSTime time_delta; /* time delta against GC RTC */
/* 0x022530 */ u8 _tmp7[0x10];
/* 0x022530 */ u8 _tmp8[0x10];
/* 0x022540 */ Island_c island; /* island data */
/* 0x023E40 */ u8 _tmp8[0x320];
/* 0x023E40 */ u8 _tmp9[0x320];
/* 0x024160 */ Anmret_c return_animal; /* information about villager which moved back in to your town after moving to someone else's town */
/* 0x02416C */ u8 _tmp9[0x1E94];
/* 0x02416C */ u8 _tmp10[0x1E94];
} Save_t;
typedef union save_u {
+32 -4
View File
@@ -8,9 +8,17 @@
extern "C" {
#endif
#define mNW_ORIGINAL_DESIGN_NAME_LEN 16
#define mNW_ORIGINAL_DESIGN_WIDTH 32
#define mNW_ORIGINAL_DESIGN_HEIGHT 32
#define mNW_ORIGINAL_DESIGN_NAME_LEN 16 /* length of design name */
#define mNW_ORIGINAL_DESIGN_WIDTH 32 /* width */
#define mNW_ORIGINAL_DESIGN_HEIGHT 32 /* height */
#define mNW_DEFAULT_ORIGINAL_TEX_NUM 4 /* number of 'default' player textures which are not blank */
#define mNW_CLOTH_DESIGN_NUM 4 /* number of clothing designs in Able Sisters' */
#define mNW_UMBRELLA_DESIGN_NUM 4 /* number of umbrella designs in Able Sisters' */
#define mNW_TOTAL_DESIGN_NUM (mNW_CLOTH_DESIGN_NUM + mNW_UMBRELLA_DESIGN_NUM) /* total designs in Able Sisters' */
#define mNW_DESIGN_TEX_SIZE (mNW_ORIGINAL_DESIGN_HEIGHT * (mNW_ORIGINAL_DESIGN_WIDTH / 2)) /* total texture data size */
#define mNW_PALETTE_COUNT 16 /* number of design palettes */
/* sizeof(mNW_original_design_c) == 0x220 */
typedef struct original_data_s {
@@ -18,9 +26,29 @@ typedef struct original_data_s {
/* 0x010 */ u8 palette;
/* 0x011 */ u8 pad[15];
/* 0x020 */ u8 design[mNW_ORIGINAL_DESIGN_HEIGHT * (mNW_ORIGINAL_DESIGN_WIDTH / 2)];
/* 0x020 */ u8 design[mNW_DESIGN_TEX_SIZE];
} mNW_original_design_c;
/* sizeof(mNW_needlework_c) == 0x1100 */
typedef struct needlework_s {
/* 0x0000 */ mNW_original_design_c original_design[mNW_TOTAL_DESIGN_NUM];
} mNW_needlework_c;
extern void mNW_InitMyOriginal();
extern void mNW_InitOneMyOriginal(int player_no);
extern void mNW_InitNeedleworkData();
extern void mNW_AGB_to_GC_texture(u8* agb, u8* gc);
extern void mNW_GC_to_Agb_texture(u8* gc, u8* agb);
extern u16* mNW_PaletteIdx2Palette(int palette_idx);
extern void mNW_CopyOriginalTextureClass(mNW_original_design_c* dst, mNW_original_design_c* src) ;
extern void mNW_CopyOriginalTexture(void* dst, mNW_original_design_c* src);
extern void mNW_CopyOriginalPalette(void* dst, mNW_original_design_c* src);
extern void mNW_OverWriteOriginalTexture(mNW_original_design_c* dst, u8* src);
extern void mNW_OverWriteOriginalName(mNW_original_design_c* dst, u8* src);
extern void mNW_SwapOriginalData(mNW_original_design_c* org0, mNW_original_design_c* org1);
extern void mNW_InitOriginalData(mNW_original_design_c* design);
extern void mNW_InitPrivateOriginalData(int player_no);
#ifdef __cplusplus
}
#endif