mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-06-07 19:31:23 -04:00
Merge pull request #51 from Cuyler36/m_mail_password_check
Implement m_mail_password_check
This commit is contained in:
@@ -47,6 +47,9 @@ m_kabu_manager.c:
|
||||
m_malloc.c:
|
||||
.text: [0x803BC510, 0x803BC70C]
|
||||
.bss: [0x81297CA0, 0x81297CD0]
|
||||
m_mail_password_check.c:
|
||||
.text: [0x803BD250, 0x803BEC9C]
|
||||
.data: [0x806566C0, 0x806571D8]
|
||||
#m_lib.c: #sqrtf statics
|
||||
# .text: [0x803BAB0C, 0x803BB960]
|
||||
# .rodata: [0x80642640, 0x80642680]
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
#ifndef M_MAIL_PASSWORD_CHECK_H
|
||||
#define M_MAIL_PASSWORD_CHECK_H
|
||||
|
||||
#include "types.h"
|
||||
#include "m_private.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define mMpswd_PASSWORD_KEY_IDX 1
|
||||
#define mMpswd_PASSWORD_DATA_LEN 21
|
||||
#define mMpswd_PASSWORD_STR_LEN 28
|
||||
|
||||
#define mMpswd_BITMIX_CODE_IDX 1
|
||||
#define mMpswd_RSA_R_PRIME_IDX 5
|
||||
#define mMpswd_RSA_INFO_IDX 15
|
||||
#define mMpswd_RSA_KEYSAVE_IDX 20
|
||||
|
||||
#define mMpswd_SPECIAL_NPC_NUM 32
|
||||
|
||||
enum {
|
||||
mMpswd_CODETYPE_FAMICOM,
|
||||
mMpswd_CODETYPE_POPULAR,
|
||||
mMpswd_CODETYPE_CARD_E,
|
||||
mMpswd_CODETYPE_MAGAZINE,
|
||||
mMpswd_CODETYPE_USER,
|
||||
mMpswd_CODETYPE_CARD_E_MINI,
|
||||
|
||||
mMpswd_CODETYPE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mMpswd_NPCTYPE_NORMAL,
|
||||
mMpswd_NPCTYPE_SPECIAL,
|
||||
|
||||
mMpswd_NPCTYPE_NUM
|
||||
};
|
||||
|
||||
typedef struct mail_check_password_s {
|
||||
mActor_name_t item;
|
||||
u8 npc_type;
|
||||
u8 npc_code;
|
||||
u8 type;
|
||||
u8 hit_rate_index;
|
||||
u8 checksum;
|
||||
u8 str0[PLAYER_NAME_LEN];
|
||||
u8 str1[PLAYER_NAME_LEN];
|
||||
} mMpswd_password_c;
|
||||
|
||||
extern u32 pswd_famicom_list_max;
|
||||
extern u16 pswd_famicom_list[];
|
||||
|
||||
extern void mMpswd_make_password(
|
||||
u8* password_buf,
|
||||
int type,
|
||||
int hit_rate,
|
||||
u8* str0,
|
||||
u8* str1,
|
||||
mActor_name_t item,
|
||||
int npc_type,
|
||||
int npc_code
|
||||
);
|
||||
|
||||
extern int mMpswd_decode_code(u8* password_data, u8* password_str);
|
||||
extern int mMpswd_restore_code(u8* body, u8* password);
|
||||
extern void mMpswd_password(u8* password_data, mMpswd_password_c* password);
|
||||
extern int mMpswd_password_zuru_check(mMpswd_password_c* password);
|
||||
extern int mMpswd_check_present_user(mActor_name_t item);
|
||||
extern int mMpswd_check_present(mMpswd_password_c* password);
|
||||
extern mActor_name_t mMpswd_get_sp_npc_num(int sp_npc);
|
||||
extern int mMpswd_check_npc_code(mMpswd_password_c* password);
|
||||
extern int mMpswd_check_name(mMpswd_password_c* password);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
+166
-1
@@ -319,17 +319,101 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define SIGNBOARD6_PLR3 (SIGNBOARD5_PLR3 + 1)
|
||||
#define SIGNBOARD7_PLR3 (SIGNBOARD6_PLR3 + 1)
|
||||
|
||||
#define FTR0_START 0x1000
|
||||
|
||||
#define FTR_CLOTH_MANNIQUIN000_SOUTH 0x17AC
|
||||
|
||||
#define FTR_REDALOHASHIRT 0x1814
|
||||
|
||||
#define FTR_BLUEALOHASHIRT 0x1818
|
||||
|
||||
#define FTR_CLOTH_MANNIQUIN254_SOUTH 0x1BA4
|
||||
#define FTR_CLOTH_MANNIQUIN254_WEST 0x1BA7
|
||||
#define FTR_CLOTH_MANNIQUIN_MY_ORIGINAL0 0x1BA8
|
||||
|
||||
#define FTR_UMBRELLA00_SOUTH 0x1D08
|
||||
|
||||
#define FTR_UMBRELLA31_WEST 0x1D87
|
||||
|
||||
#define FTR0_END 0x1FFF
|
||||
|
||||
#define FTR_TAPEDECK 0x1E58
|
||||
|
||||
#define ITM_PAPER_START 0x2000
|
||||
#define ITM_PAPER_STACK_TWO_START 0x2040
|
||||
#define ITM_PAPER_STACK_THREE_START 0x2080
|
||||
#define ITM_PAPER_STACK_FOUR_START 0x20C0
|
||||
#define ITM_PAPER_END 0x2FFF
|
||||
|
||||
#define ITM_TOOL_START 0x2200
|
||||
#define ITM_NET ITM_TOOL_START
|
||||
#define ITM_AXE 0x2201
|
||||
#define ITM_SHOVEL 0x2202
|
||||
#define ITM_ROD 0x2203
|
||||
#define ITM_GELATO_UMBRELLA 0x2204
|
||||
#define ITM_DAFFODIL_PARASOL 0x2205
|
||||
// TODO: other umbrellas
|
||||
#define ITM_FLAME_UMBRELLA 0x2223
|
||||
#define ITM_MY_ORG_UMBRELLA0 0x2224
|
||||
#define ITM_MY_ORG_UMBRELLA1 0x2225
|
||||
#define ITM_MY_ORG_UMBRELLA2 0x2226
|
||||
#define ITM_MY_ORG_UMBRELLA3 0x2227
|
||||
#define ITM_MY_ORG_UMBRELLA4 0x2228
|
||||
#define ITM_MY_ORG_UMBRELLA5 0x2229
|
||||
#define ITM_MY_ORG_UMBRELLA6 0x222A
|
||||
#define ITM_MY_ORG_UMBRELLA7 0x222B
|
||||
#define ITM_SICKLE 0x222C
|
||||
#define ITM_RED_PAINT 0x222D
|
||||
#define ITM_ORANGE_PAINT 0x222E
|
||||
#define ITM_YELLOW_PAINT 0x222F
|
||||
#define ITM_PALE_GREEN_PAINT 0x2230
|
||||
#define ITM_GREEN_PAINT 0x2231
|
||||
#define ITM_SKY_BLUE_PAINT 0x2232
|
||||
#define ITM_BLUE_PAINT 0x2233
|
||||
#define ITM_PURPLE_PAINT 0x2234
|
||||
#define ITM_PINK_PAINT 0x2235
|
||||
#define ITM_BLACK_PAINT 0x2236
|
||||
#define ITM_WHITE_PAINT 0x2237
|
||||
#define ITM_BROWN_PAINT 0x2238
|
||||
#define ITM_GOLDEN_NET 0x2239
|
||||
#define ITM_GOLDEN_AXE 0x223A
|
||||
#define ITM_GOLDEN_SHOVEL 0x223B
|
||||
#define ITM_GOLDEN_ROD 0x223C
|
||||
#define ITM_AXE_USE_1 0x223D
|
||||
#define ITM_AXE_USE_2 0x223E
|
||||
#define ITM_AXE_USE_3 0x223F
|
||||
#define ITM_AXE_USE_4 0x2240
|
||||
#define ITM_AXE_USE_5 0x2241
|
||||
#define ITM_AXE_USE_6 0x2242
|
||||
#define ITM_AXE_USE_7 0x2243
|
||||
#define ITM_RED_BALLOON 0x2244
|
||||
#define ITM_YELLOW_BALLOON 0x2245
|
||||
#define ITM_BLUE_BALLOON 0x2246
|
||||
#define ITM_GREEN_BALLOON 0x2247
|
||||
#define ITM_PURPLE_BALLOON 0x2248
|
||||
#define ITM_BUNNY_P_BALLOON 0x2249
|
||||
#define ITM_BUNNY_B_BALLOON 0x224A
|
||||
#define ITM_BUNNY_O_BALLOON 0x224B
|
||||
#define ITM_YELLOW_PINWHEEL 0x224C
|
||||
#define ITM_RED_PINWHEEL 0x224D
|
||||
#define ITM_TIGER_PINWHEEL 0x224E
|
||||
#define ITM_GREEN_PINWHEEL 0x224F
|
||||
#define ITM_PINK_PINWHEEL 0x2250
|
||||
#define ITM_STRIPED_PINWHEEL 0x2251
|
||||
#define ITM_FLOWER_PINWHEEL 0x2252
|
||||
#define ITM_FANCY_PINWHEEL 0x2253
|
||||
#define ITM_BLUEBELL_FAN 0x2254
|
||||
#define ITM_PLUM_FAN 0x2255
|
||||
#define ITM_BAMBOO_FAN 0x2256
|
||||
#define ITM_CLOUD_FAN 0x2257
|
||||
#define ITM_MAPLE_FAN 0x2258
|
||||
#define ITM_FAN_FAN 0x2259
|
||||
#define ITM_FLOWER_FAN 0x225A
|
||||
#define ITM_LEAF_FAN 0x225B
|
||||
#define ITM_TOOL_END (ITM_LEAF_FAN + 1)
|
||||
|
||||
#define ITM_CLOTH_START 0x2400
|
||||
#define ITM_CLOTH_END 0x24FF
|
||||
|
||||
#define ITM_DUST0_EMPTY_CAN 0x250E
|
||||
#define ITM_DUST1_BOOT 0x250F
|
||||
@@ -355,7 +439,10 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define ITM_WHITE_TULIP_BAG 0x2909
|
||||
#define ITEM_YELLOW_TULIP_BAG 0x290A
|
||||
|
||||
#define ITM_COLLEGERULE 0x2B00
|
||||
#define ITM_DIARY_START 0x2B00
|
||||
#define ITM_COLLEGERULE ITM_DIARY_START
|
||||
#define ITM_CALLIGRAPHY_PAD 0x2B0F
|
||||
#define ITM_DIARY_END 0x2B10
|
||||
|
||||
#define ITM_KABU_10 0x2F00
|
||||
#define ITM_KABU_50 0x2F01
|
||||
@@ -363,6 +450,8 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
#define ITM_KABU_SPOILED 0x2F03
|
||||
|
||||
#define FTR_ORANGEBOX 0x30F8
|
||||
#define FTR_COLLEGERULE_SOUTH 0x30FC
|
||||
#define FTR_CALLIGRAPHY_PAD_WEST 0x313B
|
||||
|
||||
#define DOOR_START 0x4000
|
||||
#define DOOR0 DOOR_START /* 0x4000 */
|
||||
@@ -370,6 +459,82 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
|
||||
#define EXIT_DOOR 0x4080
|
||||
|
||||
#define SP_NPC_START 0xD000
|
||||
#define SP_NPC_ARTIST (SP_NPC_START + 0) // D000
|
||||
#define SP_NPC_BROKER (SP_NPC_START + 1) // D001
|
||||
#define SP_NPC_DESIGNER (SP_NPC_START + 2) // D002
|
||||
#define SP_NPC_POST_GIRL (SP_NPC_START + 3) // D003
|
||||
#define SP_NPC_GUIDE (SP_NPC_START + 4) // D004
|
||||
#define SP_NPC_GUIDE2 (SP_NPC_START + 5) // D005
|
||||
#define SP_NPC_CARPETPEDDLER (SP_NPC_START + 6) // D006
|
||||
#define SP_NPC_KABUPEDDLER (SP_NPC_START + 7) // D007
|
||||
#define SP_NPC_SHOP_MASTER (SP_NPC_START + 8) // D008
|
||||
#define SP_NPC_CONV_MASTER (SP_NPC_START + 9) // D009
|
||||
#define SP_NPC_SUPER_MASTER (SP_NPC_START + 10) // D00A
|
||||
#define SP_NPC_DEPART_MASTER (SP_NPC_START + 11) // D00B
|
||||
#define SP_NPC_GYPSY (SP_NPC_START + 12) // D00C
|
||||
#define SP_NPC_POLICE (SP_NPC_START + 13) // D00D
|
||||
#define SP_NPC_STATION_MASTER (SP_NPC_START + 14) // D00E
|
||||
#define SP_NPC_SANTA (SP_NPC_START + 15) // D00F
|
||||
#define SP_NPC_POLICE2 (SP_NPC_START + 16) // D010
|
||||
#define SP_NPC_POST_MAN (SP_NPC_START + 17) // D011
|
||||
#define SP_NPC_POST_GIRL2 (SP_NPC_START + 18) // D012
|
||||
#define SP_NPC_EV_BROKER2 (SP_NPC_START + 19) // D013
|
||||
#define SP_NPC_RCN_GUIDE (SP_NPC_START + 20) // D014
|
||||
//
|
||||
#define SP_NPC_P_SEL (SP_NPC_START + 24) // D018
|
||||
#define SP_NPC_RCN_GUIDE2 (SP_NPC_START + 25) // D019
|
||||
//
|
||||
#define SP_NPC_ANGLER (SP_NPC_START + 29) // D01D
|
||||
#define SP_NPC_SHOP_MASTERSP (SP_NPC_START + 30) // D01E
|
||||
#define SP_NPC_P_SEL2 (SP_NPC_START + 31) // D01F
|
||||
//
|
||||
#define SP_NPC_HALLOWEEN (SP_NPC_START + 37) // D025
|
||||
#define SP_NPC_MAMEDANUKI0 (SP_NPC_START + 38) // D026
|
||||
//
|
||||
#define SP_NPC_EV_YOMISE (SP_NPC_START + 44) // D02C
|
||||
//
|
||||
#define SP_NPC_MAMEDANUKI1 (SP_NPC_START + 55) // D037
|
||||
#define SP_NPC_SLEEP_OBABA (SP_NPC_START + 56) // D038
|
||||
//
|
||||
#define SP_NPC_EV_MIKO (SP_NPC_START + 61) // D03D
|
||||
#define SP_NPC_MAJIN (SP_NPC_START + 62) // D03E
|
||||
//
|
||||
#define SP_NPC_TOTAKEKE (SP_NPC_START + 93) // D05D
|
||||
//
|
||||
#define SP_NPC_EV_DOZAEMON (SP_NPC_START + 100) // D064
|
||||
#define SP_NPC_MAJIN2 (SP_NPC_START + 101) // D065
|
||||
#define SP_NPC_RTC (SP_NPC_START + 102) // D066
|
||||
#define SP_NPC_ENGINEER (SP_NPC_START + 103) // D067
|
||||
#define SP_NPC_MAJIN3 (SP_NPC_START + 104) // D068
|
||||
#define SP_NPC_MAJIN4 (SP_NPC_START + 105) // D069
|
||||
#define SP_NPC_RESTART (SP_NPC_START + 106) // D06A
|
||||
#define SP_NPC_MAJIN5 (SP_NPC_START + 107) // D06B
|
||||
#define SP_NPC_EV_DOKUTU (SP_NPC_START + 108) // D06C
|
||||
#define SP_NPC_CURATOR (SP_NPC_START + 109) // D06D
|
||||
#define SP_NPC_EV_SONCHO (SP_NPC_START + 110) // D06E
|
||||
#define SP_NPC_EV_GHOST (SP_NPC_START + 111) // D06F
|
||||
#define SP_NPC_NEEDLEWORK0 (SP_NPC_START + 112) // D070
|
||||
#define SP_NPC_NEEDLEWORK1 (SP_NPC_START + 113) // D071
|
||||
#define SP_NPC_SENDO (SP_NPC_START + 114) // D072
|
||||
//
|
||||
#define SP_NPC_EV_SONCHO2 (SP_NPC_START + 116) // D074
|
||||
#define SP_NPC_MASK_CAT (SP_NPC_START + 117) // D075
|
||||
#define SP_NPC_MASK_CAT2 (SP_NPC_START + 118) // D076
|
||||
//
|
||||
#define SP_NPC_SASHO (SP_NPC_START + 122) // D07A
|
||||
//
|
||||
#define SP_NPC_MAJIN_BROTHER (SP_NPC_START + 126) // D07E
|
||||
#define SP_NPC_SONCHO (SP_NPC_START + 127) // D07F
|
||||
//
|
||||
#define SP_NPC_EV_MAJIN (SP_NPC_START + 129) // D081
|
||||
//
|
||||
#define SP_NPC_EV_SPEECH_SONCHO (SP_NPC_START + 135) // D087
|
||||
//
|
||||
#define SP_NPC_TURKEY (SP_NPC_START + 141) // D08D
|
||||
#define SP_NPC_HEM (SP_NPC_START + 142) // D08E
|
||||
|
||||
|
||||
#define NPC_START 0xE000
|
||||
#define NPC_BOB NPC_START
|
||||
// TODO: Finish
|
||||
|
||||
@@ -20,6 +20,8 @@ extern "C" {
|
||||
#define mNpc_GET_TYPE(npc_id) ((npc_id) & 0xF000)
|
||||
#define mNpc_IS_SPECIAL(npc_id) (mNpc_GET_TYPE(npc_id) == 0xD000)
|
||||
|
||||
#define NPC_NUM 236
|
||||
|
||||
#define ANIMAL_NUM_MAX 15 /* Maximum number of villagers possible in town */
|
||||
#define ANIMAL_MEMORY_NUM 7
|
||||
#define ANIMAL_CATCHPHRASE_LEN 10
|
||||
|
||||
+2
-1
@@ -179,7 +179,8 @@ extern int mPr_NullCheckPersonalID(PersonalID_c* pid);
|
||||
extern int mPr_CheckCmpPersonalID(PersonalID_c* pid_a, PersonalID_c* pid_b);
|
||||
extern void mPr_ClearPersonalID(PersonalID_c* pid);
|
||||
extern void mPr_CopyPersonalID(PersonalID_c* dst, PersonalID_c* src);
|
||||
extern void mPr_ClearPrivateInfo(Private_c* private);
|
||||
extern void mPr_ClearPrivateInfo(Private_c* private_data);
|
||||
extern int mPr_CheckCmpPlayerName(u8* str0, u8* str1);
|
||||
extern void mPr_RandomSetPlayerData_title_demo();
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -16,6 +16,49 @@ enum {
|
||||
mRmTp_FTRSIZE_NUM
|
||||
};
|
||||
|
||||
enum birth_type {
|
||||
mRmTp_BIRTH_TYPE_GRP_A = 0,
|
||||
mRmTp_BIRTH_TYPE_GRP_B = 1,
|
||||
mRmTp_BIRTH_TYPE_GRP_C = 2,
|
||||
mRmTp_BIRTH_TYPE_EVENT = 3,
|
||||
mRmTp_BIRTH_TYPE_BIRTHDAY = 4,
|
||||
mRmTp_BIRTH_TYPE_HALLOWEEN = 5,
|
||||
mRmTp_BIRTH_TYPE_HANIWA = 6,
|
||||
mRmTp_BIRTH_TYPE_LOTTERY = 7,
|
||||
mRmTp_BIRTH_TYPE_FTR_CLOTH = 8,
|
||||
mRmTp_BIRTH_TYPE_FTR_UMBRELLA = 9,
|
||||
mRmTp_BIRTH_TYPE_FTR_INSECT = 10,
|
||||
mRmTp_BIRTH_TYPE_FTR_FISH = 11,
|
||||
mRmTp_BIRTH_TYPE_SINGLE_FOSSIL = 12,
|
||||
mRmTp_BIRTH_TYPE_MULTI_FOSSIL = 13,
|
||||
mRmTp_BIRTH_TYPE_XMAS = 14,
|
||||
mRmTp_BIRTH_TYPE_SANTA = 15,
|
||||
mRmTp_BIRTH_TYPE_UNOBTAINABLE = 16,
|
||||
mRmTp_BIRTH_TYPE_SNOWMAN = 17,
|
||||
mRmTp_BIRTH_TYPE_HALLOWEEN_TRICK = 18,
|
||||
mRmTp_BIRTH_TYPE_POST_OFFICE = 19,
|
||||
mRmTp_BIRTH_TYPE_MARK_ROOM = 20,
|
||||
mRmTp_BIRTH_TYPE_SONCHO = 21,
|
||||
mRmTp_BIRTH_TYPE_JONASON = 22,
|
||||
mRmTp_BIRTH_TYPE_UNUSED_23 = 23,
|
||||
mRmTp_BIRTH_TYPE_FAMICOM_EREADER = 24,
|
||||
mRmTp_BIRTH_TYPE_ISLAND = 25,
|
||||
mRmTp_BIRTH_TYPE_FAMICOM_ISLAND = 26,
|
||||
mRmTp_BIRTH_TYPE_MY_ORIGINAL = 27,
|
||||
mRmTp_BIRTH_TYPE_FAMICOM_CODE = 28,
|
||||
mRmTp_BIRTH_TYPE_MUSEUM = 29,
|
||||
mRmTp_BIRTH_TYPE_SONCHO_LIGHTHOUSE_QUEST = 30,
|
||||
mRmTp_BIRTH_TYPE_FTR_DIARY = 31,
|
||||
mRmTp_BIRTH_TYPE_GROUNDHOG = 32,
|
||||
mRmTp_BIRTH_TYPE_KAMAKURA = 33,
|
||||
mRmTp_BIRTH_TYPE_NINTENDO_CODE = 34,
|
||||
mRmTp_BIRTH_TYPE_HARVEST_FESTIVAL = 35,
|
||||
mRmTp_BIRTH_TYPE_UNUSED_36 = 36,
|
||||
mRmTp_BIRTH_TYPE_SUMMER_CAMPER = 37,
|
||||
|
||||
mRmTp_BIRTH_TYPE_NUM
|
||||
};
|
||||
|
||||
typedef struct room_type_place_info_one_s {
|
||||
int exists;
|
||||
int ut_x;
|
||||
@@ -61,6 +104,8 @@ extern void mRmTp_MakeFamicom_Fdebug();
|
||||
|
||||
extern mActor_name_t mRmTp_FtrItemNo2Item1ItemNo(mActor_name_t ftr_item_no, void* unused); /* second paramter is probably GAME*? */
|
||||
extern int mRmTp_FtrItemNo2FtrIdx(mActor_name_t ftr_item_no);
|
||||
extern mActor_name_t mRmTp_FtrIdx2FtrItemNo(int ftr_idx, int rotation);
|
||||
extern int mRmTp_GetFurnitureData(mActor_name_t ftr, int ut_x, int ut_z, mRmTp_FtrPlaceInfo_t* place_info);
|
||||
extern int mRmTp_FurnitureIdx2FurnitureKind(int ftr_idx);
|
||||
|
||||
#endif
|
||||
@@ -127,6 +127,8 @@ extern void mSP_PrintNowShopSalesSum(gfxprint_t* gfxprint);
|
||||
extern void mSP_SelectRandomItem_New(GAME* unused, mActor_name_t* item_tbl, int item_tbl_count, mActor_name_t* goods_exist_tbl, int goods_exist_tbl_count, int category, int list_type, int get_uncollected_item);
|
||||
extern void mSP_RandomUmbSelect(mActor_name_t* item_buf, int item_buf_count);
|
||||
extern int mSP_GetShopLevel();
|
||||
extern u32 mSP_ItemNo2ItemPrice(mActor_name_t item_no);
|
||||
extern int mSP_SearchItemCategoryPriority(mActor_name_t item_no, int category, int priority, GAME* unused); // not sure if it's actually a GAME*
|
||||
|
||||
extern void mItemDebug_ItemDebugMain();
|
||||
extern void mItemDebug_ItemDebugDraw(gfxprint_t* gfxprint);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user