Cavestory Mod API
Macros | Typedefs | Enumerations
CSMAPI_enums.h File Reference

Go to the source code of this file.

Macros

#define BIT(x)   (1 << x)
 

Typedefs

typedef enum Surface_Ids Surface_Ids
 List of surface IDs.
 

Enumerations

enum  Directions {
  DIRECT_LEFT = 0 , DIRECT_UP = 1 , DIRECT_RIGHT = 2 , DIRECT_DOWN = 3 ,
  DIRECT_CENTER = 4 , DIRECT_RIGHT_UP = 5 , DIRECT_DOWN_RIGHT = 6 , DIRECT_COUNT
}
 Directions. More...
 
enum  KeyInputType { KIT_Key = 0 , KIT_Key2 = 1 , KIT_KeyJoypad = 2 }
 Key input types. More...
 
enum  CSM_KEYBIND_DESC {
  CSM_KEYBIND_DESC_JUMP = 0 , CSM_KEYBIND_DESC_SHOOT = 1 , CSM_KEYBIND_DESC_ARMS_NEXT = 2 , CSM_KEYBIND_DESC_ARMS_PREV = 3 ,
  CSM_KEYBIND_DESC_INVENTORY = 4 , CSM_KEYBIND_DESC_MAP = 5 , CSM_KEYBIND_DESC_OK = 6 , CSM_KEYBIND_DESC_CANCEL = 7 ,
  CSM_KEYBIND_DESC_LEFT = 8 , CSM_KEYBIND_DESC_UP = 9 , CSM_KEYBIND_DESC_RIGHT = 10 , CSM_KEYBIND_DESC_DOWN = 11
}
 A table of keybind descriptors. More...
 
enum  CSM_KEY_DESC {
  CSM_KEY_DESC_KEY = 0 , CSM_KEY_DESC_KEYTRG = 1 , CSM_KEY_DESC_KEY2 = 2 , CSM_KEY_DESC_KEYTRG2 = 3 ,
  CSM_KEY_DESC_KEY_JOY = 4 , CSM_KEY_DESC_KEYTRG_JOY = 5
}
 A table of input descriptors. More...
 
enum  KEYBIND {
  KEY_LEFT = 0x00000001 , KEY_RIGHT = 0x00000002 , KEY_UP = 0x00000004 , KEY_DOWN = 0x00000008 ,
  KEY_MAP = 0x00000010 , KEY_X = 0x00000020 , KEY_Z = 0x00000040 , KEY_ARMS = 0x00000080 ,
  KEY_ARMSREV = 0x00000100 , KEY_SHIFT = 0x00000200 , KEY_F1 = 0x00000400 , KEY_F2 = 0x00000800 ,
  KEY_ITEM = 0x00001000 , KEY_ESCAPE = 0x00008000 , KEY_ALT_LEFT = 0x00010000 , KEY_ALT_DOWN = 0x00020000 ,
  KEY_ALT_RIGHT = 0x00040000 , KEY_ALT_UP = 0x00180000 , KEY_L = 0x00080000 , KEY_PLUS = 0x00100000 ,
  KEY_LMB = 0x00200000 , KEY_RMB = 0x00400000 , KEY_SCRL_DOWN = 0x00800000 , KEY_SCRL_UP = 0x01000000 ,
  KEY_MAX = 0x02000000
}
 A table of input flags. More...
 
enum  KEYBIND2 {
  KEY2_NUM_0 = 0x00000001 , KEY2_NUM_1 = 0x00000002 , KEY2_NUM_2 = 0x00000004 , KEY2_NUM_3 = 0x00000008 ,
  KEY2_NUM_4 = 0x00000010 , KEY2_NUM_5 = 0x00000020 , KEY2_NUM_6 = 0x00000040 , KEY2_NUM_7 = 0x00000080 ,
  KEY2_NUM_8 = 0x00000100 , KEY2_NUM_9 = 0x00000200 , KEY2_TAB = 0x00000400 , KEY2_F3 = 0x00000800 ,
  KEY2_F4 = 0x00001000 , KEY2_F5 = 0x00002000 , KEY2_F6 = 0x00004000 , KEY2_F7 = 0x00008000 ,
  KEY2_F8 = 0x00010000 , KEY2_F9 = 0x00020000 , KEY2_T = 0x00040000 , KEY2_PG_UP = 0x00080000 ,
  KEY2_PG_DN = 0x00100000 , KEY2_MMB = 0x00200000
}
 A table of input flags. More...
 
enum  KEYBIND_JOYSTICK {
  KEY_JOY_A = 0x01000000 , KEY_JOY_B = 0x02000000 , KEY_JOY_X = 0x04000000 , KEY_JOY_Y = 0x08000000 ,
  KEY_JOY_LEFT_SHOULDER = 0x10000000 , KEY_JOY_RIGHT_SHOULDER = 0x20000000 , KEY_JOY_START = 0x40000000 , KEY_JOY_SELECT = 0x80000000
}
 A table of joystick input flags. More...
 
enum  NetScoreMaskBits : unsigned long long int {
  NETSCORE_MASK_MISC_STATS = BIT(0) , NETSCORE_MASK_GAME_OBJECTIVE = BIT(1) , NETSCORE_MASK_NPCS = BIT(2) , NETSCORE_MASK_PLAYERS = BIT(3) ,
  NETSCORE_MASK_DAMAGE_DEALT = BIT(4) , NETSCORE_MASK_DAMAGE_TAKEN = BIT(5) , NETSCORE_MASK_KILLS = BIT(6) , __NETSCORE_DEFAULT_MASK__ = NETSCORE_MASK_GAME_OBJECTIVE | NETSCORE_MASK_DAMAGE_DEALT | NETSCORE_MASK_KILLS
}
 A table of NetScoreType mask bits. More...
 
enum  NetScoreTypeFlags : unsigned long long int {
  NETSCORE_FLAG_HIDDEN_FROM_UI = BIT(0) , NETSCORE_FLAG_MANDATORY_SCORE = BIT(1) , NETSCORE_FLAG_DONT_SYNC = BIT(2) , NETSCORE_FLAG_DONT_RESET_ON_DEATH = BIT(3) ,
  NETSCORE_FLAG_TIME_DIFFERENCE = BIT(5) , NETSCORE_FLAG_TIME_DIFFERENCE_USE_SEC = NETSCORE_FLAG_TIME_DIFFERENCE | BIT(4)
}
 A table of NetScoreType flags. More...
 
enum  CSM_NET_CLIENT_QUERY : unsigned long long int {
  CSM_NCQ_EVERYTHING = 0xFFFFFFFFFFFFFFFF , CSM_NCQ_NAME = 0x0000000000000001 , CSM_NCQ_PLAYER = 0x0000000000000002 , CSM_NCQ_BEING_CARRIED = 0x0000000000000004 ,
  CSM_NCQ_IS_CARRYING = 0x0000000000000008 , CSM_NCQ_DEAD = 0x0000000000000010 , CSM_NCQ_GAMEFLAGS = 0x0000000000000020 , CSM_NCQ_KEY = 0x0000000000000040 ,
  CSM_NCQ_KEYTRG = 0x0000000000000080 , CSM_NCQ_CURRENT_WEAPON = 0x0000000000000100 , CSM_NCQ_CARRYING = 0x0000000000000200 , CSM_NCQ_CARRIER = 0x0000000000000400 ,
  CSM_NCQ_SPUR_CHARGE = 0x0000000000000800 , CSM_NCQ_SPUR_MAX = 0x0000000000001000
}
 A table of query flags. More...
 
enum  GameFlags { GF_EnableActing = 0x0001 , GF_EnableControl = 0x0002 , GF_DisableInventory = 0x0004 , GF_CreditsRunning = 0x0008 }
 Game flags for g_GameFlags. More...
 
enum  GMC_cond { gmc_cond_disabled = 0x0002 , gmc_cond_hidden = 0x0100 }
 Internal cond flags for gMC (gMC.cond) More...
 
enum  GMC_flag {
  gmc_flag_collide_left = 0x0001 , gmc_flag_collide_ceiling = 0x0002 , gmc_flag_collide_right = 0x0004 , gmc_flag_collide_floor = 0x0008 ,
  gmc_flag_collide_triangleA = 0x0002 , gmc_flag_collide_triangleB = 0x0002 , gmc_flag_collide_triangleC = 0x0002 , gmc_flag_collide_triangleD = 0x0002 ,
  gmc_flag_collide_triangleE = 0x0028 , gmc_flag_collide_triangleF = 0x0028 , gmc_flag_collide_triangleG = 0x0018 , gmc_flag_collide_triangleH = 0x0018 ,
  gmc_flag_on_water_tile = 0x0100 , gmc_flag_on_damage_tile = 0x0400 , gmc_flag_on_damagew_tile = 0x0D00 , gmc_flag_in_current_left = 0x1000 ,
  gmc_flag_in_current_up = 0x2000 , gmc_flag_in_current_right = 0x4000 , gmc_flag_in_current_down = 0x8000 , gmc_flag_in_current = 0xF000
}
 Internal flags for gMC (gMC.flag) More...
 
enum  GMC_equipflags {
  gmc_eflag_booster_08 = 0x00000001 , gmc_eflag_map_system = 0x00000002 , gmc_eflag_arms_barrier = 0x00000004 , gmc_eflag_turbocharge = 0x00000008 ,
  gmc_eflag_air_tank = 0x00000010 , gmc_eflag_booster_2 = 0x00000020 , gmc_eflag_mimiga_mask = 0x00000040 , gmc_eflag_whimsical_star = 0x00000080 ,
  gmc_eflag_nikumaru_timer = 0x00000100
}
 Internal equip flags for gMC (gMC.equip) More...
 
enum  NPC_collision { npc_collide_left = 0x0001 , npc_collide_up = 0x0002 , npc_collide_right = 0x0004 , npc_collide_down = 0x0008 }
 Internal flags for collision' sake. More...
 
enum  NPC_flags {
  npc_solidSoft = 0x0000001 , npc_ignore44 = 0x0000002 , npc_invulnerable = 0x0000004 , npc_ignoreSolid = 0x0000008 ,
  npc_bouncy = 0x0000010 , npc_shootable = 0x0000020 , npc_solidHard = 0x0000040 , npc_rearTop = 0x0000080 ,
  npc_eventTouch = 0x0000100 , npc_eventDie = 0x0000200 , npc_appearSet = 0x0000800 , npc_altDir = 0x0001000 ,
  npc_interact = 0x0002000 , npc_hideSet = 0x0004000 , npc_showDamage = 0x0008000 , npc_deprecated1 = 0x0010000 ,
  npc_autoFocus = 0x0020000 , npc_dontUpdate = 0x0040000 , npc_deprecated2 = 0x0080000 , npc_ghost = 0x0100000 ,
  npc_option3 = 0x0200000 , npc_option4 = 0x0400000 , npc_dontDeleteOnClientLoad = 0x0800000 , npc_drawOnTop = 0x1000000 ,
  npc_eventDieReal = 0x2000000 , npc_max_flags = 0x2000000 , npc_option1 = 0x0000100 , npc_option2 = 0x0001000
}
 Map flags for NPCs (npc->bits) More...
 
enum  NPC_int_flag {
  npc_flag_collide_left = 0x0001 , npc_flag_collide_ceiling = 0x0002 , npc_flag_collide_right = 0x0004 , npc_flag_collide_floor = 0x0008 ,
  npc_flag_collide_wall = 0x0005 , npc_flag_collide_triangleA = 0x0002 , npc_flag_collide_triangleB = 0x0002 , npc_flag_collide_triangleC = 0x0002 ,
  npc_flag_collide_triangleD = 0x0002 , npc_flag_collide_triangleE = 0x0028 , npc_flag_collide_triangleF = 0x0028 , npc_flag_collide_triangleG = 0x0018 ,
  npc_flag_collide_triangleH = 0x0018 , npc_flag_on_water_tile = 0x0100
}
 Internal flags for NPCs (npc->flag) More...
 
enum  NPC_cond { npc_cond_dead = 0x0008 , npc_cond_npc_alive = 0x0080 }
 Internal cond flags for NPCs (npc->cond) More...
 
enum  Surface_Ids {
  SURFACE_ID_TITLE = 0 , SURFACE_ID_PIXEL = 1 , SURFACE_ID_LEVEL_TILESET = 2 , SURFACE_ID_FADE = 6 ,
  SURFACE_ID_ITEM_IMAGE = 8 , SURFACE_ID_MAP = 9 , SURFACE_ID_SCREEN_GRAB = 10 , SURFACE_ID_ARMS = 11 ,
  SURFACE_ID_ARMS_IMAGE = 12 , SURFACE_ID_ROOM_NAME = 13 , SURFACE_ID_STAGE_ITEM = 14 , SURFACE_ID_LOADING = 15 ,
  SURFACE_ID_MY_CHAR = 16 , SURFACE_ID_BULLET = 17 , SURFACE_ID_CARET = 19 , SURFACE_ID_NPC_SYM = 20 ,
  SURFACE_ID_LEVEL_SPRITESET_1 = 21 , SURFACE_ID_LEVEL_SPRITESET_2 = 22 , SURFACE_ID_NPC_REGU = 23 , SURFACE_ID_TEXT_BOX = 26 ,
  SURFACE_ID_FACE = 27 , SURFACE_ID_LEVEL_BACKGROUND = 28 , SURFACE_ID_VALUE_VIEW = 29 , SURFACE_ID_TEXT_LINE1 = 30 ,
  SURFACE_ID_TEXT_LINE2 = 31 , SURFACE_ID_TEXT_LINE3 = 32 , SURFACE_ID_TEXT_LINE4 = 33 , SURFACE_ID_TEXT_LINE5 = 34 ,
  SURFACE_ID_CREDIT_CAST = 35 , SURFACE_ID_CREDITS_IMAGE = 36 , SURFACE_ID_CASTS = 37 , SURFACE_ID_SCREEN_GRAB2 = 38 ,
  SURFACE_ID_GUI = 39 , SURFACE_ID_FACE_COLOR_MASK = 41 , SURFACE_ID_CHAT_TOPICS = 42 , SURFACE_ID_CHAT_TOPICS_MASK = 43 ,
  SURFACE_ID_CONTROLS = 44 , SURFACE_ID_NET_NAME_PLANE = 45 , SURFACE_ID_DEMO_EDITOR = 46 , SURFACE_ID_HELP_IMAGES = 47 ,
  SURFACE_ID_TEAM_SPAWN_DOORS = 48 , SURFACE_ID_SCREEN_IMAGE = 49 , SURFACE_ID_SCREEN_GRAB3 = 50 , SURFACE_ID_STYLE_TEXT = 51 ,
  SURFACE_ID_MAX_UNDYNAMIC = 51 , SURFACE_ID_ALLOCATABLE_SURFACE_START = 52 , SURFACE_ID_ALLOCATABLE_SURFACE_END = 852 , SURFACE_ID_RENDERER = 853 ,
  SURFACE_ID_RENDERER_TEXTURE = 854 , SURFACE_ID_DEBUGCHARSET , SURFACE_ID_MAX
}
 List of surface IDs. More...
 
enum  TileType {
  TT_FOREGROUND = 0x00000001 , TT_BACKGROUND = 0x00000002 , TT_WATER = 0x00000004 , TT_DAMAGE = 0x00000008 ,
  TT_DESTROYABLE = 0x00000010 , TT_NO_NPC = 0x00000020 , TT_NO_PLAYER = 0x00000040 , TT_SHOOTABLE = 0X00000080 ,
  TT_SOLID = (TT_NO_NPC | TT_NO_PLAYER) , TT_VISIBLE = (TT_FOREGROUND | TT_BACKGROUND) , TT_SLOPE_CEIL_0 = 0x00000100 , TT_SLOPE_CEIL_1 = 0x00000200 ,
  TT_SLOPE_CEIL_2 = 0x00000400 , TT_SLOPE_CEIL_3 = 0x00000800 , TT_SLOPE_FLOOR_0 = 0x00001000 , TT_SLOPE_FLOOR_1 = 0x00002000 ,
  TT_SLOPE_FLOOR_2 = 0x00004000 , TT_SLOPE_FLOOR_3 = 0x00008000 , TT_ANY_SLOPE = (TT_SLOPE_CEIL_0 | TT_SLOPE_CEIL_1 | TT_SLOPE_CEIL_2 | TT_SLOPE_CEIL_3 | TT_SLOPE_FLOOR_0 | TT_SLOPE_FLOOR_1 | TT_SLOPE_FLOOR_2 | TT_SLOPE_FLOOR_3) , TT_MOVE_LEFT = 0x00010000 ,
  TT_MOVE_RIGHT = 0x00020000 , TT_MOVE_UP = 0x00040000 , TT_MOVE_DOWN = 0x00080000 , TT_YELLOW_TEAM = 0x00100000 ,
  TT_GREEN_TEAM = 0x00200000 , TT_RED_TEAM = 0x00400000 , TT_BLUE_TEAM = 0x00800000 , TT_ANY_MOVE = (TT_MOVE_LEFT | TT_MOVE_RIGHT | TT_MOVE_UP | TT_MOVE_DOWN) ,
  TT_ANY_TEAM = (TT_YELLOW_TEAM | TT_GREEN_TEAM | TT_RED_TEAM | TT_BLUE_TEAM)
}
 Tiletype flags. More...
 
enum  GameProcessMode {
  GPM_CONTINUE = -1 , GPM_CLOSE_GAME = 0 , GPM_OPENING_SEQUENCE = 1 , GPM_TITLE_SCREEN = 2 ,
  GPM_ACTION = 3 , GPM_NET_ACITON = 9 , GPM_NET_LOBBY = 10 , GPM_NET_CONNECTING = 11 ,
  GPM_NET_MANIFEST = 12
}
 Controls what the game is currently doing. More...
 
enum  SCI_SetType {
  SCI_ST_AUTO = 0b00011 , SCI_ST_SERVER = 0b00001 , SCI_ST_CLIENT = 0b00010 , SCI_ST_ONLY_CLIENTS = 0b00100 ,
  SCI_ST_EXACT = 0b01000 , SCI_ST_ENSURE_PLAYER = 0b10000
}
 Determine which client to use. More...
 
enum  TextScriptTarget {
  TS_TARGET_EVERYONE = 0 , TS_TARGET_EXECUTOR = 1 , TS_TARGET_EXECUTOR_TEAM = 2 , TS_TARGET_SINGLEPLAYER = 3 ,
  TS_TARGETCOUNT = 3
}
 The TextScript's target. More...
 
enum  PLAYER_STATE_FLAGS : unsigned long long int {
  PSF_NO_AIR = BIT(0) , PSF_NO_WEAPONS = BIT(1) , PSF_NO_CAMERA = BIT(2) , PSF_NO_SPECTATE = BIT(3) ,
  PSF_NO_HUD = BIT(4) , PSF_NO_PICKUPS = BIT(5) , PSF_CENTER_CAMERA = BIT(6) , PSF_INIT = BIT(7) ,
  PSF_FREE = BIT(8) , PSF_NOCLIP = BIT(9) , PSF_NOTARGET = BIT(10) , PSF_GOD = BIT(11) ,
  PSF_UNIT = BIT(12) , PSF_PUT_BUBBLE = BIT(13) , PSF_CARRIED_GOD = BIT(14) , PSF_CARRIED_NOTARGET = BIT(15)
}
 Player state flags. More...
 
enum  PLAYER_STATE_TRANSMIT_FLAGS {
  PSTF_COUNT1 = BIT(0) , PSTF_COUNT2 = BIT(1) , PSTF_COUNT3 = BIT(2) , PSTF_COUNT4 = BIT(3) ,
  PSTF_ACT_NO = BIT(4) , PSTF_ACT_WAIT = BIT(5) , PSTF_NPC_PTR = BIT(6) , PSTF_MYCHAR_PTR = BIT(7) ,
  PSTF_OBJ_X = BIT(8) , PSTF_OBJ_Y = BIT(9) , PSTF_OBJ_XM = BIT(10) , PSTF_OBJ_YM = BIT(11) ,
  PSTF_OBJ_TGT_X = BIT(12) , PSTF_OBJ_TGT_Y = BIT(13) , PLAYER_TRANSMIT_FLAG_COUNT = 14
}
 Playerstate transmit flags. More...
 
enum  CSMP_CURSOR_TYPE {
  CSMP_CURSOR_NORMAL , CSMP_CURSOR_ARROW , CSMP_CURSOR_IBEAM , CSMP_CURSOR_WAIT ,
  CSMP_CURSOR_CROSSHAIR , CSMP_CURSOR_WAITARROW , CSMP_CURSOR_SIZENWSE , CSMP_CURSOR_SIZENESW ,
  CSMP_CURSOR_SIZEWE , CSMP_CURSOR_SIZENS , CSMP_CURSOR_SIZEALL , CSMP_CURSOR_NO ,
  CSMP_CURSOR_HAND , CSMP_NUM_CURSORS
}
 All possible cursor types for BaseModeInstance::SetCursor.
 
enum  PlayerStateAnimator_OutputType { PSAOT_PLAYER_FRAME = 0 , PSAOT_PLAYER_ANIMATION = 1 , PSAOT_CUSTOM = 2 }
 A list of output types for a player state's "ANIMATE" function.
 
enum  PlayerDeathType {
  DEATHTYPE_UNKNOWN = 0 , DEATHTYPE_SUICIDE = 1 , DEATHTYPE_KILLED_BY_PLAYER = 2 , DEATHTYPE_KILLED_BY_NPC = 3 ,
  DEATHTYPE_OUT_OF_BOUNDS = 4 , DEATHTYPE_DROWNED = 5 , DEATHTYPE_COUNT
}
 A list of possible player death types.
 
enum  NpcPositionType { NPT_DRAW_POSITION = 0 , NPT_SUB_DRAW_POSITION = 1 }
 A list of position types for CSM_Npc_GetPosition .
 
enum  NPC_update_nodes : unsigned long long int {
  npc_nodes_damage = 0x0000000000000001 , npc_nodes_flag = 0x0000000000000002 , npc_nodes_x = 0x0000000000000004 , npc_nodes_y = 0x0000000000000008 ,
  npc_nodes_xm = 0x0000000000000010 , npc_nodes_ym = 0x0000000000000020 , npc_nodes_life = 0x0000000000000040 , npc_nodes_exp = 0x0000000000000080 ,
  npc_nodes_size = 0x0000000000000100 , npc_nodes_direct = 0x0000000000000200 , npc_nodes_code_event = 0x0000000000000400 , npc_nodes_surf = 0x0000000000000800 ,
  npc_nodes_act_no = 0x0000000000001000 , npc_nodes_act_wait = 0x0000000000002000 , npc_nodes_ani_no = 0x0000000000004000 , npc_nodes_ani_wait = 0x0000000000008000 ,
  npc_nodes_bits = 0x0000000000010000 , npc_nodes_count1 = 0x0000000000020000 , npc_nodes_count2 = 0x0000000000040000 , npc_nodes_count3 = 0x0000000000080000 ,
  npc_nodes_count4 = 0x0000000000100000 , npc_nodes_shock = 0x0000000000200000 , npc_nodes_pNpc = 0x0000000000400000 , npc_nodes_focus = 0x0000000000800000 ,
  npc_nodes_code_flag = 0x0000000001000000 , npc_nodes_focus2 = 0x0000000002000000 , npc_nodes_tgt_x = 0x0000000004000000 , npc_nodes_tgt_y = 0x0000000008000000 ,
  NPC_NODES_ALL = 0x000000000FFFFFFF , NPC_NODES_COUNT = 28 , NPC_NODES_MAX_BYTE_SIZE = 109
}
 Internal update nodes for NPCs (npc->update_nodes)
 
enum  NPC_transmit_nodes : unsigned long long int {
  npc_transmit_nodes_flag = 0x0000000000000001 , npc_transmit_nodes_x = 0x0000000000000002 , npc_transmit_nodes_y = 0x0000000000000004 , npc_transmit_nodes_xm = 0x0000000000000008 ,
  npc_transmit_nodes_ym = 0x0000000000000010 , npc_transmit_nodes_code_flag = 0x0000000000000020 , npc_transmit_nodes_code_event = 0x0000000000000040 , npc_transmit_nodes_surf = 0x0000000000000080 ,
  npc_transmit_nodes_hit_voice = 0x0000000000000100 , npc_transmit_nodes_destroy_voice = 0x0000000000000200 , npc_transmit_nodes_life = 0x0000000000000400 , npc_transmit_nodes_exp = 0x0000000000000800 ,
  npc_transmit_nodes_direct = 0x0000000000001000 , npc_transmit_nodes_bits = 0x0000000000002000 , npc_transmit_nodes_ani_wait = 0x0000000000004000 , npc_transmit_nodes_ani_no = 0x0000000000008000 ,
  npc_transmit_nodes_count1 = 0x0000000000010000 , npc_transmit_nodes_count2 = 0x0000000000020000 , npc_transmit_nodes_count3 = 0x0000000000040000 , npc_transmit_nodes_count4 = 0x0000000000080000 ,
  npc_transmit_nodes_act_no = 0x0000000000100000 , npc_transmit_nodes_act_wait = 0x0000000000200000 , npc_transmit_nodes_shock = 0x0000000000400000 , npc_transmit_nodes_damage = 0x0000000000800000 ,
  npc_transmit_nodes_pNpc = 0x0000000001000000 , npc_transmit_nodes_focus = 0x0000000002000000 , npc_transmit_nodes_focus2 = 0x0000000004000000 , npc_transmit_nodes_xm2 = 0x0000000008000000 ,
  npc_transmit_nodes_ym2 = 0x0000000010000000 , npc_transmit_nodes_zone = 0x0000000020000000 , npc_transmit_nodes_rect_left = 0x0000000040000000 , npc_transmit_nodes_rect_top = 0x0000000080000000 ,
  npc_transmit_nodes_rect_right = 0x0000000100000000 , npc_transmit_nodes_rect_bottom = 0x0000000200000000 , npc_transmit_nodes_tgt_x = 0x0000000400000000 , npc_transmit_nodes_tgt_y = 0x0000000800000000 ,
  NPC_TRANSMIT_NODES_ALL = 0x0000000FFFFFFFFF , NPC_TRANSMIT_NODES_COUNT = 36 , NPC_TRANSMIT_NODES_MAX_BYTE_SIZE = 130 + (sizeof(NetClientId) * 2)
}
 Internal transmit nodes for NPCs (npc->transmit_nodes)
 
enum  CSM_BossTypes {
  CSM_BOSS_NONE = 0 , CSM_BOSS_OMGEA = 1 , CSM_BOSS_BALFROG = 2 , CSM_BOSS_MOSTER_X_TOP_LEFT = 3 ,
  CSM_BOSS_MOSTER_X_TOP_RIGHT = 4 , CSM_BOSS_MOSTER_X_BOTTOM_LEFT = 5 , CSM_BOSS_MOSTER_X_BOTTOM_RIGHT = 6 , CSM_BOSS_MOSTER_X = 7 ,
  CSM_BOSS_CORE = 8 , CSM_BOSS_IRONHEAD = 9 , CSM_BOSS_TWINS = 10 , CSM_BOSS_UNDEAD_CORE = 11 ,
  CSM_BOSS_HEAVY_PRESS = 12 , CSM_BOSS_BALLOS_BOUNCING = 13 , CSM_BOSS_BALLOS_PLATFORMS = 14 , CSM_BOSSTYPE_COUNT
}
 Boss types. More...
 
enum  CSM_RankedClientInfoType { CSM_RCIT_IP , CSM_RCIT_USER_IDENT }
 Ranked client type. More...
 
enum  CSM_GameInputMode { CSM_GIM_DYNAMIC , CSM_GIM_FORCE_JOYPAD , CSM_GIM_FORCE_KEYBOARD }
 Game input mode. More...
 
enum  CSM_ProgramMode { CSM_PM_NORMAL , CSM_PM_DEDICATED_SERVER , CSM_PM_SPLITSCREEN_CLIENT , CSM_PM_SPLITSCREEN_SERVER }
 The program mode. More...
 
enum  CSM_ProcessLobby_ReturnFlags {
  CSM_PROCLOBBY_CONTINUE = BIT(0) , CSM_PROCLOBBY_SET_DIRTY = BIT(1) , CSM_PROCLOBBY_UPDATE_READY_TEXT = BIT(2) , CSM_PROCLOBBY_UPDATE_TIMER_TEXT = BIT(3) ,
  CSM_PROCLOBBY_PLEASE_WAIT = BIT(4)
}
 Return flags for CaveNet::Server::ProcessLobby(). More...
 
enum  CSM_ClientRanks : unsigned char {
  CSM_RANK_BANNED = 0 , CSM_RANK_NORMAL = 1 , CSM_RANK_ADMIN = 2 , CSM_RANK_SUPER_ADMIN = 3 ,
  CSM_RANK_HOST = 4 , CSM_RANK_CUSTOM = 5
}
 All possible values for a client's mAdminRank. More...
 
enum  GuiObjectDragType {
  DRAG_NONE , DRAG_SELECT , DRAG_TOP_LEFT , DRAG_TOP ,
  DRAG_TOP_RIGHT , DRAG_LEFT , DRAG_RIGHT , DRAG_BOTTOM_LEFT ,
  DRAG_BOTTOM , DRAG_BOTTOM_RIGHT , DRAG_WHOLE
}
 All possible drag events for dragging a window.
 
enum  GuiObjectAnchorType {
  ANCHOR_NONE , ANCHOR_TOP_LEFT , ANCHOR_TOP , ANCHOR_TOP_RIGHT ,
  ANCHOR_LEFT , ANCHOR_RIGHT , ANCHOR_BOTTOM_LEFT , ANCHOR_BOTTOM ,
  ANCHOR_BOTTOM_RIGHT
}
 Anchor types for DynamicWindowMode GUI elements.
 
enum  GuiObjectSizingType {
  SIZING_LEFT = 0 , SIZING_WIDTH = 1 , SIZING_RIGHT = 2 , SIZING_CENTER = 3 ,
  SIZING_RELATIVE = 4 , SIZING_TOP = 0 , SIZING_HEIGHT = 1 , SIZING_BOTTOM = 2
}
 All possible sizing types for GUI elements using DynamicWindowMode.
 
enum  GuiObjectFlags : unsigned int { OBJ_FLAG_STRETCH_WIDTH = 0x00000001 , OBJ_FLAG_STRETCH_HEIGHT = 0x00000002 , OBJ_FLAG_HIDDEN = 0x00000004 , OBJ_FLAG_HIDDEN_PARENT = 0x00000008 }
 Flags for DynamicWindowMode GUI elements.
 
enum  GuiObjectClassType {
  OBJ_INVALID = 0 , OBJ_BUTTON , OBJ_CENTERED_TEXT , OBJ_CHECK_BOX ,
  OBJ_COLOR_PICKER , OBJ_DRAGGABLE_WINDOW , OBJ_DROPDOWN , OBJ_GROUPBOX ,
  OBJ_KEYINPUT , OBJ_LABEL , OBJ_SELECTABLE_LABEL , OBJ_SCROLL_AREA ,
  OBJ_SLIDER_INT , OBJ_SYSTEM_MENU , OBJ_TAB_BOOK , OBJ_TEXT_INPUT ,
  OBJ_SELECTABLE_LIST , OBJ_RECT , OBJ_DIALOG_BOX , OBJ_BITMAP
}
 All possible GUI elements for DynamicWindowMode.
 
enum  CSM_SDL_Scancode {
  CSM_SDL_SCANCODE_UNKNOWN = 0 , CSM_SDL_SCANCODE_A = 4 , CSM_SDL_SCANCODE_B = 5 , CSM_SDL_SCANCODE_C = 6 ,
  CSM_SDL_SCANCODE_D = 7 , CSM_SDL_SCANCODE_E = 8 , CSM_SDL_SCANCODE_F = 9 , CSM_SDL_SCANCODE_G = 10 ,
  CSM_SDL_SCANCODE_H = 11 , CSM_SDL_SCANCODE_I = 12 , CSM_SDL_SCANCODE_J = 13 , CSM_SDL_SCANCODE_K = 14 ,
  CSM_SDL_SCANCODE_L = 15 , CSM_SDL_SCANCODE_M = 16 , CSM_SDL_SCANCODE_N = 17 , CSM_SDL_SCANCODE_O = 18 ,
  CSM_SDL_SCANCODE_P = 19 , CSM_SDL_SCANCODE_Q = 20 , CSM_SDL_SCANCODE_R = 21 , CSM_SDL_SCANCODE_S = 22 ,
  CSM_SDL_SCANCODE_T = 23 , CSM_SDL_SCANCODE_U = 24 , CSM_SDL_SCANCODE_V = 25 , CSM_SDL_SCANCODE_W = 26 ,
  CSM_SDL_SCANCODE_X = 27 , CSM_SDL_SCANCODE_Y = 28 , CSM_SDL_SCANCODE_Z = 29 , CSM_SDL_SCANCODE_1 = 30 ,
  CSM_SDL_SCANCODE_2 = 31 , CSM_SDL_SCANCODE_3 = 32 , CSM_SDL_SCANCODE_4 = 33 , CSM_SDL_SCANCODE_5 = 34 ,
  CSM_SDL_SCANCODE_6 = 35 , CSM_SDL_SCANCODE_7 = 36 , CSM_SDL_SCANCODE_8 = 37 , CSM_SDL_SCANCODE_9 = 38 ,
  CSM_SDL_SCANCODE_0 = 39 , CSM_SDL_SCANCODE_RETURN = 40 , CSM_SDL_SCANCODE_ESCAPE = 41 , CSM_SDL_SCANCODE_BACKSPACE = 42 ,
  CSM_SDL_SCANCODE_TAB = 43 , CSM_SDL_SCANCODE_SPACE = 44 , CSM_SDL_SCANCODE_MINUS = 45 , CSM_SDL_SCANCODE_EQUALS = 46 ,
  CSM_SDL_SCANCODE_LEFTBRACKET = 47 , CSM_SDL_SCANCODE_RIGHTBRACKET = 48 , CSM_SDL_SCANCODE_BACKSLASH = 49 , CSM_SDL_SCANCODE_NONUSHASH = 50 ,
  CSM_SDL_SCANCODE_SEMICOLON = 51 , CSM_SDL_SCANCODE_APOSTROPHE = 52 , CSM_SDL_SCANCODE_GRAVE = 53 , CSM_SDL_SCANCODE_COMMA = 54 ,
  CSM_SDL_SCANCODE_PERIOD = 55 , CSM_SDL_SCANCODE_SLASH = 56 , CSM_SDL_SCANCODE_CAPSLOCK = 57 , CSM_SDL_SCANCODE_F1 = 58 ,
  CSM_SDL_SCANCODE_F2 = 59 , CSM_SDL_SCANCODE_F3 = 60 , CSM_SDL_SCANCODE_F4 = 61 , CSM_SDL_SCANCODE_F5 = 62 ,
  CSM_SDL_SCANCODE_F6 = 63 , CSM_SDL_SCANCODE_F7 = 64 , CSM_SDL_SCANCODE_F8 = 65 , CSM_SDL_SCANCODE_F9 = 66 ,
  CSM_SDL_SCANCODE_F10 = 67 , CSM_SDL_SCANCODE_F11 = 68 , CSM_SDL_SCANCODE_F12 = 69 , CSM_SDL_SCANCODE_PRINTSCREEN = 70 ,
  CSM_SDL_SCANCODE_SCROLLLOCK = 71 , CSM_SDL_SCANCODE_PAUSE = 72 , CSM_SDL_SCANCODE_INSERT = 73 , CSM_SDL_SCANCODE_HOME = 74 ,
  CSM_SDL_SCANCODE_PAGEUP = 75 , CSM_SDL_SCANCODE_DELETE = 76 , CSM_SDL_SCANCODE_END = 77 , CSM_SDL_SCANCODE_PAGEDOWN = 78 ,
  CSM_SDL_SCANCODE_RIGHT = 79 , CSM_SDL_SCANCODE_LEFT = 80 , CSM_SDL_SCANCODE_DOWN = 81 , CSM_SDL_SCANCODE_UP = 82 ,
  CSM_SDL_SCANCODE_NUMLOCKCLEAR = 83 , CSM_SDL_SCANCODE_KP_DIVIDE = 84 , CSM_SDL_SCANCODE_KP_MULTIPLY = 85 , CSM_SDL_SCANCODE_KP_MINUS = 86 ,
  CSM_SDL_SCANCODE_KP_PLUS = 87 , CSM_SDL_SCANCODE_KP_ENTER = 88 , CSM_SDL_SCANCODE_KP_1 = 89 , CSM_SDL_SCANCODE_KP_2 = 90 ,
  CSM_SDL_SCANCODE_KP_3 = 91 , CSM_SDL_SCANCODE_KP_4 = 92 , CSM_SDL_SCANCODE_KP_5 = 93 , CSM_SDL_SCANCODE_KP_6 = 94 ,
  CSM_SDL_SCANCODE_KP_7 = 95 , CSM_SDL_SCANCODE_KP_8 = 96 , CSM_SDL_SCANCODE_KP_9 = 97 , CSM_SDL_SCANCODE_KP_0 = 98 ,
  CSM_SDL_SCANCODE_KP_PERIOD = 99 , CSM_SDL_SCANCODE_NONUSBACKSLASH = 100 , CSM_SDL_SCANCODE_APPLICATION = 101 , CSM_SDL_SCANCODE_POWER = 102 ,
  CSM_SDL_SCANCODE_KP_EQUALS = 103 , CSM_SDL_SCANCODE_F13 = 104 , CSM_SDL_SCANCODE_F14 = 105 , CSM_SDL_SCANCODE_F15 = 106 ,
  CSM_SDL_SCANCODE_F16 = 107 , CSM_SDL_SCANCODE_F17 = 108 , CSM_SDL_SCANCODE_F18 = 109 , CSM_SDL_SCANCODE_F19 = 110 ,
  CSM_SDL_SCANCODE_F20 = 111 , CSM_SDL_SCANCODE_F21 = 112 , CSM_SDL_SCANCODE_F22 = 113 , CSM_SDL_SCANCODE_F23 = 114 ,
  CSM_SDL_SCANCODE_F24 = 115 , CSM_SDL_SCANCODE_EXECUTE = 116 , CSM_SDL_SCANCODE_HELP = 117 , CSM_SDL_SCANCODE_MENU = 118 ,
  CSM_SDL_SCANCODE_SELECT = 119 , CSM_SDL_SCANCODE_STOP = 120 , CSM_SDL_SCANCODE_AGAIN = 121 , CSM_SDL_SCANCODE_UNDO = 122 ,
  CSM_SDL_SCANCODE_CUT = 123 , CSM_SDL_SCANCODE_COPY = 124 , CSM_SDL_SCANCODE_PASTE = 125 , CSM_SDL_SCANCODE_FIND = 126 ,
  CSM_SDL_SCANCODE_MUTE = 127 , CSM_SDL_SCANCODE_VOLUMEUP = 128 , CSM_SDL_SCANCODE_VOLUMEDOWN = 129 , CSM_SDL_SCANCODE_KP_COMMA = 133 ,
  CSM_SDL_SCANCODE_KP_EQUALSAS400 = 134 , CSM_SDL_SCANCODE_INTERNATIONAL1 = 135 , CSM_SDL_SCANCODE_INTERNATIONAL2 = 136 , CSM_SDL_SCANCODE_INTERNATIONAL3 = 137 ,
  CSM_SDL_SCANCODE_INTERNATIONAL4 = 138 , CSM_SDL_SCANCODE_INTERNATIONAL5 = 139 , CSM_SDL_SCANCODE_INTERNATIONAL6 = 140 , CSM_SDL_SCANCODE_INTERNATIONAL7 = 141 ,
  CSM_SDL_SCANCODE_INTERNATIONAL8 = 142 , CSM_SDL_SCANCODE_INTERNATIONAL9 = 143 , CSM_SDL_SCANCODE_LANG1 = 144 , CSM_SDL_SCANCODE_LANG2 = 145 ,
  CSM_SDL_SCANCODE_LANG3 = 146 , CSM_SDL_SCANCODE_LANG4 = 147 , CSM_SDL_SCANCODE_LANG5 = 148 , CSM_SDL_SCANCODE_LANG6 = 149 ,
  CSM_SDL_SCANCODE_LANG7 = 150 , CSM_SDL_SCANCODE_LANG8 = 151 , CSM_SDL_SCANCODE_LANG9 = 152 , CSM_SDL_SCANCODE_ALTERASE = 153 ,
  CSM_SDL_SCANCODE_SYSREQ = 154 , CSM_SDL_SCANCODE_CANCEL = 155 , CSM_SDL_SCANCODE_CLEAR = 156 , CSM_SDL_SCANCODE_PRIOR = 157 ,
  CSM_SDL_SCANCODE_RETURN2 = 158 , CSM_SDL_SCANCODE_SEPARATOR = 159 , CSM_SDL_SCANCODE_OUT = 160 , CSM_SDL_SCANCODE_OPER = 161 ,
  CSM_SDL_SCANCODE_CLEARAGAIN = 162 , CSM_SDL_SCANCODE_CRSEL = 163 , CSM_SDL_SCANCODE_EXSEL = 164 , CSM_SDL_SCANCODE_KP_00 = 176 ,
  CSM_SDL_SCANCODE_KP_000 = 177 , CSM_SDL_SCANCODE_THOUSANDSSEPARATOR = 178 , CSM_SDL_SCANCODE_DECIMALSEPARATOR = 179 , CSM_SDL_SCANCODE_CURRENCYUNIT = 180 ,
  CSM_SDL_SCANCODE_CURRENCYSUBUNIT = 181 , CSM_SDL_SCANCODE_KP_LEFTPAREN = 182 , CSM_SDL_SCANCODE_KP_RIGHTPAREN = 183 , CSM_SDL_SCANCODE_KP_LEFTBRACE = 184 ,
  CSM_SDL_SCANCODE_KP_RIGHTBRACE = 185 , CSM_SDL_SCANCODE_KP_TAB = 186 , CSM_SDL_SCANCODE_KP_BACKSPACE = 187 , CSM_SDL_SCANCODE_KP_A = 188 ,
  CSM_SDL_SCANCODE_KP_B = 189 , CSM_SDL_SCANCODE_KP_C = 190 , CSM_SDL_SCANCODE_KP_D = 191 , CSM_SDL_SCANCODE_KP_E = 192 ,
  CSM_SDL_SCANCODE_KP_F = 193 , CSM_SDL_SCANCODE_KP_XOR = 194 , CSM_SDL_SCANCODE_KP_POWER = 195 , CSM_SDL_SCANCODE_KP_PERCENT = 196 ,
  CSM_SDL_SCANCODE_KP_LESS = 197 , CSM_SDL_SCANCODE_KP_GREATER = 198 , CSM_SDL_SCANCODE_KP_AMPERSAND = 199 , CSM_SDL_SCANCODE_KP_DBLAMPERSAND = 200 ,
  CSM_SDL_SCANCODE_KP_VERTICALBAR = 201 , CSM_SDL_SCANCODE_KP_DBLVERTICALBAR = 202 , CSM_SDL_SCANCODE_KP_COLON = 203 , CSM_SDL_SCANCODE_KP_HASH = 204 ,
  CSM_SDL_SCANCODE_KP_SPACE = 205 , CSM_SDL_SCANCODE_KP_AT = 206 , CSM_SDL_SCANCODE_KP_EXCLAM = 207 , CSM_SDL_SCANCODE_KP_MEMSTORE = 208 ,
  CSM_SDL_SCANCODE_KP_MEMRECALL = 209 , CSM_SDL_SCANCODE_KP_MEMCLEAR = 210 , CSM_SDL_SCANCODE_KP_MEMADD = 211 , CSM_SDL_SCANCODE_KP_MEMSUBTRACT = 212 ,
  CSM_SDL_SCANCODE_KP_MEMMULTIPLY = 213 , CSM_SDL_SCANCODE_KP_MEMDIVIDE = 214 , CSM_SDL_SCANCODE_KP_PLUSMINUS = 215 , CSM_SDL_SCANCODE_KP_CLEAR = 216 ,
  CSM_SDL_SCANCODE_KP_CLEARENTRY = 217 , CSM_SDL_SCANCODE_KP_BINARY = 218 , CSM_SDL_SCANCODE_KP_OCTAL = 219 , CSM_SDL_SCANCODE_KP_DECIMAL = 220 ,
  CSM_SDL_SCANCODE_KP_HEXADECIMAL = 221 , CSM_SDL_SCANCODE_LCTRL = 224 , CSM_SDL_SCANCODE_LSHIFT = 225 , CSM_SDL_SCANCODE_LALT = 226 ,
  CSM_SDL_SCANCODE_LGUI = 227 , CSM_SDL_SCANCODE_RCTRL = 228 , CSM_SDL_SCANCODE_RSHIFT = 229 , CSM_SDL_SCANCODE_RALT = 230 ,
  CSM_SDL_SCANCODE_RGUI = 231 , CSM_SDL_SCANCODE_MODE = 257 , CSM_SDL_SCANCODE_AUDIONEXT = 258 , CSM_SDL_SCANCODE_AUDIOPREV = 259 ,
  CSM_SDL_SCANCODE_AUDIOSTOP = 260 , CSM_SDL_SCANCODE_AUDIOPLAY = 261 , CSM_SDL_SCANCODE_AUDIOMUTE = 262 , CSM_SDL_SCANCODE_MEDIASELECT = 263 ,
  CSM_SDL_SCANCODE_WWW = 264 , CSM_SDL_SCANCODE_MAIL = 265 , CSM_SDL_SCANCODE_CALCULATOR = 266 , CSM_SDL_SCANCODE_COMPUTER = 267 ,
  CSM_SDL_SCANCODE_AC_SEARCH = 268 , CSM_SDL_SCANCODE_AC_HOME = 269 , CSM_SDL_SCANCODE_AC_BACK = 270 , CSM_SDL_SCANCODE_AC_FORWARD = 271 ,
  CSM_SDL_SCANCODE_AC_STOP = 272 , CSM_SDL_SCANCODE_AC_REFRESH = 273 , CSM_SDL_SCANCODE_AC_BOOKMARKS = 274 , CSM_SDL_SCANCODE_BRIGHTNESSDOWN = 275 ,
  CSM_SDL_SCANCODE_BRIGHTNESSUP = 276 , CSM_SDL_SCANCODE_DISPLAYSWITCH = 277 , CSM_SDL_SCANCODE_KBDILLUMTOGGLE = 278 , CSM_SDL_SCANCODE_KBDILLUMDOWN = 279 ,
  CSM_SDL_SCANCODE_KBDILLUMUP = 280 , CSM_SDL_SCANCODE_EJECT = 281 , CSM_SDL_SCANCODE_SLEEP = 282 , CSM_SDL_SCANCODE_APP1 = 283 ,
  CSM_SDL_SCANCODE_APP2 = 284 , CSM_SDL_SCANCODE_AUDIOREWIND = 285 , CSM_SDL_SCANCODE_AUDIOFASTFORWARD = 286 , CSM_SDL_NUM_SCANCODES = 512
}
 SDL2's scancode enum, exposed for CSM. More...
 

Enumeration Type Documentation

◆ CSM_BossTypes

Boss types.

Enumerator
CSM_BOSS_NONE 

Do not use.

CSM_BOSS_OMGEA 

Omega boss.

CSM_BOSS_BALFROG 

Balfrog boss.

CSM_BOSS_MOSTER_X_TOP_LEFT 

The top-left green dot (stage 1)

CSM_BOSS_MOSTER_X_TOP_RIGHT 

The top-right green dot (stage 1)

CSM_BOSS_MOSTER_X_BOTTOM_LEFT 

The bottom-left green dot (stage 1)

CSM_BOSS_MOSTER_X_BOTTOM_RIGHT 

The bottom-right green dot (stage 1)

CSM_BOSS_MOSTER_X 

Monster X boss (stage 2)

CSM_BOSS_CORE 

Island Core boss.

CSM_BOSS_IRONHEAD 

Ironhead boss.

CSM_BOSS_TWINS 

The twin dragons (This boss has a shared health pool)

CSM_BOSS_UNDEAD_CORE 

Undead island core boss.

CSM_BOSS_HEAVY_PRESS 

Heavy press boss.

CSM_BOSS_BALLOS_BOUNCING 

Ballos (Stage w/ bouncing ballos)

CSM_BOSS_BALLOS_PLATFORMS 

Ballos (Stage w/ Platforms)

CSM_BOSSTYPE_COUNT 

The number of boss types.

◆ CSM_ClientRanks

enum CSM_ClientRanks : unsigned char

All possible values for a client's mAdminRank.

Enumerator
CSM_RANK_BANNED 

Client is banned. They cannot connect to the server.

CSM_RANK_NORMAL 

Client is a normal user. They cannot revive players, kick players, etc.

CSM_RANK_ADMIN 

Client is an admin. They can revive & kick players.

CSM_RANK_SUPER_ADMIN 

Client is a super admin. They can revive, ban & kick players.

CSM_RANK_HOST 

Client is the host. They can do all of the things a super admin can do AND execute server console commands.

CSM_RANK_CUSTOM 

Client is customly ranked.

◆ CSM_GameInputMode

Game input mode.

Enumerator
CSM_GIM_DYNAMIC 

Dynamically switch between joypad & keyboard mode based on which one had a button pressed on it last.

CSM_GIM_FORCE_JOYPAD 

Force the game to use & accept joypad input ONLY.

CSM_GIM_FORCE_KEYBOARD 

Force the game to use & accept keyboard input ONLY.

◆ CSM_KEY_DESC

A table of input descriptors.

Contains all input descriptors.

See also
GetInput
Enumerator
CSM_KEY_DESC_KEY 

Contains input flags from KEYBIND.

@note Input flags are set when a button is pressed.
@note Input flags are cleared when a button is released.

@see KEYBIND 
CSM_KEY_DESC_KEYTRG 

Contains input flags from KEYBIND.

@note Input flags are set when a button is pressed.
@note Input flags are cleared one frame after the button is pressed.

@see KEYBIND 
CSM_KEY_DESC_KEY2 

Contains input flags from KEYBIND2.

@note Input flags are set when a button is pressed.
@note Input flags are cleared when a button is released.

@see KEYBIND2 
CSM_KEY_DESC_KEYTRG2 

Contains input flags from KEYBIND2.

@note Input flags are set when a button is pressed.
@note Input flags are cleared one frame after the button is pressed.

@see KEYBIND2 
CSM_KEY_DESC_KEY_JOY 

Contains input flags from KEYBIND_JOYSTICK.

@note Input flags are set when a button is pressed.
@note Input flags are cleared when a button is released.

@see KEYBIND_JOYSTICK 
CSM_KEY_DESC_KEYTRG_JOY 

Contains input flags from KEYBIND_JOYSTICK.

@note Input flags are set when a button is pressed.
@note Input flags are cleared one frame after the button is pressed.

@see KEYBIND_JOYSTICK 

◆ CSM_KEYBIND_DESC

A table of keybind descriptors.

Contains all keybind descriptors.

See also
GetKeybind
Enumerator
CSM_KEYBIND_DESC_JUMP 

Jump button.

CSM_KEYBIND_DESC_SHOOT 

Shoot button.

CSM_KEYBIND_DESC_ARMS_NEXT 

Next Weapon button.

CSM_KEYBIND_DESC_ARMS_PREV 

Previous Weapon button.

CSM_KEYBIND_DESC_INVENTORY 

Inventory button.

CSM_KEYBIND_DESC_MAP 

Map button.

CSM_KEYBIND_DESC_OK 

"OK" button

CSM_KEYBIND_DESC_CANCEL 

"Cancel" button

CSM_KEYBIND_DESC_LEFT 

Left button.

CSM_KEYBIND_DESC_UP 

Up button.

CSM_KEYBIND_DESC_RIGHT 

Right button.

CSM_KEYBIND_DESC_DOWN 

Down button.

◆ CSM_NET_CLIENT_QUERY

enum CSM_NET_CLIENT_QUERY : unsigned long long int

A table of query flags.

Contains flags used to get & set client information.

See also
CSM_NET_CLIENT::LoadClientByIndex
CSM_NET_CLIENT::LoadClientByPointer
CSM_NET_CLIENT::LoadClientByGhostID
Enumerator
CSM_NCQ_EVERYTHING 

Everything.

CSM_NCQ_NAME 

[#CSM_NET_CLIENT::net_name] Get/set the net name.

CSM_NCQ_PLAYER 

[#CSM_NET_CLIENT::player] Get/set the player data.

CSM_NCQ_BEING_CARRIED 

[#CSM_NET_CLIENT::is_being_carried] Get/set being carried.

If the client is being carried and the interface has it set to false, then the client will be dismounted. 
CSM_NCQ_IS_CARRYING 

[#CSM_NET_CLIENT::is_carrying] Get/set carrying someone.

If the client is carrying someone and the interface has it set to false, then the carried client will be dismounted. 
CSM_NCQ_DEAD 

[#CSM_NET_CLIENT::is_dead] Get/set being dead.

If the client is dead and the interface has it set to false, then the client will be revived will 3 health.
If the client is not dead and the interface has it set to true, then the client will be killed. 
CSM_NCQ_GAMEFLAGS 

[#CSM_NET_CLIENT::gameFlags] Get/set the client's game flags.

CSM_NCQ_KEY 

[#CSM_NET_CLIENT::key] Get/set the client's input flags.

CSM_NCQ_KEYTRG 

[#CSM_NET_CLIENT::keyTrg] Get/set the client's input flags.

CSM_NCQ_CURRENT_WEAPON 

[#CSM_NET_CLIENT::currentWeapon] Get/set the client's current weapon.

CSM_NCQ_CARRYING 

[#CSM_NET_CLIENT::carrying_ghost_id] Get/set who the client is carrying.

The carried client will be set according to CSM_NET_CLIENT::carrying_ghost_id. 
CSM_NCQ_CARRIER 

[#CSM_NET_CLIENT::carried_by_ghost_id] Get/set who is carrying the client.

The current carrier of the client will be set according to CSM_NET_CLIENT::carried_by_ghost_id. 
CSM_NCQ_SPUR_CHARGE 

[#CSM_NET_CLIENT::spur_charge] Get/set the client's spur charge amount.

CSM_NCQ_SPUR_MAX 

[#CSM_NET_CLIENT::spur_max] Get/set whether the client has maximum spur charge.

◆ CSM_ProcessLobby_ReturnFlags

Return flags for CaveNet::Server::ProcessLobby().

Enumerator
CSM_PROCLOBBY_CONTINUE 

Do not halt execution.

CSM_PROCLOBBY_SET_DIRTY 

Dirty the mode.

CSM_PROCLOBBY_UPDATE_READY_TEXT 

Update all clients' ready text.

CSM_PROCLOBBY_UPDATE_TIMER_TEXT 

Update the timer text.

CSM_PROCLOBBY_PLEASE_WAIT 

Update the timer text to show 'please wait'.

◆ CSM_ProgramMode

The program mode.

Enumerator
CSM_PM_NORMAL 

Normal execution.

CSM_PM_DEDICATED_SERVER 

The game is running in 'dedicated server' mode.

CSM_PM_SPLITSCREEN_CLIENT 

The game is running in 'splitscreen' mode as a client.

CSM_PM_SPLITSCREEN_SERVER 

The game is running in 'splitscreen' mode as server.

◆ CSM_RankedClientInfoType

Ranked client type.

Enumerator
CSM_RCIT_IP 

Use the IP feature.

◆ CSM_SDL_Scancode

SDL2's scancode enum, exposed for CSM.

From SDL_scancode.h

Enumerator
CSM_SDL_SCANCODE_BACKSLASH 

Located at the lower left of the return key on ISO keyboards and at the right end of the QWERTY row on ANSI keyboards.

Produces REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US layout, REVERSE SOLIDUS and VERTICAL LINE in a UK Mac layout, NUMBER SIGN and TILDE in a UK Windows layout, DOLLAR SIGN and POUND SIGN in a Swiss German layout, NUMBER SIGN and APOSTROPHE in a German layout, GRAVE ACCENT and POUND SIGN in a French Mac layout, and ASTERISK and MICRO SIGN in a French Windows layout.

CSM_SDL_SCANCODE_NONUSHASH 

ISO USB keyboards actually use this code instead of 49 for the same key, but all OSes I've seen treat the two codes identically.

So, as an implementor, unless your keyboard generates both of those codes and your OS treats them differently, you should generate CSM_SDL_SCANCODE_BACKSLASH instead of this code. As a user, you should not rely on this code because SDL will never generate it with most (all?) keyboards.

CSM_SDL_SCANCODE_GRAVE 

Located in the top left corner (on both ANSI and ISO keyboards).

Produces GRAVE ACCENT and TILDE in a US Windows layout and in US and UK Mac layouts on ANSI keyboards, GRAVE ACCENT and NOT SIGN in a UK Windows layout, SECTION SIGN and PLUS-MINUS SIGN in US and UK Mac layouts on ISO keyboards, SECTION SIGN and DEGREE SIGN in a Swiss German layout (Mac: only on ISO keyboards), CIRCUMFLEX ACCENT and DEGREE SIGN in a German layout (Mac: only on ISO keyboards), SUPERSCRIPT TWO and TILDE in a French Windows layout, COMMERCIAL AT and NUMBER SIGN in a French Mac layout on ISO keyboards, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French Mac layout on ANSI keyboards.

CSM_SDL_SCANCODE_INSERT 

insert on PC, help on some Mac keyboards (but does send code 73, not 117)

CSM_SDL_SCANCODE_NUMLOCKCLEAR 

num lock on PC, clear on Mac keyboards

CSM_SDL_SCANCODE_NONUSBACKSLASH 

This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y.

Produces GRAVE ACCENT and TILDE in a US or UK Mac layout, REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US or UK Windows layout, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French layout.

CSM_SDL_SCANCODE_APPLICATION 

windows contextual menu, compose

CSM_SDL_SCANCODE_POWER 

The USB document says this is a status flag, not a physical key - but some Mac keyboards do have a power key.

CSM_SDL_SCANCODE_AGAIN 

redo

CSM_SDL_SCANCODE_INTERNATIONAL1 

used on Asian keyboards, see footnotes in USB doc

CSM_SDL_SCANCODE_INTERNATIONAL3 

Yen.

CSM_SDL_SCANCODE_LANG1 

Hangul/English toggle.

CSM_SDL_SCANCODE_LANG2 

Hanja conversion.

CSM_SDL_SCANCODE_LANG3 

Katakana.

CSM_SDL_SCANCODE_LANG4 

Hiragana.

CSM_SDL_SCANCODE_LANG5 

Zenkaku/Hankaku.

CSM_SDL_SCANCODE_LANG6 

reserved

CSM_SDL_SCANCODE_LANG7 

reserved

CSM_SDL_SCANCODE_LANG8 

reserved

CSM_SDL_SCANCODE_LANG9 

reserved

CSM_SDL_SCANCODE_ALTERASE 

Erase-Eaze.

CSM_SDL_SCANCODE_LALT 

alt, option

CSM_SDL_SCANCODE_LGUI 

windows, command (apple), meta

CSM_SDL_SCANCODE_RALT 

alt gr, option

CSM_SDL_SCANCODE_RGUI 

windows, command (apple), meta

CSM_SDL_SCANCODE_MODE 

I'm not sure if this is really not covered by any of the above, but since there's a special KMOD_MODE for it I'm adding it here.

CSM_SDL_SCANCODE_DISPLAYSWITCH 

display mirroring/dual display switch, video mode switch

CSM_SDL_NUM_SCANCODES 

not a key, just marks the number of scancodes for array bounds

◆ Directions

enum Directions

Directions.

Enumerator
DIRECT_LEFT 

Left.

DIRECT_UP 

Up.

DIRECT_RIGHT 

Right.

DIRECT_DOWN 

Down.

DIRECT_CENTER 

Center.

DIRECT_RIGHT_UP 

Right-Up.

DIRECT_DOWN_RIGHT 

Down-Right.

DIRECT_COUNT 

Number of possible directions.

◆ GameFlags

enum GameFlags

Game flags for g_GameFlags.

Enumerator
GF_EnableActing 

Enable calling ACT (ex.

ActMyChar())

Essentially freezes the game if not set 
GF_EnableControl 

Enable player control.

Does not allow the player to move whilst set. Also, disables drawing the HUD 
GF_DisableInventory 

Disable utitlies.

Disables inventory & minimap 
GF_CreditsRunning 

Credits are running.

Credits are running; draws movie black bars & the ending illustration. 

◆ GameProcessMode

Controls what the game is currently doing.

See also
BaseModeInstance
Enumerator
GPM_CONTINUE 

Continue the game from a mode.

GPM_CLOSE_GAME 

Closing the game.

GPM_OPENING_SEQUENCE 

Showing the opening sequence.

GPM_TITLE_SCREEN 

Showing the title screen.

GPM_ACTION 

This is where all the singleplayer gameplay happens.

Switching to this mode automatically loads a game. 
GPM_NET_ACITON 

This is where all the multiplayer gameplay happens.

If the game is not connected to a server, then this mode will immediately display a 'disconnected' error. 
GPM_NET_LOBBY 

Showing the current net lobby we're in.

If the game is not connected to a server, then this mode will immediately display a 'disconnected' error. 
GPM_NET_CONNECTING 

Showing the 'CONNECTING...' screen.

If the game is not connected to a server, then this mode will immediately display a 'disconnected' error. 
GPM_NET_MANIFEST 

Showing the download screen.

If the game is not connected to a server, then this mode will immediately display a 'disconnected' error. 

◆ GMC_cond

enum GMC_cond

Internal cond flags for gMC (gMC.cond)

Enumerator
gmc_cond_disabled 

Player is hidden & disabled.

gmc_cond_hidden 

Player is not drawn.

◆ GMC_equipflags

Internal equip flags for gMC (gMC.equip)

Enumerator
gmc_eflag_booster_08 

Booster v0.8.

gmc_eflag_map_system 

Map System.

gmc_eflag_arms_barrier 

Arms Barrier.

gmc_eflag_turbocharge 

Turbocharge.

gmc_eflag_air_tank 

Curly's Air Tank.

gmc_eflag_booster_2 

Booster v2.0.

gmc_eflag_mimiga_mask 

Mimiga Mask.

gmc_eflag_whimsical_star 

Whimsical Star.

gmc_eflag_nikumaru_timer 

Mikumaru Timer.

◆ GMC_flag

enum GMC_flag

Internal flags for gMC (gMC.flag)

Enumerator
gmc_flag_collide_left 

Player is colliding with something to the left of them.

gmc_flag_collide_ceiling 

Player is hitting their head on something.

gmc_flag_collide_right 

Player is colliding with something to the right of them.

gmc_flag_collide_floor 

Player is on a solid floor.

gmc_flag_collide_triangleA 

Slope.

gmc_flag_collide_triangleB 

Slope.

gmc_flag_collide_triangleC 

Slope.

gmc_flag_collide_triangleD 

Slope.

gmc_flag_collide_triangleE 

Slope.

gmc_flag_collide_triangleF 

Slope.

gmc_flag_collide_triangleG 

Slope.

gmc_flag_collide_triangleH 

Slope.

gmc_flag_on_water_tile 

Slope.

gmc_flag_on_damage_tile 

Slope.

gmc_flag_on_damagew_tile 

Slope.

gmc_flag_in_current_left 

Wind / water current moving left.

gmc_flag_in_current_up 

Wind / water current moving up.

gmc_flag_in_current_right 

Wind / water current moving right.

gmc_flag_in_current_down 

Wind / water current moving down.

gmc_flag_in_current 

Any wind / water current.

◆ KEYBIND

enum KEYBIND

A table of input flags.

Contains input flags for CSM_KEY_DESC_KEY.

See also
GetInput
CSM_KEY_DESC_KEY
Enumerator
KEY_LEFT 

Left arrow key.

KEY_RIGHT 

Right arrow key.

KEY_UP 

Up arrow key.

KEY_DOWN 

Down arrow key.

KEY_MAP 

"Map" button

KEY_X 

X key.

KEY_Z 

Z key.

KEY_ARMS 

"Next Weapon" button

KEY_ARMSREV 

"Previous weapon" button

KEY_SHIFT 

Shift key.

KEY_F1 

F1 key.

KEY_F2 

F2 key.

KEY_ITEM 

KeyItem Button.

KEY_ESCAPE 

Escape button.

KEY_ALT_LEFT 

Forward slash key.

KEY_ALT_DOWN 

Period key.

KEY_ALT_RIGHT 

Comma key.

KEY_ALT_UP 

Colon key.

KEY_L 

L key.

KEY_PLUS 

Plus key.

KEY_LMB 

Left mouse button.

KEY_RMB 

Right mouse button.

KEY_SCRL_DOWN 

Mouse scroll wheel (down)

KEY_SCRL_UP 

Mouse scroll wheel (up)

KEY_MAX 

Maximum key flags.

◆ KEYBIND2

enum KEYBIND2

A table of input flags.

Contains input flags for CSM_KEY_DESC_KEY2.

See also
GetInput
CSM_KEY_DESC_KEY2
Enumerator
KEY2_NUM_0 

0 key

KEY2_NUM_1 

1 key

KEY2_NUM_2 

2 key

KEY2_NUM_3 

3 key

KEY2_NUM_4 

4 key

KEY2_NUM_5 

5 key

KEY2_NUM_6 

6 key

KEY2_NUM_7 

7 key

KEY2_NUM_8 

8 key

KEY2_NUM_9 

9 key

KEY2_TAB 

Tab key.

KEY2_F3 

F3 key.

KEY2_F4 

F4 key.

KEY2_F5 

F5 key.

KEY2_F6 

F6 key.

KEY2_F7 

F7 key.

KEY2_F8 

F8 key.

KEY2_F9 

F9 key.

KEY2_T 

T key.

KEY2_PG_UP 

Page up key.

KEY2_PG_DN 

Page down key.

KEY2_MMB 

Middle mouse button.

◆ KEYBIND_JOYSTICK

A table of joystick input flags.

Contains input flags for CSM_KEY_DESC_KEY_JOY.

See also
GetInput
CSM_KEY_DESC_KEY_JOY
Enumerator
KEY_JOY_A 

Joystick "A" button.

KEY_JOY_B 

Joystick "B" button.

KEY_JOY_X 

Joystick "X" button.

KEY_JOY_Y 

Joystick "Y" button.

KEY_JOY_LEFT_SHOULDER 

Joystick "Left shoulder" button.

KEY_JOY_RIGHT_SHOULDER 

Joystick "Right shoulder" button.

KEY_JOY_START 

Joystick "Start" button.

KEY_JOY_SELECT 

Joystick "Select" button.

◆ KeyInputType

Key input types.

Enumerator
KIT_Key 

gKey and gKeyTrg

KIT_Key2 

gKey2 and gKeyTrg2

KIT_KeyJoypad 

gKey_JOY and gKeyTrg_JOY

◆ NetScoreMaskBits

enum NetScoreMaskBits : unsigned long long int

A table of NetScoreType mask bits.

Lists all flags to determine the mask of a NetScoreType.

Enumerator
NETSCORE_MASK_MISC_STATS 

Miscallaneous statistics.

NETSCORE_MASK_GAME_OBJECTIVE 

Game objective.

NETSCORE_MASK_NPCS 

Score gained from some NPC activity.

NETSCORE_MASK_PLAYERS 

Score gained from some player activity.

NETSCORE_MASK_DAMAGE_DEALT 

Score gained from damage dealt.

NETSCORE_MASK_DAMAGE_TAKEN 

Score gained from damage being taken.

NETSCORE_MASK_KILLS 

Score gained from killing.

◆ NetScoreTypeFlags

enum NetScoreTypeFlags : unsigned long long int

A table of NetScoreType flags.

Lists all flags for a NetScoreType object.

Enumerator
NETSCORE_FLAG_HIDDEN_FROM_UI 

Hides this NetScoreType from the statistics page.

NETSCORE_FLAG_MANDATORY_SCORE 

Forces all clients to have to this NetScoreType upon joining the server.

NETSCORE_FLAG_DONT_SYNC 

Disables automatic syncing between clients for this NetScoreType.

NETSCORE_FLAG_DONT_RESET_ON_DEATH 

Disables zeroing the 'Current Life' points counter on client respawn.

NETSCORE_FLAG_TIME_DIFFERENCE 

Reworks the way the NetScoreType handles value changes: Instead of storing a value, it will instead interpret codes.

Code '0': Stop timer and add the time difference between when timer started and stopped to the NetScoreInstance's total points. Code '1': Start timer Code '2': Basically the same as doing '0' and then '1' afterwards; Adds the difference in time and also starts the timer again. Saves in milliseconds unless NETSCORE_FLAG_TIME_DIFFERENCE_USE_SEC is used.

NETSCORE_FLAG_TIME_DIFFERENCE_USE_SEC 

Saves in seconds instead of milliseconds.

◆ NPC_collision

Internal flags for collision' sake.

Enumerator
npc_collide_left 

Colliding with something to the left of them.

npc_collide_up 

Colliding with something above them.

npc_collide_right 

Colliding with something to the right of them.

npc_collide_down 

Colliding with something below them.

◆ NPC_cond

enum NPC_cond

Internal cond flags for NPCs (npc->cond)

Enumerator
npc_cond_npc_alive 

NPC is not disabled.

◆ NPC_flags

enum NPC_flags

Map flags for NPCs (npc->bits)

Enumerator
npc_solidSoft 

Pushes quote out.

npc_ignore44 

Ignores tile 44 (No NPC)

npc_invulnerable 

Can't get hit.

npc_ignoreSolid 

Doesn't collide with anything.

npc_bouncy 

Quote bounces on the top.

npc_shootable 

Can be shot.

npc_solidHard 

Essentially acts as level tiles.

npc_rearTop 

Rear and top don't hurt.

npc_eventTouch 

Run event when touched (Option 1)

npc_eventDie 

Run event when killed.

npc_appearSet 

Only appear when flag is set.

npc_altDir 

Spawn facing to the right (Option 2)

npc_interact 

Run event when interacted with.

npc_hideSet 

Hide when flag is set.

npc_showDamage 

Show #Damage taken.

npc_deprecated1 

This NPC is an AnimNPC and should be cleaned up on death.

npc_autoFocus 

Auto focus target.

npc_dontUpdate 

Don't send net updates.

npc_deprecated2 

Build special update packets.

npc_ghost 

This NPC is a ghost.

npc_option3 

NPC Option 3.

npc_option4 

NPC Option 4.

npc_dontDeleteOnClientLoad 

Don't delete this NPC when connected to a server & loading a map.

npc_drawOnTop 

Draw on top of everything.

npc_eventDieReal 

Run event when killed.

npc_max_flags 

Max flags.

npc_option1 

NPC Option 1.

npc_option2 

NPC Option 2.

◆ NPC_int_flag

Internal flags for NPCs (npc->flag)

Enumerator
npc_flag_collide_left 

Collide left.

npc_flag_collide_ceiling 

Collide up.

npc_flag_collide_right 

Collide right.

npc_flag_collide_floor 

Collide floor.

npc_flag_collide_wall 

Collide wall.

npc_flag_collide_triangleA 

Collide slope.

npc_flag_collide_triangleB 

Collide slope.

npc_flag_collide_triangleC 

Collide slope.

npc_flag_collide_triangleD 

Collide slope.

npc_flag_collide_triangleE 

Collide slope.

npc_flag_collide_triangleF 

Collide slope.

npc_flag_collide_triangleG 

Collide slope.

npc_flag_collide_triangleH 

Collide slope.

npc_flag_on_water_tile 

In water.

◆ PLAYER_STATE_FLAGS

enum PLAYER_STATE_FLAGS : unsigned long long int

Player state flags.

Enumerator
PSF_NO_AIR 

If set, then this state will not process air.

PSF_NO_WEAPONS 

If set, then players cannot use weapons whilst in this state.

PSF_NO_CAMERA 

If set, then the camera will not follow the player.

PSF_NO_SPECTATE 

If set, then this player cannot be spectated.

PSF_NO_HUD 

If set, then this player's hud cannot be drawn.

PSF_NO_PICKUPS 

If set, then this player cannot pickup drops.

PSF_CENTER_CAMERA 

If set, the camera will be centered onto the player.

PSF_INIT 

If set, then the act function will be called immediately after the state is set.

PSF_FREE 

If set, then the act function will be called before the player's state is changed.

PSF_NOCLIP 

If set, then this player will not be affected by collision.

PSF_NOTARGET 

If set, then this player cannot be focused by NPCs or bosses.

PSF_GOD 

If set, then this player is invulnerable.

PSF_UNIT 

If set, then this state is a 'MYCHAR->unit' state.

PSF_PUT_BUBBLE 

If set, then the bubble from the Ironhead boss will be drawn around the player.

PSF_CARRIED_GOD 

If set, then the player we're carrying has godmode.

PSF_CARRIED_NOTARGET 

If set, then the player we're carrying has notarget.

◆ PLAYER_STATE_TRANSMIT_FLAGS

Playerstate transmit flags.

Please keep the array in MC_Actions.cpp up to date with this one!!

Enumerator
PSTF_COUNT1 

Transmit 'count1' field.

PSTF_COUNT2 

Transmit 'count2' field.

PSTF_COUNT3 

Transmit 'count3' field.

PSTF_COUNT4 

Transmit 'count4' field.

PSTF_ACT_NO 

Transmit 'act_no' field.

PSTF_ACT_WAIT 

Transmit 'act_wait' field.

PSTF_NPC_PTR 

Transmit 'pNpc' field.

PSTF_MYCHAR_PTR 

Transmit 'pOther' and 'pOtherClient' fields.

PSTF_OBJ_X 

Transmit 'obj.x' field.

PSTF_OBJ_Y 

Transmit 'obj.y' field.

PSTF_OBJ_XM 

Transmit 'obj.xm' field.

PSTF_OBJ_YM 

Transmit 'obj.ym' field.

PSTF_OBJ_TGT_X 

Transmit 'obj.tgt_x' field.

PSTF_OBJ_TGT_Y 

Transmit 'obj.tgt_y' field.

PLAYER_TRANSMIT_FLAG_COUNT 

The amount of flags there are.

◆ SCI_SetType

Determine which client to use.

See also
SafeClientInterface::Set
Enumerator
SCI_ST_AUTO 

Automatically determine which client type to use.

SCI_ST_SERVER 

ONLY use server-sided clients.

If the client parameter is set to a client-sided ghost, then it will attempt to find the server-sided client matching the ghost's client id.
If the client parameter is NULL, it will use the local variables that make up singleplayer CaveStory (gMC, gKey, gKeyTrg, etc.)
If the client parameter is NULL AND the set flags specify SCI_ST_ONLY_CLIENTS, then it will attempt to use the local player's server-sided client. 
SCI_ST_CLIENT 

ONLY use client-sided clients.

If the client parameter is set to a server-sided client, then it will attempt to find the client-sided ghost matching the client's ghost id.
If the client parameter is NULL, it will use the local variables that make up singleplayer CaveStory (gMC, gKey, gKeyTrg, etc.)
If the client parameter is NULL AND the set flags specify SCI_ST_ONLY_CLIENTS, then it will attempt to use the local player's client-sided client. 
SCI_ST_ONLY_CLIENTS 

ONLY use client objects. Do NOT use local player variables.

SCI_ST_EXACT 

Instead of determining the best suitable candidate, just use the inputted client parameter.

Ignores all other flags that determine type of client

SCI_ST_ENSURE_PLAYER 

Ensure that a MYCHAR is assigned, no matter what.

◆ Surface_Ids

List of surface IDs.

Enumerator
SURFACE_ID_TITLE 

Title.png.

SURFACE_ID_PIXEL 

Pixel logo.

SURFACE_ID_LEVEL_TILESET 

Current level tileset.

SURFACE_ID_FADE 

Fade surface.

SURFACE_ID_ITEM_IMAGE 

ItemImage.png.

SURFACE_ID_MAP 

Map System Surface.

SURFACE_ID_SCREEN_GRAB 

Last screen grab.

SURFACE_ID_ARMS 

Arms.png.

SURFACE_ID_ARMS_IMAGE 

ArmsImage.png.

SURFACE_ID_ROOM_NAME 

Room Name Surface.

SURFACE_ID_STAGE_ITEM 

StageImage.png.

SURFACE_ID_LOADING 

Loading.png.

SURFACE_ID_MY_CHAR 

MyChar.png (deprecated)

SURFACE_ID_BULLET 

Bullet.png.

SURFACE_ID_CARET 

Caret.png.

SURFACE_ID_NPC_SYM 

Npc/NpcSym.png.

SURFACE_ID_LEVEL_SPRITESET_1 

Current level spritesheet (Npc)

SURFACE_ID_LEVEL_SPRITESET_2 

Current level spritesheet (Boss)

SURFACE_ID_NPC_REGU 

Npc/NpcRegu.png.

SURFACE_ID_TEXT_BOX 

Textbox stuff.

SURFACE_ID_FACE 

Face.png.

SURFACE_ID_LEVEL_BACKGROUND 

Current level background.

SURFACE_ID_VALUE_VIEW 

ValueView.

SURFACE_ID_TEXT_LINE1 

TextLine1.

SURFACE_ID_TEXT_LINE2 

TextLine2.

SURFACE_ID_TEXT_LINE3 

TextLine3.

SURFACE_ID_TEXT_LINE4 

TextLine4.

SURFACE_ID_TEXT_LINE5 

TextLine5.

SURFACE_ID_CREDIT_CAST 

?

SURFACE_ID_CREDITS_IMAGE 

Currently loaded credits image.

SURFACE_ID_CASTS 

casts.png

SURFACE_ID_SCREEN_GRAB2 

Screengrab 2.

SURFACE_ID_GUI 

GUI.

SURFACE_ID_FACE_COLOR_MASK 

Character's face color mask (deprecated)

SURFACE_ID_CHAT_TOPICS 

ChatTopics.png.

SURFACE_ID_CHAT_TOPICS_MASK 

ChatTopics_Mask.png.

SURFACE_ID_CONTROLS 

Controls.png.

SURFACE_ID_NET_NAME_PLANE 

Net name surface.

SURFACE_ID_DEMO_EDITOR 

DemoEditor.png.

SURFACE_ID_HELP_IMAGES 

HelpImages.png.

SURFACE_ID_TEAM_SPAWN_DOORS 

TeamSpawnDoors.png.

SURFACE_ID_SCREEN_IMAGE 

Used for <IMG and <IMF.

SURFACE_ID_SCREEN_GRAB3 

Screen grab 3.

SURFACE_ID_MAX_UNDYNAMIC 

Number of static surfaces.

SURFACE_ID_ALLOCATABLE_SURFACE_START 

Start of allocatable surface indexing.

SURFACE_ID_ALLOCATABLE_SURFACE_END 

End of allocatable surface indexing.

SURFACE_ID_RENDERER 

Used for drawing directly to the screen with CacheSurface.

SURFACE_ID_RENDERER_TEXTURE 

Used for drawing directly to the renderer's hardware texture.

SURFACE_ID_DEBUGCHARSET 

Debug charset.

SURFACE_ID_MAX 

Number of surfaces.

◆ TextScriptTarget

The TextScript's target.

Enumerator
TS_TARGET_EVERYONE 

Target everyone in the server.

TS_TARGET_EXECUTOR 

Target the event executor.

TS_TARGET_EXECUTOR_TEAM 

Target the event executor's team. If they are not in one, then target them directly.

TS_TARGET_SINGLEPLAYER 

Target singleplayer components.

TS_TARGETCOUNT 

How many targets there can be.

◆ TileType

enum TileType

Tiletype flags.

Useful for checking a map tile's attributes.

See also
CompareTileTypeXY
CompareTileTypeNPC
CompareTileType
GetTileFlagsXY
GetTileFlagsNPC
Enumerator
TT_FOREGROUND 

Tile is drawn after NPCs and the player.

TT_BACKGROUND 

Tile is drawn before NPCs and the player.

TT_WATER 

Water tile.

TT_DAMAGE 

Tile damages the player.

TT_DESTROYABLE 

Tile is destroyable.

TT_NO_NPC 

Tile does not allow NPCs inside of it.

TT_NO_PLAYER 

Tile does not allow the player inside of it.

TT_SHOOTABLE 

Tile is shootable.

TT_SOLID 

Tile is completely solid.

TT_VISIBLE 

Tile is visible.

TT_SLOPE_CEIL_0 

TIle is a right-facing large ceiling slope.

TT_SLOPE_CEIL_1 

TIle is a right-facing small ceiling slope.

TT_SLOPE_CEIL_2 

TIle is a left-facing large ceiling slope.

TT_SLOPE_CEIL_3 

TIle is a left-facing small ceiling slope.

TT_SLOPE_FLOOR_0 

Tile is a right-facing large floor slope.

TT_SLOPE_FLOOR_1 

Tile is a right-facing small floor slope.

TT_SLOPE_FLOOR_2 

Tile is a left-facing large floor slope.

TT_SLOPE_FLOOR_3 

Tile is a left-facing small floor slope.

TT_ANY_SLOPE 

Tile is a slope.

TT_MOVE_LEFT 

Tile pushes the player left.

TT_MOVE_RIGHT 

Tile pushes the player right.

TT_MOVE_UP 

Tile pushes the player up.

TT_MOVE_DOWN 

Tile pushes the player down.

TT_YELLOW_TEAM 

Tile is solid for players not on the yellow team.

TT_GREEN_TEAM 

Tile is solid for players not on the green team.

TT_RED_TEAM 

Tile is solid for players not on the red team.

TT_BLUE_TEAM 

Tile is solid for players not on the blue team.

TT_ANY_MOVE 

Tile moves the player.

TT_ANY_TEAM 

Tile is team-locked.