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,
27 StageCallbacks* callbacks)
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 *, enum_t, bool)
void grDisplay_801C5DB0(HSD_GObj *gobj, int code)
Definition grdisplay.c:73
bool Ground_801C2ED0(HSD_JObj *jobj, s32 arg1)
Definition ground.c:1470
u8 b
Definition grpstadium.c:49
#define NULL
Definition stddef.h:19
Definition types.h:1534
HSD_GObjEvent xC_callback
Definition types.h:1538
HSD_GObjEvent x8_callback
Definition types.h:1537
HSD_GObjEvent x1C_callback
Definition types.h:1560
InternalStageId map_id
Definition types.h:1558
was using this to try and fix some matches, unsuccessfully
Definition gobj.h:26
Definition jobj.h:107
Definition types.h:130
void(* callback0)(Ground_GObj *)
initialization callback
Definition types.h:131
void(* callback3)(Ground_GObj *)
Definition types.h:134
void(* callback2)(Ground_GObj *)
Definition types.h:133
Definition ground.c:2352