Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
SomeItemEntityFunc.inc.c
Go to the documentation of this file.
1#include "common.h"
2#include "npc.h"
3
4API_CALLABLE(N(SomeItemEntityFunc)) {
5 ItemEntity* itemEntity = get_item_entity(script->varTable[0]);
6
7 if (isInitialCall) {
8 script->functionTempF[2] = itemEntity->pos.y;
9 script->functionTemp[1] = 0;
10 script->functionTemp[3] = 0;
11 }
12
13 switch (script->functionTemp[1]) {
14 case 0:
15 itemEntity->pos.y = script->functionTempF[2] + ((1.0f - cos_rad((script->functionTemp[3] *
16 (PI / 2)) / 30.0f)) * 20.0f);
17 if (script->functionTemp[3] == 30) {
18 script->functionTemp[1] = 1;
19 script->functionTemp[3] = 0;
20 } else {
21 script->functionTemp[3]++;
22 }
23 break;
24 case 1:
25 itemEntity->pos.y = script->functionTempF[2] + 17.0f + (cos_deg(script->functionTemp[3]) * 3.0f);
26 script->functionTemp[3] = clamp_angle(script->functionTemp[3] + 9);
27 break;
28 }
29
30 return ApiStatus_BLOCK;
31}
32
#define clamp_angle
#define cos_deg
#define ApiStatus_BLOCK
Definition evt.h:116
ItemEntity * get_item_entity(s32 itemEntityIndex)
f32 cos_rad(f32 x)
Definition 43F0.c:716
#define PI
Definition macros.h:130