mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 14:41:38 -04:00
Implement m_lib and some header file defintions
This commit is contained in:
+6
-2
@@ -54,10 +54,14 @@ do { \
|
||||
|
||||
extern void game_get_controller(GAME* game);
|
||||
|
||||
extern GAME* game_class_p;
|
||||
|
||||
extern GAME* gamePT;
|
||||
|
||||
extern GAME* game_class_p;
|
||||
extern u8 game_GameFrame;
|
||||
extern float game_GameFrameF;
|
||||
extern float game_GameFrame_2F;
|
||||
extern float game_GameFrame__1F;
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef M_ACTOR_H
|
||||
#define M_ACTOR_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct actor_s {
|
||||
/* TODO ... */
|
||||
} ACTOR;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -30,8 +30,8 @@ typedef int (save_check_proc)(void);
|
||||
|
||||
extern void mFRm_set_msg_idx(int idx);
|
||||
extern int mFRm_get_msg_idx();
|
||||
extern u16 mFRm_ReturnCheckSum(u16* data, s32 size);
|
||||
extern u16 mFRm_GetFlatCheckSum(u16* data, s32 size, s16 now_checksum);
|
||||
extern u16 mFRm_ReturnCheckSum(u16* data, int size);
|
||||
extern u16 mFRm_GetFlatCheckSum(u16* data, int size, u16 now_checksum);
|
||||
extern int mFRm_CheckSaveData_ID(mFRm_chk_t* save_check);
|
||||
extern int mFRm_CheckSaveData_common(mFRm_chk_t* save_check, u16 land_id);
|
||||
extern int mFRm_CheckSaveData();
|
||||
|
||||
@@ -7,6 +7,50 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define HANIWA_ITEM_HOLD_NUM 4
|
||||
#define HANIWA_MESSAGE_LEN 128
|
||||
|
||||
/* sizeof(mHm_rmsz_c) == 6 */
|
||||
typedef struct home_size_info_s {
|
||||
/* 0x00 */ u8 day;
|
||||
/* 0x01 */ u8 month;
|
||||
/* 0x02 */ u8 year;
|
||||
|
||||
/* 0x04 */ u8 size:3;
|
||||
/* 0x04 */ u8 next_size:3;
|
||||
/* 0x04 */ u8 statue_rank:2;
|
||||
/* 0x05 */ u8 renew:1;
|
||||
/* 0x05 */ u8 statue_ordered:1;
|
||||
/* 0x05 */ u8 basement_ordered:1;
|
||||
/* 0x05 */ u8 pad:5;
|
||||
} mHm_rmsz_c;
|
||||
|
||||
/* sizeof(Haniwa_Item_c) == 8 */
|
||||
typedef struct home_haniwa_item_s {
|
||||
/* 0x00 */ mActor_name_t item;
|
||||
/* 0x02 */ s16 exchange_type;
|
||||
/* 0x04 */ u32 extra_data;
|
||||
} Haniwa_Item_c;
|
||||
|
||||
/* sizeof(Haniwa_c) == 0xA4 */
|
||||
typedef struct home_haniwa_s {
|
||||
/* 0x00 */ Haniwa_Item_c items[HANIWA_ITEM_HOLD_NUM];
|
||||
/* 0x20 */ u8 message[HANIWA_MESSAGE_LEN];
|
||||
/* 0xA0 */ u32 bells;
|
||||
} Haniwa_c;
|
||||
|
||||
/* sizeof(mHm_wf_c) == 2 */
|
||||
typedef struct home_wall_floor_s {
|
||||
/* 0x00 */ u8 flooring_idx;
|
||||
/* 0x01 */ u8 wallpaper_idx;
|
||||
} mHm_wf_c;
|
||||
|
||||
/* sizeof(mHm_goki_c) == 0xA */
|
||||
typedef struct home_goki_s {
|
||||
/* 0x00 */ lbRTC_time_c time;
|
||||
/* 0x08 */ u8 num;
|
||||
} mHm_goki_c;
|
||||
|
||||
extern void mHm_ClearAllHomeInfo();
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
+48
-35
@@ -2,11 +2,19 @@
|
||||
#define M_LIB_H
|
||||
|
||||
#include "types.h"
|
||||
#include "m_play.h"
|
||||
#include "m_actor.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SHT_MAX 32767.0f
|
||||
#define SHT_MINV (1.0f / SHT_MAX)
|
||||
#define ABS(x) ((x) >= 0) ? (x) : -(x)
|
||||
#define SQ(x) ((x)*(x))
|
||||
|
||||
typedef struct xy_s {
|
||||
typedef struct xy_s {
|
||||
f32 x, y;
|
||||
} xy_t;
|
||||
|
||||
@@ -22,49 +30,54 @@ typedef struct rgba_t { //can be put in other place
|
||||
u8 r, g, b, a;
|
||||
} rgba_t;
|
||||
|
||||
extern void mem_copy(u8*, u8*, u32);
|
||||
extern void mem_clear(u8*, u32, u8);
|
||||
extern s32 mem_cmp(u8*, u8*, u32);
|
||||
extern void mem_copy(u8* dst, u8* src, size_t size);
|
||||
extern void mem_clear(u8* dst, size_t size, u8 val);
|
||||
extern int mem_cmp(u8* p1, u8* p2, size_t size);
|
||||
|
||||
extern f32 sin_s(s16);
|
||||
extern f32 cos_s(s16);
|
||||
extern f32 cos_s(s16 angle);
|
||||
extern f32 sin_s(s16 angle);
|
||||
|
||||
extern s32 chase_angle(s16*, s16, s16);
|
||||
extern s32 chase_s(s16*, s16, s16);
|
||||
extern s32 chase_f(f32*, f32, f32);
|
||||
extern f32 chase_xyz_t(xyz_t*, xyz_t*, f32);
|
||||
extern s32 chase_angle2(s16*, s16, s16);
|
||||
extern int chase_angle(s16* const pValue, const s16 target, s16 step);
|
||||
extern int chase_s(s16* const pValue, const s16 target, s16 step);
|
||||
extern int chase_f(f32* const pValue, const f32 target, f32 step);
|
||||
extern f32 chase_xyz_t(xyz_t* const pValue, const xyz_t* const target, const f32 fraction);
|
||||
extern int chase_angle2(s16* const pValue, const s16 limit, const s16 step);
|
||||
|
||||
extern void inter_float(f32*, f32, s32);
|
||||
extern s16 get_random_timer(s16, s16);
|
||||
extern void inter_float(f32* const pValue, const f32 arg1, const int step);
|
||||
extern s16 get_random_timer(const s16 base, const s16 range);
|
||||
|
||||
extern void xyz_t_move(xyz_t*, xyz_t*);
|
||||
extern void xyz_t_move_s_xyz(xyz_t*, s_xyz*);
|
||||
extern void xyz_t_add(xyz_t*, xyz_t*, xyz_t*);
|
||||
extern void xyz_t_sub(xyz_t*, xyz_t*, xyz_t*);
|
||||
extern void xyz_t_mult_v(xyz_t*, f32);
|
||||
extern void xyz_t_move(xyz_t* const dest, const xyz_t* const src);
|
||||
extern void xyz_t_move_s_xyz(xyz_t* const dest, const s_xyz* const src);
|
||||
extern void xyz_t_add(const xyz_t* const augend, const xyz_t* const addend, xyz_t* const total);
|
||||
extern void xyz_t_sub(const xyz_t* const minuend, const xyz_t* const subtrahend, xyz_t* const diff);
|
||||
extern void xyz_t_mult_v(xyz_t* const multiplicand, const f32 multiplier);
|
||||
|
||||
extern f32 search_position_distance(xyz_t*, xyz_t*);
|
||||
extern f32 search_position_distanceXZ(xyz_t*, xyz_t*);
|
||||
extern s16 search_position_angleY(xyz_t*, xyz_t*);
|
||||
extern s16 search_position_angleX(xyz_t*, xyz_t*);
|
||||
extern f32 search_position_distance(const xyz_t* const pos, const xyz_t* const target);
|
||||
extern f32 search_position_distanceXZ(const xyz_t* const pos, const xyz_t* const target);
|
||||
extern s16 search_position_angleY(const xyz_t* const pos, const xyz_t* const target);
|
||||
extern s16 search_position_angleX(const xyz_t* const pos, const xyz_t* const target);
|
||||
|
||||
extern void add_calc2(f32*, f32, f32, f32);
|
||||
extern void add_calc0(f32*, f32, f32);
|
||||
extern f32 add_calc(f32* pValue, f32 target, f32 fraction, f32 maxStep, f32 minStep);
|
||||
extern void add_calc2(f32* pValue, f32 target, f32 fraction, f32 maxStep);
|
||||
extern void add_calc0(f32* pValue, f32 fraction, f32 maxStep);
|
||||
|
||||
extern s16 add_calc_short_angle2(s16*, s16, f32, s16, s16);
|
||||
extern s16 add_calc_short_angle3(s16*, s16, f32, s16, s16);
|
||||
extern s16 add_calc_short_angle2(s16* pValue, s16 target, f32 fraction, s16 maxStep, s16 minStep);
|
||||
extern s16 add_calc_short_angle3(s16* pValue, s16 target, f32 fraction, s16 maxStep, s16 minStep);
|
||||
|
||||
extern void rgba_t_move(rgba_t*, rgba_t*);
|
||||
extern void rgba_t_move(rgba_t* dest, const rgba_t* const src);
|
||||
|
||||
extern u32 none_proc1(void);
|
||||
extern void none_proc2(void);
|
||||
extern int none_proc1();
|
||||
extern void none_proc2(ACTOR* actor, GAME* game);
|
||||
|
||||
extern void _Game_play_isPause(u32); //IDK
|
||||
extern int _Game_play_isPause(GAME_PLAY* play);
|
||||
extern f32 check_percent_abs(f32 x, f32 min, f32 max, f32 scale, s32 shift_by_min);
|
||||
extern f32 get_percent_forAccelBrake(f32 now, f32 start, f32 end, f32 accelerate, f32 brake);
|
||||
extern void Game_play_Projection_Trans(GAME_PLAY* play, xyz_t* wpos, xyz_t* screen_pos);
|
||||
|
||||
extern f32 get_percent(int max, int min, int x);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
//Unsure
|
||||
//?? check_percent_abs();
|
||||
//?? get_percent_forAccelBrake();
|
||||
//void Game_play_Projection_Trans(game_play*, Vec3f*, Vec3f);
|
||||
extern f32 get_percent(s32, s32, s32);
|
||||
#endif
|
||||
@@ -0,0 +1,66 @@
|
||||
#ifndef M_MAIL_H
|
||||
#define M_MAIL_H
|
||||
|
||||
#include "types.h"
|
||||
#include "m_personal_id.h"
|
||||
#include "m_actor_type.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define MAIL_HEADER_LEN (32 - PLAYER_NAME_LEN)
|
||||
#define MAIL_FOOTER_LEN 32
|
||||
#define MAIL_BODY_LEN 192
|
||||
|
||||
enum {
|
||||
mMl_NAME_TYPE_PLAYER,
|
||||
mMl_NAME_TYPE_NPC,
|
||||
mMl_NAME_TYPE_MUSEUM,
|
||||
|
||||
mMl_TYPE_CLEAR = 0xFF
|
||||
};
|
||||
|
||||
/* sizeof(Mail_nm_c) == 0x16 */
|
||||
typedef struct mail_nm_s {
|
||||
/* 0x00 */ PersonalID_c personalID;
|
||||
/* 0x14 */ u8 type;
|
||||
} Mail_nm_c;
|
||||
|
||||
/* sizeof(mail_header_save_s) == 0x3A */
|
||||
typedef struct mail_header_save_s {
|
||||
/* 0x00 */ s8 header_back_start;
|
||||
/* 0x01 */ u8 unknown;
|
||||
/* 0x02 */ u8 header[MAIL_HEADER_LEN];
|
||||
/* 0x1A */ u8 footer[MAIL_FOOTER_LEN];
|
||||
} Mail_hs_c;
|
||||
|
||||
/* sizeof(Mail_hdr_c) == 0x2C */
|
||||
typedef struct mail_header_s {
|
||||
/* 0x00 */ Mail_nm_c recipient;
|
||||
/* 0x16 */ Mail_nm_c sender;
|
||||
} Mail_hdr_c;
|
||||
|
||||
/* sizeof(Mail_ct_c) == 0xFC */
|
||||
typedef struct mail_content_s {
|
||||
/* 0x00 */ u8 font;
|
||||
/* 0x01 */ u8 header_back_start;
|
||||
/* 0x02 */ u8 mail_type;
|
||||
/* 0x03 */ u8 paper_type;
|
||||
/* 0x04 */ u8 header[MAIL_HEADER_LEN];
|
||||
/* 0x1C */ u8 body[MAIL_BODY_LEN];
|
||||
/* 0xDC */ u8 footer[MAIL_FOOTER_LEN];
|
||||
} Mail_ct_c;
|
||||
|
||||
/* sizeof(Mail_c) == 0x12A */
|
||||
typedef struct mail_s {
|
||||
/* 0x000 */ Mail_hdr_c header;
|
||||
/* 0x02C */ mActor_name_t present;
|
||||
/* 0x02E */ Mail_ct_c content;
|
||||
} Mail_c;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef M_PERSONAL_ID_H
|
||||
#define M_PERSONAL_ID_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "m_land_h.h"
|
||||
#include "m_actor_type.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define PLAYER_NAME_LEN 8
|
||||
|
||||
/* sizeof(PersonalID_c) == 0x14 */
|
||||
typedef struct personal_id_s {
|
||||
/* 0x00 */ u8 player_name[PLAYER_NAME_LEN];
|
||||
/* 0x08 */ u8 land_name[LAND_NAME_SIZE];
|
||||
/* 0x10 */ u16 player_id;
|
||||
/* 0x12 */ u16 land_id;
|
||||
} PersonalID_c;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
+5
-1
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "game.h"
|
||||
#include "libultra/ultratypes.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -12,7 +13,10 @@ extern "C" {
|
||||
typedef struct game_play_s {
|
||||
/* 0x0000 */ GAME game;
|
||||
// TODO: finish
|
||||
/* 0x00E0 */ u8 _temp[0x2520];
|
||||
/* 0x00E0 */ u8 d[0x1CC0];
|
||||
/* 0x1DA0*/ int isPause;
|
||||
/* 0x1DA4*/ u8 _temp[0x268];
|
||||
/* 0x200C*/ MtxF matrix;
|
||||
} GAME_PLAY;
|
||||
|
||||
extern void play_init(GAME_PLAY* play);
|
||||
|
||||
@@ -10,6 +10,9 @@ extern "C" {
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
#define SCREEN_WIDTH_F ((f32)SCREEN_WIDTH)
|
||||
#define SCREEN_HEIGHT_F ((f32)SCREEN_HEIGHT)
|
||||
|
||||
extern int ScreenWidth;
|
||||
extern int ScreenHeight;
|
||||
|
||||
|
||||
+839
-330
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user