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>
5// #include <assets/dks_jungle_parkway_data.h>
6
15void render_actor_kiwano_fruit(UNUSED Camera* camera, Mat4 arg1, struct Actor* actor) {
16 uintptr_t addr;
17 s32 maxObjectsReached;
18
19 if (actor->state == 0) {
20 return;
21 }
22
23 arg1[3][0] = actor->pos[0];
24 arg1[3][1] = actor->pos[1];
25 arg1[3][2] = actor->pos[2];
26
27 maxObjectsReached = render_set_position(arg1, 0) == 0;
28 if (maxObjectsReached) {
29 return;
30 }
31
32 // Animate actor by creating an index from rot[0]. Divide by texture size to get whole number 0-2.
33 // All three animated textures need to be the same size for this to work.
34 size_t idx = (actor->rot[0] << 0xA) / ResourceGetTexSizeByName(gTextureDksJungleParkwayKiwanoFruit1);
35 switch(idx) {
36 case 0:
37 addr = gTextureDksJungleParkwayKiwanoFruit1;
38 break;
39 case 1:
40 addr = gTextureDksJungleParkwayKiwanoFruit2;
41 break;
42 case 2:
43 addr = gTextureDksJungleParkwayKiwanoFruit3;
44 break;
45 }
46
47 //addr = segmented_texture_to_virtual((actor->rot[0] << 0xA) + 0x03009000);
48 gDPLoadTextureBlock(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(addr), G_IM_FMT_CI, G_IM_SIZ_8b, 32, 32, 0,
49 G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
50 G_TX_NOLOD);
51 gSPDisplayList(gDisplayListHead++, d_course_dks_jungle_parkway_dl_kiwano_fruit);
52}
void gSPDisplayList(Gfx *pkt, Gfx *dl)
Definition GBIMiddleware.cpp:11
f32 Mat4[4][4]
Definition common_structs.h:20
void render_actor_kiwano_fruit(UNUSED Camera *camera, Mat4 arg1, struct Actor *actor)
Renders the kiwano fruit actor. Actor used in DK's Jungle Parkway.
Definition render.inc.c:15
#define UNUSED
Definition macros.h:26
#define VIRTUAL_TO_PHYSICAL(addr)
Definition macros.h:91
Gfx * gDisplayListHead
Definition main.c:136
s32 render_set_position(Mat4 mtx, s32 arg1)
Definition math_util.c:54
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