diff --git a/ld/gamefiles.ntsc-final.inc b/ld/gamefiles.ntsc-final.inc index 93f27541b..6a3a91a60 100644 --- a/ld/gamefiles.ntsc-final.inc +++ b/ld/gamefiles.ntsc-final.inc @@ -82,8 +82,6 @@ build/ROMID/game/acosfasinf.o (section); \ build/ROMID/game/game_096b20.o (section); \ build/ROMID/game/quaternion.o (section); \ - build/ROMID/game/floor.o (section); \ - build/ROMID/game/ceil.o (section); \ build/ROMID/game/game_097aa0.o (section); \ build/ROMID/game/invitems.o (section); \ build/ROMID/game/bondgun.o (section); \ diff --git a/src/game/ceil.c b/src/game/ceil.c deleted file mode 100644 index acc6002b1..000000000 --- a/src/game/ceil.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include "constants.h" -#include "bss.h" -#include "data.h" -#include "types.h" - -f32 ceilf(f32 value) -{ - f32 fvalue; - - if (value <= 0) { - return (s32)value; - } - - fvalue = (s32)value; - - if (value == fvalue) { - return fvalue; - } - - return fvalue + 1; -} - -s32 ceil(f32 value) -{ - s32 ivalue; - - if (value <= 0) { - return value; - } - - ivalue = value; - - if (ivalue == value) { - return value; - } - - return ivalue + 1; -} diff --git a/src/game/floor.c b/src/game/floor.c deleted file mode 100644 index 346b00533..000000000 --- a/src/game/floor.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include "constants.h" -#include "bss.h" -#include "data.h" -#include "types.h" - -f32 floorf(f32 value) -{ - f32 fvalue; - - if (value >= 0) { - return (s32)value; - } - - fvalue = (s32)value; - - if (value == fvalue) { - return fvalue; - } - - return fvalue - 1; -} - -s32 floor(f32 value) -{ - s32 ivalue; - - if (value >= 0) { - return value; - } - - ivalue = value; - - if (value == ivalue) { - return ivalue; - } - - return ivalue - 1; -} diff --git a/src/game/sky.c b/src/game/sky.c index 40c70c9ce..91304a809 100644 --- a/src/game/sky.c +++ b/src/game/sky.c @@ -151,7 +151,7 @@ static f32 skyClamp(f32 value, f32 min, f32 max) static f32 skyRound(f32 value) { - f32 ret; + s32 ret; __asm__ ("round.w.s %0, %1" : "=f"(ret) : "f"(value)); return ret; } diff --git a/src/game/trainingmenus.c b/src/game/trainingmenus.c index 27f89dc9e..e55c00fa9 100644 --- a/src/game/trainingmenus.c +++ b/src/game/trainingmenus.c @@ -311,7 +311,7 @@ static char *frMenuTextTimeTakenValue(struct menuitem *item) mins++; } - sprintf(g_StringPointer, "%dm %2ds\n", mins, (s32)ceilf(secs)); + sprintf(g_StringPointer, "%dm %2ds\n", mins, ceil(secs)); return g_StringPointer; } else { sprintf(g_StringPointer, "%s%s%2.2fs\n", "", "", secs); @@ -1713,7 +1713,7 @@ static char *dtMenuTextTimeTakenValue(struct menuitem *item) mins++; } - sprintf(g_StringPointer, "%dm %2ds\n", mins, (s32)ceilf(secs)); + sprintf(g_StringPointer, "%dm %2ds\n", mins, ceil(secs)); return g_StringPointer; } else { sprintf(g_StringPointer, "%s%s%2.2fs\n", "", "", secs); @@ -1831,7 +1831,7 @@ static char *htMenuTextTimeTakenValue(struct menuitem *item) mins++; } - sprintf(g_StringPointer, "%dm %2ds\n", mins, (s32)ceilf(secs)); + sprintf(g_StringPointer, "%dm %2ds\n", mins, ceil(secs)); return g_StringPointer; } else { sprintf(g_StringPointer, "%s%s%2.2fs\n", "", "", secs); diff --git a/src/include/game/ceil.h b/src/include/game/ceil.h index c59c0937c..3fa039498 100644 --- a/src/include/game/ceil.h +++ b/src/include/game/ceil.h @@ -4,7 +4,18 @@ #include "data.h" #include "types.h" -f32 ceilf(f32 value); -s32 ceil(f32 value); +static inline f32 ceilf(f32 value) +{ + s32 ret; + __asm__ ("ceil.w.s %0, %1" : "=f"(ret) : "f"(value)); + return ret; +} + +static inline s32 ceil(f32 value) +{ + s32 ret; + __asm__ ("ceil.w.s %0, %1" : "=f"(ret) : "f"(value)); + return ret; +} #endif diff --git a/src/include/game/floor.h b/src/include/game/floor.h index cc28babdf..0da2530b5 100644 --- a/src/include/game/floor.h +++ b/src/include/game/floor.h @@ -4,7 +4,18 @@ #include "data.h" #include "types.h" -f32 floorf(f32 value); -s32 floor(f32 value); +static inline f32 floorf(f32 value) +{ + s32 ret; + __asm__ ("floor.w.s %0, %1" : "=f"(ret) : "f"(value)); + return ret; +} + +static inline s32 floor(f32 value) +{ + s32 ret; + __asm__ ("floor.w.s %0, %1" : "=f"(ret) : "f"(value)); + return ret; +} #endif