Mario Kart 64
Loading...
Searching...
No Matches
render.inc.c
Go to the documentation of this file.
1#include <actors.h>
2#include <libultra/gbi.h>
3#include <main.h>
4#include <defines.h>
6
15void render_actor_box_truck(Camera* arg0, struct Actor* arg1) {
16 UNUSED s32 pad[6];
17 Mat4 spD8;
18 UNUSED s32 pad2[32];
19 f32 temp_f0 =
20 is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f);
21 if (CVarGetInteger("gNoCulling", 0) == 1) {
22 temp_f0 = MAX(temp_f0, 0.0f);
23 }
24 if (temp_f0 < 0.0f) {
25 return;
26 }
27
28 if (CVarGetInteger("gDisableLod", 1) == 1) {
29 temp_f0 = 0.0f;
30 }
31
32 gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
33 gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
34
35 mtxf_pos_rotation_xyz(spD8, arg1->pos, arg1->rot);
36 if (render_set_position(spD8, 0) != 0) {
37
38 switch (arg1->state) {
39 case 0:
40 gSPDisplayList(gDisplayListHead++, &d_course_toads_turnpike_dl_23858);
41 break;
42 case 1:
43 gSPDisplayList(gDisplayListHead++, &d_course_toads_turnpike_dl_238A0);
44 break;
45 case 2:
46 gSPDisplayList(gDisplayListHead++, &d_course_toads_turnpike_dl_238E8);
47 break;
48 }
49
51 if (temp_f0 < 160000.0f) {
52 gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_0);
53 } else if (temp_f0 < 640000.0f) {
54 gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_1);
55 } else {
56 gSPDisplayList(gDisplayListHead++, toads_turnpike_dl_2);
57 }
58 } else if (temp_f0 < 160000.0f) {
59 gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_1);
60 } else {
61 gSPDisplayList(gDisplayListHead++, &toads_turnpike_dl_2);
62 }
63 }
64}
void gSPDisplayList(Gfx *pkt, Gfx *dl)
Definition GBIMiddleware.cpp:11
void render_actor_box_truck(Camera *arg0, struct Actor *arg1)
Renders the box truck actor. Actor used in Toad's Turnpike. His update are made in vehicle.
Definition render.inc.c:15
Camera * camera1
Definition camera.c:29
f32 Mat4[4][4]
Definition common_structs.h:20
#define SCREEN_MODE_1P
Options for gScreenModeSelection and gActiveScreenMode.
Definition defines.h:234
#define UNUSED
Definition macros.h:26
#define MAX(a, b)
Definition macros.h:130
Gfx * gDisplayListHead
Definition main.c:136
f32 gCameraZoom[4]
Definition main.c:126
s32 gActiveScreenMode
Definition main.c:181
s32 render_set_position(Mat4 mtx, s32 arg1)
Definition math_util.c:54
f32 is_within_render_distance(Vec3f cameraPos, Vec3f objectPos, u16 orientationY, f32 minDistance, f32 fov, f32 maxDistance)
Definition math_util.c:1100
void mtxf_pos_rotation_xyz(Mat4 out, Vec3f pos, Vec3s orientation)
Definition math_util.c:450
Definition actor_types.h:124
s16 state
Definition actor_types.h:128
Vec3s rot
Definition actor_types.h:131
Vec3f pos
Definition actor_types.h:133
Definition camera.h:27
Vec3s rot
Definition camera.h:34
Vec3f pos
Definition camera.h:28