You've already forked smb-decomp
mirror of
https://github.com/encounter/smb-decomp.git
synced 2026-03-30 11:38:28 -07:00
85e42eb3ec
* Rename stcoli functions * Add gen_compile_commands.py script * Add shebang * gen_compile_commands: pretend to be GCC * Separately compilable game headers * Separately compilable system dolphin headers * Work in progress starting stcoli.c * Partially label PhysicsBall type And some stcoli funcs * Stcoli labelling * Add Vec2d type * Collision body labels * StageGoal labels * More goal labels * gen_compile_commands.py: Prefer nonmatching C to matching asm * sda2-^>_SDA2_BASE_ in stcoli.s * Match first stcoli function (dol not matching atm though) * Fix float literals (still not OK) * gen_compile_commands.py absolute paths (needed on Linux?) * gen_compile_commands.py fixes - Export absolute paths, even on Linux - Add some defines so more C code is exposed for clangd - Remove extraneous spaces in output - Executable bit * Executable bit * stcoli: match function 2 (meshcoli_grid_lookup()) Didn't fix asm/float literals though * Small refactor fixes * First 2 stcoli functions OK * PhysicsBall labels * Decompile stcoli_sub03 DOL not matching again though... * Fix stcoli.s sdata2 alignment after stcoli.c's * Stcoli func labels * Format somewhat more reasonably * Decompile stcoli_sub04 * Decompile stcoli_sub05 Small stcoli_sub05 cleanup static.lcf * Labelling Labelling Labelling Labelling Labelling * Coli struct labels * Decompile collide_ball_with_tri_verts * Decompile collide_ball_with_tri_vert * Small labels * Move vec mag sq function to mathutil.h * Decompile collide_ball_with_rect * More labels * Even more labels * Decompile collide_ball_with_cylinder Cleanup * Correct mathutil ifdefs * Decompile collide_ball_with_circle * Format * Labels * Decompile g_collide_ball_with_sphere * Decompile g_collide_ball_with_cone * Little labelling * Update static.lcf * PhysicsBall labels * hit -> plane * PhysicsBall docs * Add .clang-format Not everything follows this but it's generally close to the observed style * Rename, and tidy unused stack vars * Misc * Remove duplicate ColiRect type * Label check_ball_in_goal() * Rename stagedef itemgroupo init pos/rot * Decompile collide_ball_with_plane (woo) This function was an extremely tough one, probably harder than all the previous stcoli funcs combined. Lots of playing around with combining/splitting temps that may be Vec's or individual temps. Remove thing * Document collide_ball_with_plane * Reword some collide_ball_with_plane docs * f32 -> float * accel -> gravityAccel * Decompile test_line_intersects_rect * Decompile stcoli_sub15 * Clean up stcoli_sub15 a little * RaycastHit result * Renames * MovableStagePart -> Itemgroup * stcoli raycast renames * ItemgroupInfo field labels * Decompile raycast_stage_down() * Clean up raycast_stage_down() * Label bonus_wave_raycast_down() * Fix bonus_wave_raycast_down() return type asdf * Decompile raycast_tri() * Cleanup raycast_tri() * Skip raycast_cone(), decompile raycast_sphere() * Decompile raycast_cylinder() * .clang-format * Freecam stub * 32-byte align dvd read buffers * Working freecam * Rename some stagedef stuff * More stagedef renames * Stage object labels * Slight freecam improvements * Remove nonmatching code * Label GMA stuff * Keyframe labels * Bg model stuff * Fix stcoli shiftability * Bg model animation labels * Bg anim labels again * Stuff * Fix wrong label * The great itemgroup rename * More consistent .gitignore * Undo erroneous labels in input.c * Fix newline * Label tevutil function names * GX enums * Propagate tevutil.h include * Remove unnecessary tevutil includes * Tevutil function signatures * Fix GXSetFog_cached arg order * Format tevutil.h * GXSetCullMode checkpoint * Finish GXSetCullMode enum labels * Fix enum, update .gitignore * Itemgroup -> AnimGroup rename pt1 * animgroup -> anim_group * Fix * Fix aniimGroup * Sampler label * Avdisp checkpoint * More avdisp label * More avdisp Fog * build_tev_material checkpoint checkpoint checkpoint * Restore matching * avdisp checkpoint * Renames * Label some GMA shape flags * Propagate GXSetBlendMode_cached * Propagate GXSetTevSwapMode * Propagate GXSetFog * Tev material setup funcs * Propagate GXSetTevColorIn * Propagate GXSetTevAlphaIn * Propagate GXSetTevColor/AlphaOp * Propagate GXSetTevOrder * Propagate GXLoadTexObj_cached * Rematch * Sampler -> TevStageDesc * More tev-related labels * Yes this is probably the unlit flag * TevMaterialCache-related labels * Rematch * Document extra disp lists * GMA header and flags * Idk * Stuff * More stuff * Tev post mul/add labels * Idk * Draw func labels * GMA docs * Layer funcs * Color/alpha in * Rematch * Quick comment remove * Fix couple function names * Fix tev layer flag names * Fix tev layer flags again * Fix Dolphin includes * Fix check_ball_entered_goal * Remove unnecessary stcoli include
57 lines
1.0 KiB
C
57 lines
1.0 KiB
C
#ifndef _MATH_H_
|
|
#define _MATH_H_
|
|
|
|
// stop gcc from complaining
|
|
#ifndef __MWERKS__
|
|
extern int __abs(int);
|
|
extern float __fabs(float);
|
|
extern float __frsqrte(float);
|
|
#endif
|
|
|
|
#define NAN (0.0f / 0.0f)
|
|
#define HUGE_VALF (1.0f / 0.0f)
|
|
#define INFINITY (1.0f / 0.0f)
|
|
|
|
#define FLT_EPSILON 1.1920928955078125e-07f
|
|
|
|
double fabs(double x);
|
|
double sin(double x);
|
|
double cos(double x);
|
|
|
|
float sinf(float x);
|
|
float acosf(float x);
|
|
|
|
double ldexp(double x, int exp);
|
|
|
|
inline int abs(int n) { return(__abs(n)); }
|
|
|
|
double scalbn(double x, int n);
|
|
|
|
double copysign(double x, double y);
|
|
|
|
double floor(double x);
|
|
|
|
double fabs(double x);
|
|
|
|
#ifdef __MWERKS__
|
|
#pragma cplusplus on
|
|
#endif
|
|
|
|
long __fpclassifyf(float x);
|
|
long __fpclassifyd(double x);
|
|
|
|
#define FP_NAN 1
|
|
#define FP_INFINITE 2
|
|
#define FP_ZERO 3
|
|
#define FP_NORMAL 4
|
|
#define FP_SUBNORMAL 5
|
|
|
|
#define fpclassify(x) (sizeof(x) == sizeof(float) ? __fpclassifyf((float)(x)) : __fpclassifyd((double)(x)))
|
|
#define isfinite(x) ((fpclassify(x) > FP_INFINITE))
|
|
|
|
#ifdef __MWERKS__
|
|
#pragma cplusplus reset
|
|
#endif
|
|
|
|
#endif
|