SSBM Decomp
Loading...
Searching...
No Matches
forward.h File Reference
#include <platform.h>
#include "lb/forward.h"

Go to the source code of this file.

Macros

#define LINE_FLAG_KIND   (0xF)
#define LINE_FLAG_EMPTY   (1 << 7)
#define LINE_FLAG_PLATFORM   (1 << 8)
#define LINE_FLAG_LEDGE   (1 << 9)
#define LINE_FLAG_ENABLED   (1 << 16)
#define LINE_FLAG_HIDDEN   (1 << 18)
#define MPCOLL_WALLID_MAX   9
#define Collide_LeftWallPush   0x1
 COLLISION FLAGS.
#define Collide_LeftWallHug   0x20
#define Collide_LeftWallMask   0x3F
#define Collide_RightWallPush   0x40
#define Collide_RightWallHug   0x800
#define Collide_RightWallMask   0xFC0
#define Collide_WallMask   (Collide_LeftWallMask | Collide_RightWallMask)
#define Collide_CeilingPush   0x2000
#define Collide_CeilingHug   0x4000
#define Collide_CeilingMask   (Collide_CeilingPush | Collide_CeilingHug)
#define Collide_FloorPush   0x8000
#define Collide_FloorHug   0x10000
#define Collide_FloorMask   (Collide_FloorPush | Collide_FloorHug)
#define Collide_LeftEdge   0x100000
#define Collide_RightEdge   0x200000
#define Collide_Edge   0x800000
#define Collide_LeftLedgeGrab   0x1000000
#define Collide_RightLedgeGrab   0x2000000
#define Collide_LedgeGrabMask   (Collide_LeftLedgeGrab | Collide_RightLedgeGrab)
#define Collide_LeftLedgeSlip   0x10000000
#define Collide_RightLedgeSlip   0x20000000

Typedefs

typedef void(* mpLib_JointCollisionCallback) (void *user_data, int joint_id, CollData *coll, int coll_x50, mpLib_GroundEnum ground_kind, float delta_y)
 Joint collision callback for ground surfaces.
typedef bool(* mpColl_Callback) (CollData *, u32)

Enumerations

enum  mp_Terrain {
  mp_Terrain_Basic ,
  mp_Terrain_Rock ,
  mp_Terrain_Grass ,
  mp_Terrain_Dirt ,
  mp_Terrain_Wood ,
  mp_Terrain_LightMetal ,
  mp_Terrain_HeavyMetal ,
  mp_Terrain_Paper ,
  mp_Terrain_Goop ,
  mp_Terrain_Birdo ,
  mp_Terrain_Water ,
  mp_Terrain_Unk11 ,
  mp_Terrain_UFO ,
  mp_Terrain_Turtle ,
  mp_Terrain_Snow ,
  mp_Terrain_Ice ,
  mp_Terrain_GnW ,
  mp_Terrain_Unk17 ,
  mp_Terrain_Checkered ,
  mp_Terrain_Unk19
}
enum  mpLib_GroundEnum {
  mpLib_GroundEnum_Unk0 ,
  mpLib_GroundEnum_Unk1 ,
  mpLib_GroundEnum_Unk2
}
enum  CollLineKind {
  CollLine_Floor = 1 << 0 ,
  CollLine_Ceiling = 1 << 1 ,
  CollLine_RightWall = 1 << 2 ,
  CollLine_LeftWall = 1 << 3
}
enum  CollDataX130Flags {
  CollData_X130_Locked = 1 << 4 ,
  CollData_X130_Clear = 1 << 5
}
enum  CollJointFlags {
  CollJoint_B8 = 1 << 8 ,
  CollJoint_B9 = 1 << 9 ,
  CollJoint_B10 = 1 << 10 ,
  CollJoint_B11 = 1 << 11 ,
  CollJoint_TooFar = 1 << 12 ,
  CollJoint_Enabled = 1 << 16 ,
  CollJoint_Hidden = 1 << 18
}

Macro Definition Documentation

◆ LINE_FLAG_KIND

#define LINE_FLAG_KIND   (0xF)

◆ LINE_FLAG_EMPTY

#define LINE_FLAG_EMPTY   (1 << 7)

◆ LINE_FLAG_PLATFORM

#define LINE_FLAG_PLATFORM   (1 << 8)

◆ LINE_FLAG_LEDGE

#define LINE_FLAG_LEDGE   (1 << 9)

◆ LINE_FLAG_ENABLED

#define LINE_FLAG_ENABLED   (1 << 16)

◆ LINE_FLAG_HIDDEN

#define LINE_FLAG_HIDDEN   (1 << 18)

◆ MPCOLL_WALLID_MAX

#define MPCOLL_WALLID_MAX   9

◆ Collide_LeftWallPush

#define Collide_LeftWallPush   0x1

COLLISION FLAGS.

Todo
These (and CollData::env_flags) should be a bitfield struct

◆ Collide_LeftWallHug

#define Collide_LeftWallHug   0x20

◆ Collide_LeftWallMask

#define Collide_LeftWallMask   0x3F

◆ Collide_RightWallPush

#define Collide_RightWallPush   0x40

◆ Collide_RightWallHug

#define Collide_RightWallHug   0x800

◆ Collide_RightWallMask

#define Collide_RightWallMask   0xFC0

◆ Collide_WallMask

#define Collide_WallMask   (Collide_LeftWallMask | Collide_RightWallMask)

◆ Collide_CeilingPush

#define Collide_CeilingPush   0x2000

◆ Collide_CeilingHug

#define Collide_CeilingHug   0x4000

◆ Collide_CeilingMask

#define Collide_CeilingMask   (Collide_CeilingPush | Collide_CeilingHug)

◆ Collide_FloorPush

#define Collide_FloorPush   0x8000

◆ Collide_FloorHug

#define Collide_FloorHug   0x10000

◆ Collide_FloorMask

#define Collide_FloorMask   (Collide_FloorPush | Collide_FloorHug)

◆ Collide_LeftEdge

#define Collide_LeftEdge   0x100000

◆ Collide_RightEdge

#define Collide_RightEdge   0x200000

◆ Collide_Edge

#define Collide_Edge   0x800000

◆ Collide_LeftLedgeGrab

#define Collide_LeftLedgeGrab   0x1000000

◆ Collide_RightLedgeGrab

#define Collide_RightLedgeGrab   0x2000000

◆ Collide_LedgeGrabMask

#define Collide_LedgeGrabMask   (Collide_LeftLedgeGrab | Collide_RightLedgeGrab)

◆ Collide_LeftLedgeSlip

#define Collide_LeftLedgeSlip   0x10000000

◆ Collide_RightLedgeSlip

#define Collide_RightLedgeSlip   0x20000000

Typedef Documentation

◆ mpLib_JointCollisionCallback

typedef void(* mpLib_JointCollisionCallback) (void *user_data, int joint_id, CollData *coll, int coll_x50, mpLib_GroundEnum ground_kind, float delta_y)

Joint collision callback for ground surfaces.

Parameters
user_dataSaved untyped data attached to the callback.
coll_x50Unknown, sourced from CollData::x50. dist according to fn_801FC9AC?
delta_yRelative y-offset since the collision started, equal to coll->cur_pos.y - coll->last_pos.y

◆ mpColl_Callback

typedef bool(* mpColl_Callback) (CollData *, u32)

Enumeration Type Documentation

◆ mp_Terrain

enum mp_Terrain
Enumerator
mp_Terrain_Basic 
mp_Terrain_Rock 
mp_Terrain_Grass 
mp_Terrain_Dirt 
mp_Terrain_Wood 
mp_Terrain_LightMetal 
mp_Terrain_HeavyMetal 
mp_Terrain_Paper 
mp_Terrain_Goop 
mp_Terrain_Birdo 
mp_Terrain_Water 
mp_Terrain_Unk11 
mp_Terrain_UFO 
mp_Terrain_Turtle 
mp_Terrain_Snow 
mp_Terrain_Ice 
mp_Terrain_GnW 
mp_Terrain_Unk17 
mp_Terrain_Checkered 
mp_Terrain_Unk19 

◆ mpLib_GroundEnum

Enumerator
mpLib_GroundEnum_Unk0 
mpLib_GroundEnum_Unk1 
mpLib_GroundEnum_Unk2 

◆ CollLineKind

Enumerator
CollLine_Floor 
CollLine_Ceiling 
CollLine_RightWall 
CollLine_LeftWall 

◆ CollDataX130Flags

Enumerator
CollData_X130_Locked 
CollData_X130_Clear 

◆ CollJointFlags

Enumerator
CollJoint_B8 
CollJoint_B9 
CollJoint_B10 
CollJoint_B11 
CollJoint_TooFar 
CollJoint_Enabled 
CollJoint_Hidden