SSBM Decomp
Loading...
Searching...
No Matches
inlines.h
Go to the documentation of this file.
1#ifndef MELEE_GR_INLINES_H
2#define MELEE_GR_INLINES_H
3
4#include "gr/granime.h"
5#include "gr/grdisplay.h"
6#include "gr/ground.h"
7#include "gr/types.h"
8
9#include <baselib/forward.h>
10
11#include <baselib/gobj.h>
12#include <baselib/gobjgxlink.h>
13#include <baselib/gobjproc.h>
14#include <baselib/random.h>
15
16#define GET_GROUND(gobj) ((Ground*) HSD_GObjGetUserData(gobj))
17
18static inline void Ground_JObjInline1(HSD_GObj* gobj)
19{
20 Ground* gp = GET_GROUND(gobj);
21 HSD_JObj* jobj = GET_JOBJ(gobj);
22 Ground_801C2ED0(jobj, gp->map_id);
23 grAnime_801C8138(gobj, gp->map_id, 0);
24}
25
26static inline void Ground_SetupStageCallbacks(HSD_GObj* gobj,
28{
29 Ground* gp = GET_GROUND(gobj);
30 gp->x8_callback = NULL;
31 gp->xC_callback = NULL;
33 if (callbacks->callback3 != NULL) {
34 gp->x1C_callback = callbacks->callback3;
35 }
36 if (callbacks->callback0 != NULL) {
37 callbacks->callback0(gobj);
38 }
39 if (callbacks->callback2 != NULL) {
40 HSD_GObj_SetupProc(gobj, callbacks->callback2, 4);
41 }
42}
43
44#define ZRANDI(n) ((n) != 0 ? HSD_Randi(n) : 0)
45
46static inline int rand_range(int a, int b)
47{
48 if (a > b) {
49 return b + ZRANDI(a - b);
50 } else if (a < b) {
51 return a + ZRANDI(b - a);
52 } else {
53 return a;
54 }
55}
56
57#endif
#define GET_JOBJ(gobj)
Definition gobj.h:168
HSD_GObjProc * HSD_GObj_SetupProc(HSD_GObj *gobj, void(*func)(HSD_GObj *), u8 pri)
Definition gobjproc.c:150
#define GET_GROUND(gobj)
Definition inlines.h:16
static void Ground_SetupStageCallbacks(HSD_GObj *gobj, StageCallbacks *callbacks)
Definition inlines.h:26
static int rand_range(int a, int b)
Definition inlines.h:46
static void Ground_JObjInline1(HSD_GObj *gobj)
Definition inlines.h:18
#define ZRANDI(n)
Definition inlines.h:44
void grAnime_801C8138(HSD_GObj *gobj, enum_t arg1, bool arg2)
Definition granime.c:1024
StageCallbacks * callbacks
Definition grbigblueroute.c:87
void grDisplay_801C5DB0(HSD_GObj *gobj, int code)
Definition grdisplay.c:74
bool Ground_801C2ED0(HSD_JObj *jobj, s32 arg1)
Definition ground.c:1654
u8 b
Definition grpstadium.c:49
#define NULL
Definition stddef.h:19
Definition types.h:1607
HSD_GObjEvent xC_callback
Definition types.h:1611
HSD_GObjEvent x8_callback
Definition types.h:1610
HSD_GObjEvent x1C_callback
Definition types.h:1633
InternalStageId map_id
Definition types.h:1631
was using this to try and fix some matches, unsuccessfully
Definition gobj.h:26
Definition jobj.h:107
Definition types.h:130
Definition ground.c:2629