mirror of
https://github.com/zeldaret/af.git
synced 2026-09-26 21:35:21 -04:00
81b40ad296
* C file * func_8085DA28_jp, func_8085DA9C_jp * func_8085D638_jp * func_8085D358_jp, func_8085D500_jp, func_8085D674_jp * bleh * func_8085BAC0_jp * func_8085D128_jp * Rename many functions * mSM_move_menu * a * func_8085D43C_jp * mSM_set_char_matrix * mSM_cbuf_copy draft * mSM_cbuf_copy NON_EQUIVALENT * func_8085C20C_jp draft * match func_8085C20C_jp * cleanup unc_8085C20C_jp * func_8085C7A4_jp ok, func_8085C7B8_jp NON_EQUIVALENT * mSM_draw_mail NON_MATCHING * func_8085D094_jp * mSM_set_other_seg mSM_set_before_menu_proc * meh * mSM_move_Move * migrate data * move submenu overlays to the submenu folder and make headers for them * name some files based on rodata strings * name functions from known submenu overlays * mSM_move_chg_base * mSM_menu_ovl_init NON_MATCHING * migrate bss * mSM_menu_ovl_init * SubmenuProgramId * mSM_save_before_func * mSM_return_func NON_EQUIVALENT * some cleanup * rename lots of data * kinda format * more cleanup * symbolize remaining stuff * format * Kinda fix whatever is going on with Game_Play_unk_0110 * mroecleanup * name known overlays * tag_program_dlftbl, hand_program_dlftbl, haniwa_program_dlftbl * format * flag defines
56 lines
2.2 KiB
C
56 lines
2.2 KiB
C
#ifndef SYS_MATRIX_H
|
|
#define SYS_MATRIX_H
|
|
|
|
#include "ultra64.h"
|
|
#include "z64math.h"
|
|
|
|
struct GraphicsContext;
|
|
struct Game;
|
|
|
|
typedef enum {
|
|
/* 0 */ MTXMODE_NEW, // generates a new matrix
|
|
/* 1 */ MTXMODE_APPLY // applies transformation to the current matrix
|
|
} MatrixMode;
|
|
|
|
void new_Matrix(struct Game* game);
|
|
void Matrix_push(void);
|
|
void Matrix_pull(void);
|
|
void Matrix_get(MtxF* dest);
|
|
void Matrix_put(MtxF* src);
|
|
MtxF* get_Matrix_now(void);
|
|
void Matrix_mult(MtxF* mf, u8 mode);
|
|
void Matrix_translate(f32 x, f32 y, f32 z, u8 mode);
|
|
void Matrix_scale(f32 x, f32 y, f32 z, u8 mode);
|
|
void Matrix_RotateX(s16 x, MatrixMode mode);
|
|
void Matrix_RotateY(s16 y, MatrixMode mode);
|
|
void Matrix_RotateZ(s16 z, MatrixMode mode);
|
|
void Matrix_rotateXYZ(s16 x, s16 y, s16 z, MatrixMode mode);
|
|
void Matrix_softcv3_mult(Vec3f* translation, Vec3s* rot);
|
|
void Matrix_softcv3_load(f32 x, f32 y, f32 z, Vec3s* rot);
|
|
Mtx* _MtxF_to_Mtx(MtxF* src, Mtx* dest);
|
|
Mtx* _Matrix_to_Mtx(Mtx* dest);
|
|
Mtx* _Matrix_to_Mtx_new(struct GraphicsContext* gfxCtx);
|
|
void _MtxF_to_Mtx_new(MtxF* src, struct GraphicsContext* gfxCtx);
|
|
void Matrix_Position(Vec3f* src, Vec3f* dest);
|
|
void Matrix_Position_Zero(Vec3f* dest);
|
|
void Matrix_Position_VecX(f32 x, Vec3f* dest);
|
|
void Matrix_Position_VecY(f32 y, Vec3f* dest);
|
|
void Matrix_Position_VecZ(f32 z, Vec3f* dest);
|
|
void Matrix_copy_MtxF(MtxF* dest, MtxF* src);
|
|
void Matrix_MtxtoMtxF(Mtx* src, MtxF* dest);
|
|
void Matrix_MtxF_Position2(Vec3f* src, Vec3f* dest, MtxF* mf);
|
|
void Matrix_reverse(MtxF* mf);
|
|
void Matrix_rotate_scale_exchange(MtxF* mf);
|
|
void Matrix_to_rotate_new(MtxF* src, Vec3s* dest, s32 nonUniformScale);
|
|
void Matrix_to_rotate2_new(MtxF* src, Vec3s* dest, s32 nonUniformScale);
|
|
void Matrix_RotateVector(s16 angle, Vec3f* axis, u8 mode);
|
|
void suMtxMakeTS(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY, f32 translateZ);
|
|
void suMtxMakeSRT(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, s16 rotX, s16 rotY, s16 rotZ, f32 translateX,
|
|
f32 translateY, f32 translateZ);
|
|
void suMtxMakeSRT_ZXY(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, s16 rotX, s16 rotY, s16 rotZ, f32 translateX,
|
|
f32 translateY, f32 translateZ);
|
|
|
|
extern Mtx Mtx_clear;
|
|
|
|
#endif
|