summaryrefslogtreecommitdiff
path: root/src/racing
diff options
context:
space:
mode:
authorcoco875 <59367621+coco875@users.noreply.github.com>2024-09-17 17:32:50 +0200
committerGitHub <noreply@github.com>2024-09-17 09:32:50 -0600
commit203090e5913f79df01ee273e40dea03b294f061e (patch)
tree2ee78c50742b20238c07610b8ba9f7f93c3a80e1 /src/racing
parentd36d7dcd604d0f85b6b547a85e9b7a4fe3e59b5c (diff)
update with the decomp (#97)
* Update menus.c (#634) * Update common_data.yml (#635) * Renames for screenId and other changes (#636) * screenId renames * Rename surface map to collision mesh (#637) * Rename some stack vars (#638) * Fix syntax error (#639) * Rename some stack vars * Update collision.c * Collision Documentation (#640) * Collision related renames * update doxygen (#649) * change bool (#644) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Update (#642) * Delete trig_tables_bss.c (#650) * fix typo audio (#656) * fix typo src actor (#657) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo include (#658) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix course (#659) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo debug (#660) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo data (#661) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * replace number with const (#665) * fix typo buffers (#655) * fix typo buffers * tweak ld file * rename to sMemoryPool * add a warning --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo src (#654) * fix typo src * fix non matcing * Update code_80091750.c --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo racing (#653) * fix typo racing * get it match * replace G_LINE3D to G_QUAD --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix typo src (#652) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * fix ending typo (#651) * Action more info when it doesn't match and fix first diff (#662) * Update linux-compile.yml * fix first-diff * Update first-diff.py --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * document texture of kart (#663) * document texture of kart * change screenPlayerId to screenId * some documentation around object * Revert "some documentation around object" This reverts commit cbb39078e036bf2a417bed67359e910213acab28. * more rename --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Make evaluate_collision_players_palm_tree better (#667) This matches just the same as before, but using those two casts instead of shifts seems more likely to be accurate to the original source code Signed-off-by: Gabriel Ravier <gabravier@gmail.com> * add fedora instruciton (#666) Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * start documenting animation (#668) * start documenting animation * Update course_data.c * change comment * update libultra asm (#648) * update libultra asm * fix gcc __osThreadTail --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Document Vehicles (#641) * start doc collision * fix merge * finish rename fonction related to vehicle * document around waypoint of vehicle * make some modification * make some change and rename one * copy_ to oldPos * doc smoke ferry and train * some rename * fix some renaming * precise index * rename a funciton * simplify waypoint_vehicles * change some name * change some name * rename move_to_point_direction * fix some conflict * Update code_80005FD0.c * Update code_80005FD0.h --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Label a save info loop (#645) * save info * more gcc progress * fix a value and do a rename (#669) * update clang and add action (#664) * update clang and add action * try clang on course folder only * forget two file * Update course_displaylists.inc.c * forget few other file * Update course_vertices.inc.c * format all code while get it match * second pass * format other dir * disable clang format on bad ido code * fix some tabulation * revert format on tool dir * Update clang-format.yml * ignore gbi.h * add some read me instruction * fix error * format and fixing error * Update README.md --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Update linkonly_generator.py (#670) * some rename for torch (#588) * rename gBombKartSpawns, and fix cup ID * Update doxygen_syms.md * rename for gCourseIndexInCup and his constant * rename to gCupSelectedCourseIndex * forget a change in constant * fix compilation issue * Update Dockerfile to latest Ubuntu LTS + fixed missing cmake (#674) * Fix color font matrix function (#676) * Fix label variables used in menus (#675) * Fix label variables used in menus * split D_800F2BDC and clang format menu.c --------- Co-authored-by: coco875 <pereira.jannin@gmail.com> * Fix some libultra struct types (#677) * Uintptr (#671) * Update render_courses.c * Update math_util.c * Update math_util.c * Update math_util.h * Update render_courses.c * Clang suggest (#678) * add clang suggestion * Update clang-format-suggest.yml * Update clang-format-suggest.yml * simplify * switch to ubuntu * Update clang-format-suggest.yml * update ubuntu --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * Clang pr (#679) * Create clang-pr.yml * Update clang-pr.yml * Update osCreateMesgQueue.c * Update osCreateMesgQueue.c * Update clang-pr.yml * Update clang-pr.yml * Update clang-format.yml * clang format (#680) Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> * some rename in ceremony (#647) * rename ceremony * apply some suggestion * some rename --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * clang format (#681) Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> * Rename Object Timing Related Code (#673) * start making models extraction with blender * finishing extract model * Update fast64 * extract course * Update fast64 * Update fast64 * simplify import of course_displaylists and course_textures and remplace adress with texture * Update fast64 * change data format and simplify the thread queue * move in a blender folder * remove fast64 * re add fast64 * add model_extract and fast64_blender in makefile * multithread with make file split the models into multiple json and add course segment * Update fast64 * remove old model_extract * remove the error when he don't find blender * start rename around course section * rename around object * update submodule fast64 * fix compilation issue and add some model to extract * Update fast64 * remove fast64 * re add fast64 * update submodule * fix compilation issue * add other collision gfx and prepare reorganise file * re arrange json * Create README.MD * Update README.MD * Update README.MD * update fast64 * rename to initiate_next_state * Revert "Merge branch '3d-objects' into general-object" This reverts commit f5347b38cc75af4d10ee3726dc1524c1c71d6849, reversing changes made to a353c4d954fb5b50c8b48fe3f9d67c95ccaab299. * revert the revert... * revert 3d-models PR * finish some revert * Update code_80005FD0.c * fix code_80091750.c * Update code_80091750.c * rename isTimerRunning to isTimerActive and set_object_timer_running to set_object_timer_state * rename to initialize_next_state * rename to object_next_state --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * extract models with blender (#577) * start making models extraction with blender * finishing extract model * Update fast64 * extract course * Update fast64 * Update fast64 * simplify import of course_displaylists and course_textures and remplace adress with texture * Update fast64 * change data format and simplify the thread queue * move in a blender folder * remove fast64 * re add fast64 * add model_extract and fast64_blender in makefile * multithread with make file split the models into multiple json and add course segment * Update fast64 * remove old model_extract * remove the error when he don't find blender * start rename around course section * update submodule fast64 * fix compilation issue and add some model to extract * Update fast64 * remove fast64 * re add fast64 * update submodule * fix compilation issue * add other collision gfx and prepare reorganise file * re arrange json * Create README.MD * Update README.MD * Update README.MD * update fast64 --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> * other * fix some error of compilation * finish fix all error --------- Signed-off-by: Gabriel Ravier <gabravier@gmail.com> Co-authored-by: MegaMech <MegaMech@users.noreply.github.com> Co-authored-by: Gabriel Ravier <gabravier@gmail.com> Co-authored-by: MisterSheeple <27652712+MisterSheeple@users.noreply.github.com> Co-authored-by: AloXado320 <38191089+AloXado320@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Diffstat (limited to 'src/racing')
-rw-r--r--src/racing/math_util.c2
-rw-r--r--src/racing/math_util.h3
-rw-r--r--src/racing/race_logic.c6
-rw-r--r--src/racing/render_courses.c87
4 files changed, 49 insertions, 49 deletions
diff --git a/src/racing/math_util.c b/src/racing/math_util.c
index 44e07e6aa..a243a066e 100644
--- a/src/racing/math_util.c
+++ b/src/racing/math_util.c
@@ -419,7 +419,7 @@ void func_802B5CAC(s16 arg0, s16 arg1, Vec3f arg2) {
}
void func_802B5D30(s16 arg0, s16 arg1, s32 arg2) {
- func_802B5D64(0x9000000, arg0, arg1, arg2);
+ func_802B5D64((Lights1*) 0x9000000, arg0, arg1, arg2);
}
void func_802B5D64(Lights1* addr, s16 arg1, s16 arg2, s32 arg3) {
diff --git a/src/racing/math_util.h b/src/racing/math_util.h
index e322724ad..a9c396ad6 100644
--- a/src/racing/math_util.h
+++ b/src/racing/math_util.h
@@ -4,6 +4,9 @@
#include <libultraship.h>
#include <common_structs.h>
+// #define sins(x) gSineTable[(u16) (x) >> 4]
+// #define coss(x) gCosineTable[(u16) (x) >> 4]
+
// #define min(a, b) ((a) <= (b) ? (a) : (b))
// #define max(a, b) ((a) > (b) ? (a) : (b))
diff --git a/src/racing/race_logic.c b/src/racing/race_logic.c
index b73833fc5..4f7ea8c50 100644
--- a/src/racing/race_logic.c
+++ b/src/racing/race_logic.c
@@ -144,16 +144,16 @@ void func_8028E3A0(void) {
if (D_80150120) {
- if (gCupCourseSelection == CUP_COURSE_FOUR) {
+ if (gCourseIndexInCup == COURSE_FOUR) {
gGotoMode = ENDING;
} else {
D_800DC544++;
- gCupCourseSelection++;
+ gCourseIndexInCup++;
gGotoMode = RACING;
}
} else {
D_800DC544++;
- gCupCourseSelection++;
+ gCourseIndexInCup++;
gGotoMode = RACING;
}
}
diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c
index 9ce24b7d3..00283ca8c 100644
--- a/src/racing/render_courses.c
+++ b/src/racing/render_courses.c
@@ -78,7 +78,7 @@ extern u32 isFlycam;
void render_course_segments(const char* addr[], struct UnkStruct_800DC5EC* arg1) {
Player* player = arg1->player;
Camera* camera = arg1->camera;
- s16 var_a3;
+ s16 direction;
s16 index;
s16 sp1E;
s16 temp_v0_3;
@@ -86,31 +86,31 @@ void render_course_segments(const char* addr[], struct UnkStruct_800DC5EC* arg1)
if (gIsMirrorMode) {
rot = (u16) camera->rot[1];
if (rot < 0x2000) {
- var_a3 = 2;
+ direction = SOUTH;
} else if (rot < 0x6000) {
- var_a3 = 3;
+ direction = WEST;
} else if (rot < 0xA000) {
- var_a3 = 0;
+ direction = NORTH;
} else if (rot < 0xE000) {
- var_a3 = 1;
+ direction = EAST;
} else {
- var_a3 = 2;
+ direction = SOUTH;
}
} else {
rot = (u16) camera->rot[1];
if (rot < 0x2000) {
- var_a3 = 2;
+ direction = SOUTH;
} else if (rot < 0x6000) {
- var_a3 = 1;
+ direction = EAST;
} else if (rot < 0xA000) {
- var_a3 = 0;
+ direction = NORTH;
} else if (rot < 0xE000) {
- var_a3 = 3;
+ direction = WEST;
} else {
- var_a3 = 2;
+ direction = SOUTH;
}
}
- arg1->playerDirection = var_a3;
+ arg1->playerDirection = direction;
if (D_80152300[camera - camera1] == 1) {
sp1E = get_track_section_id(camera->collision.meshIndexZX);
@@ -176,7 +176,7 @@ void render_course_segments(const char* addr[], struct UnkStruct_800DC5EC* arg1)
}
arg1->pathCounter = index;
- index = ((index - 1) * 4) + var_a3;
+ index = ((index - 1) * 4) + direction;
gSPDisplayList(gDisplayListHead++, addr[index]);
if (CVarGetInteger("gDisableLod", 0) == 1 && gCurrentCourseId == COURSE_BOWSER_CASTLE &&
@@ -530,7 +530,7 @@ void func_8029122C(struct UnkStruct_800DC5EC* arg0, s32 playerId) {
void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
UNUSED s32 pad;
u16 sp22 = arg0->pathCounter;
- u16 temp_t0 = arg0->playerDirection;
+ u16 playerDirection = arg0->playerDirection;
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
@@ -551,20 +551,20 @@ void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
case 1:
case 2:
case 17:
- if ((temp_t0 == 2) || (temp_t0 == 1)) {
+ if ((playerDirection == 2) || (playerDirection == 1)) {
func_802911C4();
}
break;
case 3:
- if (temp_t0 != 0) {
+ if (playerDirection != 0) {
func_802911C4();
}
break;
case 4:
- if (temp_t0 == 0) {
+ if (playerDirection == 0) {
func_80291198();
} else {
- if (temp_t0 == 1) {
+ if (playerDirection == 1) {
func_80291198();
}
func_802911C4();
@@ -572,7 +572,7 @@ void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
break;
case 5:
case 6:
- if ((temp_t0 == 2) || (temp_t0 == 3)) {
+ if ((playerDirection == 2) || (playerDirection == 3)) {
func_802911C4();
} else {
func_80291198();
@@ -580,37 +580,37 @@ void render_mario_raceway(struct UnkStruct_800DC5EC* arg0) {
break;
case 7:
func_80291198();
- if ((temp_t0 == 2) || (temp_t0 == 3)) {
+ if ((playerDirection == 2) || (playerDirection == 3)) {
func_802911C4();
}
break;
case 8:
case 9:
- if (temp_t0 != 1) {
+ if (playerDirection != 1) {
func_802911C4();
}
/* fallthrough */
case 10:
- if (temp_t0 != 2) {
+ if (playerDirection != 2) {
func_80291198();
}
break;
case 11:
- if (temp_t0 == 0) {
+ if (playerDirection == 0) {
func_802911C4();
func_80291198();
- } else if (temp_t0 == 3) {
+ } else if (playerDirection == 3) {
func_802911C4();
}
break;
case 12:
- if ((temp_t0 == 0) || (temp_t0 == 3)) {
+ if ((playerDirection == 0) || (playerDirection == 3)) {
func_802911C4();
}
break;
case 13:
case 14:
- if (temp_t0 != 1) {
+ if (playerDirection != 1) {
case 15:
case 16:
func_802911C4();
@@ -712,7 +712,7 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC* arg0) {
if (D_802B87BC > 255) {
D_802B87BC = 0;
}
- render_course_segments(bowsers_castle_dls, arg0);
+ render_course_segments((uintptr_t) bowsers_castle_dls, arg0);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
@@ -785,7 +785,7 @@ void render_yoshi_valley(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
- render_course_segments(yoshi_valley_dls, arg0);
+ render_course_segments((uintptr_t) d_course_yoshi_valley_dl_list, arg0);
gDPPipeSync(gDisplayListHead++);
}
@@ -804,7 +804,7 @@ void render_frappe_snowland(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
- render_course_segments(frappe_snowland_dls, arg0);
+ render_course_segments((uintptr_t) d_course_frappe_snowland_dl_list, arg0);
}
void render_koopa_troopa_beach(struct UnkStruct_800DC5EC* arg0) {
@@ -824,7 +824,7 @@ void render_koopa_troopa_beach(struct UnkStruct_800DC5EC* arg0) {
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
// d_course_koopa_troopa_beach_packed_dl_9688
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07009688));
- render_course_segments(koopa_troopa_beach_dls1, arg0);
+ render_course_segments(d_course_koopa_troopa_beach_dl_list1, arg0);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
@@ -971,7 +971,7 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC* arg0) {
void render_moo_moo_farm(struct UnkStruct_800DC5EC* arg0) {
UNUSED s32 pad[13];
s16 temp_s0 = arg0->pathCounter;
- s16 temp_s1 = arg0->playerDirection;
+ s16 playerDirection = arg0->playerDirection;
func_802B5D64(D_800DC610, D_802B87D4, 0, 1);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
@@ -988,53 +988,50 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC* arg0) {
render_course_segments(moo_moo_farm_dls, arg0);
if ((temp_s0 < 14) && (temp_s0 > 10)) {
- if ((temp_s1 == 2) || (temp_s1 == 3) || (temp_s1 == 1)) {
+ if ((playerDirection == 2) || (playerDirection == 3) || (playerDirection == 1)) {
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
}
} else if (temp_s0 < 16) {
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
} else if (temp_s0 < 19) {
- if (temp_s1 != 2) {
+ if (playerDirection != 2)
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
- }
} else if (temp_s0 < 20) {
- if (temp_s1 == 0) {
+ if (playerDirection == 0)
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_13FF8);
- }
}
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
if ((temp_s0 >= 16) && (temp_s0 < 24)) {
- if ((temp_s1 == 2) || (temp_s1 == 3)) {
+ if ((playerDirection == 2) || (playerDirection == 3)) {
// d_course_moo_moo_farm_packed_dl_5410
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07005410));
}
} else if (temp_s0 < 9) {
- if (temp_s1 == 2) {
+ if (playerDirection == 2) {
// d_course_moo_moo_farm_packed_dl_5410
gSPDisplayList(gDisplayListHead++, segmented_gfx_to_virtual(0x07005410));
}
}
if (temp_s0 < 4) {
- if (temp_s1 != 0) {
+ if (playerDirection != 0) {
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
}
} else if (temp_s0 < 8) {
- if (temp_s1 == 2) {
+ if (playerDirection == 2) {
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
}
} else if (temp_s0 >= 22) {
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
} else if (temp_s0 >= 18) {
- if ((temp_s1 == 0) || (temp_s1 == 3)) {
+ if ((playerDirection == 0) || (playerDirection == 3))
gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_14060);
- }
}
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
@@ -1056,7 +1053,7 @@ void render_toads_turnpike(struct UnkStruct_800DC5EC* arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_PASS2);
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
- render_course_segments(toads_turnpike_dls, arg0);
+ render_course_segments((uintptr_t) d_course_toads_turnpike_dl_list, arg0);
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
@@ -1111,7 +1108,7 @@ void render_sherbet_land(struct UnkStruct_800DC5EC* arg0) {
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_MODULATEI);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
- render_course_segments(sherbet_land_dls, arg0);
+ render_course_segments((uintptr_t) sherbet_land_dls, arg0);
}
void render_rainbow_road(UNUSED struct UnkStruct_800DC5EC* arg0) {
@@ -1275,7 +1272,7 @@ void render_dks_jungle_parkway(struct UnkStruct_800DC5EC* arg0) {
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
- render_course_segments(dks_jungle_parkway_dls, arg0);
+ render_course_segments((uintptr_t) d_course_dks_jungle_parkway_unknown_dl_list, arg0);
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}