Cavestory Mod API
CSMAPI_enums.h
Go to the documentation of this file.
1 /*
2  Cavestory Multiplayer API
3  Copyright (C) 2021 Johnny Ledger
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 
26 #pragma once
27 
28 #ifndef BIT
29 #define BIT(x) (1 << x)
30 #endif
31 
32 #undef OBJ_BITMAP
33 
37 {
40 
42  DIRECT_UP = 1,
43 
46 
49 
52 
55 
58 
61 };
62 
66 {
68  KIT_Key = 0,
69 
71  KIT_Key2 = 1,
72 
74  KIT_KeyJoypad = 2
75 };
76 
83 {
108 };
109 
116 {
124 
132 
140 
148 
156 
164 };
165 
173 {
175  KEY_LEFT = 0x00000001,
177  KEY_RIGHT = 0x00000002,
179  KEY_UP = 0x00000004,
181  KEY_DOWN = 0x00000008,
183  KEY_MAP = 0x00000010,
185  KEY_X = 0x00000020,
187  KEY_Z = 0x00000040,
189  KEY_ARMS = 0x00000080,
191  KEY_ARMSREV = 0x00000100,
193  KEY_SHIFT = 0x00000200,
195  KEY_F1 = 0x00000400,
197  KEY_F2 = 0x00000800,
199  KEY_ITEM = 0x00001000,
201  KEY_ESCAPE = 0x00008000,
203  KEY_ALT_LEFT = 0x00010000,
205  KEY_ALT_DOWN = 0x00020000,
207  KEY_ALT_RIGHT = 0x00040000,
209  KEY_ALT_UP = 0x00180000,
211  KEY_L = 0x00080000,
213  KEY_PLUS = 0x00100000,
215  KEY_LMB = 0x00200000,
217  KEY_RMB = 0x00400000,
219  KEY_SCRL_DOWN = 0x00800000,
221  KEY_SCRL_UP = 0x01000000,
223  KEY_MAX = 0x02000000
224 };
225 
233 {
235  KEY2_NUM_0 = 0x00000001,
237  KEY2_NUM_1 = 0x00000002,
239  KEY2_NUM_2 = 0x00000004,
241  KEY2_NUM_3 = 0x00000008,
243  KEY2_NUM_4 = 0x00000010,
245  KEY2_NUM_5 = 0x00000020,
247  KEY2_NUM_6 = 0x00000040,
249  KEY2_NUM_7 = 0x00000080,
251  KEY2_NUM_8 = 0x00000100,
253  KEY2_NUM_9 = 0x00000200,
255  KEY2_TAB = 0x00000400,
257  KEY2_F3 = 0x00000800,
259  KEY2_F4 = 0x00001000,
261  KEY2_F5 = 0x00002000,
263  KEY2_F6 = 0x00004000,
265  KEY2_F7 = 0x00008000,
267  KEY2_F8 = 0x00010000,
269  KEY2_F9 = 0x00020000,
271  KEY2_T = 0x00040000,
273  KEY2_PG_UP = 0x00080000,
275  KEY2_PG_DN = 0x00100000,
277  KEY2_MMB = 0x00200000
278 };
279 
287 {
289  KEY_JOY_A = 0x01000000,
291  KEY_JOY_B = 0x02000000,
293  KEY_JOY_X = 0x04000000,
295  KEY_JOY_Y = 0x08000000,
297  KEY_JOY_LEFT_SHOULDER = 0x10000000,
301  KEY_JOY_START = 0x40000000,
303  KEY_JOY_SELECT = 0x80000000,
304 };
305 
309 enum NetScoreMaskBits : unsigned long long int
310 {
313 
316 
319 
322 
325 
328 
331 
333 };
334 
338 enum NetScoreTypeFlags : unsigned long long int
339 {
342 
345 
348 
351 
359 
362 };
363 
371 enum CSM_NET_CLIENT_QUERY : unsigned long long int
372 {
374  CSM_NCQ_EVERYTHING = 0xFFFFFFFFFFFFFFFF,
375 
377  CSM_NCQ_NAME = 0x0000000000000001,
378 
380  CSM_NCQ_PLAYER = 0x0000000000000002,
381 
385  CSM_NCQ_BEING_CARRIED = 0x0000000000000004,
386 
390  CSM_NCQ_IS_CARRYING = 0x0000000000000008,
391 
396  CSM_NCQ_DEAD = 0x0000000000000010,
397 
399  CSM_NCQ_GAMEFLAGS = 0x0000000000000020,
400 
402  CSM_NCQ_KEY = 0x0000000000000040,
403 
405  CSM_NCQ_KEYTRG = 0x0000000000000080,
406 
408  CSM_NCQ_CURRENT_WEAPON = 0x0000000000000100,
409 
413  CSM_NCQ_CARRYING = 0x0000000000000200,
414 
418  CSM_NCQ_CARRIER = 0x0000000000000400,
419 
421  CSM_NCQ_SPUR_CHARGE = 0x0000000000000800,
422 
424  CSM_NCQ_SPUR_MAX = 0x0000000000001000,
425 };
426 
430 {
434  GF_EnableActing = 0x0001,
435 
440 
445 
450 };
451 
455 {
459  gmc_cond_hidden = 0x0100
460 };
461 
465 {
468 
471 
474 
477 
480 
483 
486 
489 
492 
495 
498 
501 
504 
507 
510 
513 
516 
519 
522 
524  gmc_flag_in_current = 0xF000
525 };
526 
530 {
532  gmc_eflag_booster_08 = 0x00000001,
533 
535  gmc_eflag_map_system = 0x00000002,
536 
539 
541  gmc_eflag_turbocharge = 0x00000008,
542 
544  gmc_eflag_air_tank = 0x00000010,
545 
547  gmc_eflag_booster_2 = 0x00000020,
548 
550  gmc_eflag_mimiga_mask = 0x00000040,
551 
554 
557 };
558 
562 {
565 
567  npc_collide_up = 0x0002,
568 
571 
574 };
575 
579 {
581  npc_solidSoft = 0x0000001,
582 
584  npc_ignore44 = 0x0000002,
585 
587  npc_invulnerable = 0x0000004,
588 
590  npc_ignoreSolid = 0x0000008,
591 
593  npc_bouncy = 0x0000010,
594 
596  npc_shootable = 0x0000020,
597 
599  npc_solidHard = 0x0000040,
600 
602  npc_rearTop = 0x0000080,
603 
605  npc_eventTouch = 0x0000100,
606 
608  npc_eventDie = 0x0000200,
609 
611  npc_appearSet = 0x0000800,
612 
614  npc_altDir = 0x0001000,
615 
617  npc_interact = 0x0002000,
618 
620  npc_hideSet = 0x0004000,
621 
623  npc_showDamage = 0x0008000,
624 
626  npc_deprecated1 = 0x0010000,
627 
629  npc_autoFocus = 0x0020000,
630 
632  npc_dontUpdate = 0x0040000,
633 
635  npc_deprecated2 = 0x0080000,
636 
638  npc_ghost = 0x0100000,
639 
641  npc_option3 = 0x0200000,
642 
644  npc_option4 = 0x0400000,
645 
648 
650  npc_drawOnTop = 0x1000000,
651 
653  npc_eventDieReal = 0x2000000,
654 
656  npc_max_flags = 0x2000000,
657 
658  // Helper enums
660  npc_option1 = 0x0000100,
661 
663  npc_option2 = 0x0001000
664 };
665 
669 {
697  npc_flag_on_water_tile = 0x0100
698 };
699 
703 {
704  // NPC is marked for death
705  npc_cond_dead = 0x0008,
706 
708  npc_cond_npc_alive = 0x0080
709 };
710 
713 typedef enum Surface_Ids
714 {
717 
720 
723 
726 
729 
732 
735 
738 
741 
744 
747 
750 
753 
756 
759 
762 
765 
768 
771 
774 
777 
780 
783 
786 
789 
792 
795 
798 
801 
804 
807 
810 
813 
816 
819 
822 
825 
828 
831 
834 
837 
840 
843 
844  // StyleText.png
845  SURFACE_ID_STYLE_TEXT = 51,
846 
849 
851  SURFACE_ID_ALLOCATABLE_SURFACE_START = 52, // These surfaces can be used for anything. Just make sure to initialize it with MakeGeneric_Generic first.
852 
854  SURFACE_ID_ALLOCATABLE_SURFACE_END = 852, // These surfaces can be used for anything. Just make sure to initialize it with MakeGeneric_Generic first.
855 
858 
861 
864 
868 
877 {
879  TT_FOREGROUND = 0x00000001,
880 
882  TT_BACKGROUND = 0x00000002,
883 
885  TT_WATER = 0x00000004,
886 
888  TT_DAMAGE = 0x00000008,
889 
891  TT_DESTROYABLE = 0x00000010,
892 
894  TT_NO_NPC = 0x00000020,
895 
897  TT_NO_PLAYER = 0x00000040,
898 
900  TT_SHOOTABLE = 0X00000080,
901 
904 
907 
909  TT_SLOPE_CEIL_0 = 0x00000100,
910 
912  TT_SLOPE_CEIL_1 = 0x00000200,
913 
915  TT_SLOPE_CEIL_2 = 0x00000400,
916 
918  TT_SLOPE_CEIL_3 = 0x00000800,
919 
921  TT_SLOPE_FLOOR_0 = 0x00001000,
922 
924  TT_SLOPE_FLOOR_1 = 0x00002000,
925 
927  TT_SLOPE_FLOOR_2 = 0x00004000,
928 
930  TT_SLOPE_FLOOR_3 = 0x00008000,
931 
934 
936  TT_MOVE_LEFT = 0x00010000,
937 
939  TT_MOVE_RIGHT = 0x00020000,
940 
942  TT_MOVE_UP = 0x00040000,
943 
945  TT_MOVE_DOWN = 0x00080000,
946 
948  TT_YELLOW_TEAM = 0x00100000,
949 
951  TT_GREEN_TEAM = 0x00200000,
952 
954  TT_RED_TEAM = 0x00400000,
955 
957  TT_BLUE_TEAM = 0x00800000,
958 
961 
964 };
965 
970 {
973 
976 
979 
982 
987 
992 
997 
1002 
1006  GPM_NET_MANIFEST = 12
1007 };
1008 
1013 {
1015  SCI_ST_AUTO = 0b00011,
1016 
1022  SCI_ST_SERVER = 0b00001,
1023 
1029  SCI_ST_CLIENT = 0b00010,
1030 
1033 
1036  SCI_ST_EXACT = 0b01000,
1037 
1039  SCI_ST_ENSURE_PLAYER = 0b10000
1040 };
1041 
1045 {
1048 
1051 
1054 
1057 
1059  TS_TARGETCOUNT = 3
1060 };
1061 
1064 enum PLAYER_STATE_FLAGS : unsigned long long int
1065 {
1067  PSF_NO_AIR = BIT(0),
1068 
1070  PSF_NO_WEAPONS = BIT(1),
1071 
1073  PSF_NO_CAMERA = BIT(2),
1074 
1077 
1079  PSF_NO_HUD = BIT(4),
1080 
1082  PSF_NO_PICKUPS = BIT(5),
1083 
1086 
1088  PSF_INIT = BIT(7),
1089 
1091  PSF_FREE = BIT(8),
1092 
1094  PSF_NOCLIP = BIT(9),
1095 
1097  PSF_NOTARGET = BIT(10),
1098 
1100  PSF_GOD = BIT(11),
1101 
1103  PSF_UNIT = BIT(12),
1104 
1106  PSF_PUT_BUBBLE = BIT(13),
1107 
1109  PSF_CARRIED_GOD = BIT(14),
1110 
1112  PSF_CARRIED_NOTARGET = BIT(15)
1113 };
1114 
1119 {
1121  PSTF_COUNT1 = BIT(0),
1122 
1124  PSTF_COUNT2 = BIT(1),
1125 
1127  PSTF_COUNT3 = BIT(2),
1128 
1130  PSTF_COUNT4 = BIT(3),
1131 
1133  PSTF_ACT_NO = BIT(4),
1134 
1136  PSTF_ACT_WAIT = BIT(5),
1137 
1139  PSTF_NPC_PTR = BIT(6),
1140 
1143 
1145  PSTF_OBJ_X = BIT(8),
1146 
1148  PSTF_OBJ_Y = BIT(9),
1149 
1151  PSTF_OBJ_XM = BIT(10),
1152 
1154  PSTF_OBJ_YM = BIT(11),
1155 
1157  PSTF_OBJ_TGT_X = BIT(12),
1158 
1160  PSTF_OBJ_TGT_Y = BIT(13),
1161 
1164 };
1165 
1168 {
1169  // Default green arrow
1170  CSMP_CURSOR_NORMAL,
1171  // Normal system arrow
1172  CSMP_CURSOR_ARROW,
1173  // System I-beam (for text editing)
1174  CSMP_CURSOR_IBEAM,
1175  // System Wait (Hourglass on XP systems, loading circle on others)
1176  CSMP_CURSOR_WAIT,
1177  // System Crosshair
1178  CSMP_CURSOR_CROSSHAIR,
1179  // System wait arrow
1180  CSMP_CURSOR_WAITARROW,
1181  // System double arrow pointing northwest and southeast (\‍)
1182  CSMP_CURSOR_SIZENWSE,
1183  // System double arrow pointing northeast and southwest (/)
1184  CSMP_CURSOR_SIZENESW,
1185  // System double arrow pointing west and east (-)
1186  CSMP_CURSOR_SIZEWE,
1187  // System double arrow pointing north and south (|)
1188  CSMP_CURSOR_SIZENS,
1189  // System four pointed arrow pointing north, south, east and west
1190  CSMP_CURSOR_SIZEALL,
1191  // Slashed circle / crossbones
1192  CSMP_CURSOR_NO,
1193  // System Hand
1194  CSMP_CURSOR_HAND,
1195 
1196  // Number of cursors
1197  CSMP_NUM_CURSORS
1198 };
1199 
1203 {
1204  // 'Animate' function will return a 'PlayerAnimFrame::*'.
1205  PSAOT_PLAYER_FRAME = 0,
1206  // 'Animate' function will return a 'PlayerAnimation::*'.
1207  PSAOT_PLAYER_ANIMATION = 1,
1208  // 'Animate' function will return a zero; All character animation will be handled by the state.
1209  PSAOT_CUSTOM = 2
1210 };
1211 
1215 {
1216  // Default, generic death type. Announces "<name> died!".
1217  DEATHTYPE_UNKNOWN = 0,
1218 
1219  // Player killed themselves. Announces "<name> killed themselves!"
1220  DEATHTYPE_SUICIDE = 1,
1221 
1222  // Player died by another player. Announces "<playername> was killed by <killername>!"
1223  DEATHTYPE_KILLED_BY_PLAYER = 2,
1224 
1225  // Player was killed by an NPC. Announces "<name> was killed by <NPC_NAME>!"
1226  DEATHTYPE_KILLED_BY_NPC = 3,
1227 
1228  // Player fell out of bounds of the map. Announces "<name> fell to a clusmy, painful death."
1229  DEATHTYPE_OUT_OF_BOUNDS = 4,
1230 
1231  // Player drowned. Announces "<name> drowned!"
1232  DEATHTYPE_DROWNED = 5,
1233 
1234  // The number of death types.
1235  DEATHTYPE_COUNT
1236 };
1237 
1241 {
1242  // The draw position of the sprite, converted to magnified screen coordinates.
1243  NPT_DRAW_POSITION = 0,
1244 
1245  // The top left position of the sprite in subpixels. This position is not relative to the camera frame position.
1246  NPT_SUB_DRAW_POSITION = 1
1247 };
1248 
1251 enum NPC_update_nodes : unsigned long long int
1252 {
1253  npc_nodes_damage = 0x0000000000000001, // int: +4
1254  npc_nodes_flag = 0x0000000000000002, // int: +4
1255  npc_nodes_x = 0x0000000000000004, // int: +4
1256  npc_nodes_y = 0x0000000000000008, // int: +4
1257  npc_nodes_xm = 0x0000000000000010, // int: +4
1258  npc_nodes_ym = 0x0000000000000020, // int: +4
1259  npc_nodes_life = 0x0000000000000040, // int: +4
1260  npc_nodes_exp = 0x0000000000000080, // int: +4
1261  npc_nodes_size = 0x0000000000000100, // int: +4
1262  npc_nodes_direct = 0x0000000000000200, // int: +4
1263  npc_nodes_code_event = 0x0000000000000400, // int: +4
1264  npc_nodes_surf = 0x0000000000000800, // int: +4
1265  npc_nodes_act_no = 0x0000000000001000, // int: +4
1266  npc_nodes_act_wait = 0x0000000000002000, // int: +4
1267  npc_nodes_ani_no = 0x0000000000004000, // int: +4
1268  npc_nodes_ani_wait = 0x0000000000008000, // int: +4
1269  npc_nodes_bits = 0x0000000000010000, // uint: +4
1270  npc_nodes_count1 = 0x0000000000020000, // int: +4
1271  npc_nodes_count2 = 0x0000000000040000, // int: +4
1272  npc_nodes_count3 = 0x0000000000080000, // int: +4
1273  npc_nodes_count4 = 0x0000000000100000, // int: +4
1274  npc_nodes_shock = 0x0000000000200000, // uchar: +1
1275  npc_nodes_pNpc = 0x0000000000400000, // int: +4
1276  npc_nodes_focus = 0x0000000000800000, // int: +4
1277  npc_nodes_code_flag = 0x0000000001000000, // int: +4
1278  npc_nodes_focus2 = 0x0000000002000000, // int: +4
1279  npc_nodes_tgt_x = 0x0000000004000000, // int: +4
1280  npc_nodes_tgt_y = 0x0000000008000000, // int: +4
1281 
1282  NPC_NODES_ALL = 0x000000000FFFFFFF,
1283  NPC_NODES_COUNT = 28,
1284  NPC_NODES_MAX_BYTE_SIZE = 109
1285 };
1286 
1289 enum NPC_transmit_nodes : unsigned long long int
1290 {
1291  npc_transmit_nodes_flag = 0x0000000000000001, // int: +4
1292  npc_transmit_nodes_x = 0x0000000000000002, // int: +4
1293  npc_transmit_nodes_y = 0x0000000000000004, // int: +4
1294  npc_transmit_nodes_xm = 0x0000000000000008, // int: +4
1295  npc_transmit_nodes_ym = 0x0000000000000010, // int: +4
1296  npc_transmit_nodes_code_flag = 0x0000000000000020, // int: +4
1297  npc_transmit_nodes_code_event = 0x0000000000000040, // int: +4
1298  npc_transmit_nodes_surf = 0x0000000000000080, // int: +4
1299  npc_transmit_nodes_hit_voice = 0x0000000000000100, // int: +4
1300  npc_transmit_nodes_destroy_voice = 0x0000000000000200, // int: +4
1301  npc_transmit_nodes_life = 0x0000000000000400, // short: +2
1302  npc_transmit_nodes_exp = 0x0000000000000800, // int: +4
1303  npc_transmit_nodes_direct = 0x0000000000001000, // uchar: +1
1304  npc_transmit_nodes_bits = 0x0000000000002000, // uint: +4
1305  npc_transmit_nodes_ani_wait = 0x0000000000004000, // int: +4
1306  npc_transmit_nodes_ani_no = 0x0000000000008000, // int: +4
1307  npc_transmit_nodes_count1 = 0x0000000000010000, // int: +4
1308  npc_transmit_nodes_count2 = 0x0000000000020000, // int: +4
1309  npc_transmit_nodes_count3 = 0x0000000000040000, // int: +4
1310  npc_transmit_nodes_count4 = 0x0000000000080000, // int: +4
1311  npc_transmit_nodes_act_no = 0x0000000000100000, // int: +4
1312  npc_transmit_nodes_act_wait = 0x0000000000200000, // int: +4
1313  npc_transmit_nodes_shock = 0x0000000000400000, // uchar: +1
1314  npc_transmit_nodes_damage = 0x0000000000800000, // int: +4
1315  npc_transmit_nodes_pNpc = 0x0000000001000000, // int: +4
1316  npc_transmit_nodes_focus = 0x0000000002000000, // netid: +...
1317  npc_transmit_nodes_focus2 = 0x0000000004000000, // netid: +...
1318  npc_transmit_nodes_xm2 = 0x0000000008000000, // int: +4
1319  npc_transmit_nodes_ym2 = 0x0000000010000000, // int: +4
1320  npc_transmit_nodes_zone = 0x0000000020000000, // int: +4
1321  npc_transmit_nodes_rect_left = 0x0000000040000000, // int: +4
1322  npc_transmit_nodes_rect_top = 0x0000000080000000, // int: +4
1323  npc_transmit_nodes_rect_right = 0x0000000100000000, // int: +4
1324  npc_transmit_nodes_rect_bottom = 0x0000000200000000, // int: +4
1325  npc_transmit_nodes_tgt_x = 0x0000000400000000, // int: +4
1326  npc_transmit_nodes_tgt_y = 0x0000000800000000, // int: +4
1327 
1328  NPC_TRANSMIT_NODES_ALL = 0x0000000FFFFFFFFF,
1329  NPC_TRANSMIT_NODES_COUNT = 36,
1330  NPC_TRANSMIT_NODES_MAX_BYTE_SIZE = 130 + (sizeof(NetClientId) * 2)
1331 };
1332 
1336 {
1339 
1342 
1345 
1348 
1351 
1354 
1357 
1360 
1363 
1366 
1369 
1372 
1375 
1378 
1381 
1384 };
1385 
1389 {
1392 
1393  // Use the user ident feature.
1394  CSM_RCIT_USER_IDENT
1395 };
1396 
1400 {
1403 
1406 
1409 };
1410 
1414 {
1417 
1420 
1423 
1426 };
1427 
1431 {
1434 
1437 
1440 
1443 
1446 };
1447 
1450 enum CSM_ClientRanks : unsigned char
1451 {
1454 
1457 
1460 
1463 
1466 
1468  CSM_RANK_CUSTOM = 5
1469 };
1470 
1473 static const char* CSM_ClientRanks_NameList[] =
1474 {
1475  "Banned",
1476  "Normal",
1477  "Admin",
1478  "SuperAdmin",
1479  "Host",
1480  "Custom"
1481 };
1482 
1486 {
1487  // Invalid
1488  DRAG_NONE,
1489 
1490  // Dragging & selecting things
1491  DRAG_SELECT,
1492 
1493  // Dragging top left corner
1494  DRAG_TOP_LEFT,
1495 
1496  // Dragging top border
1497  DRAG_TOP,
1498 
1499  // Dragging top right corner
1500  DRAG_TOP_RIGHT,
1501 
1502  // Dragging left border
1503  DRAG_LEFT,
1504 
1505  // Dragging right border
1506  DRAG_RIGHT,
1507 
1508  // Dragging bottom left corner
1509  DRAG_BOTTOM_LEFT,
1510 
1511  // Dragging bottom border
1512  DRAG_BOTTOM,
1513 
1514  // Dragging bottom right corner
1515  DRAG_BOTTOM_RIGHT,
1516 
1517  // Dragging the title bar
1518  DRAG_WHOLE
1519 };
1520 
1524 {
1525  // Not anchored
1526  ANCHOR_NONE,
1527 
1528  // Anchored to the top left corner
1529  ANCHOR_TOP_LEFT,
1530 
1531  // Anchored to the top
1532  ANCHOR_TOP,
1533 
1534  // Anchored to the top right corner
1535  ANCHOR_TOP_RIGHT,
1536 
1537  // Anchored to the left
1538  ANCHOR_LEFT,
1539 
1540  // Anchored to the right
1541  ANCHOR_RIGHT,
1542 
1543  // Anchored to the bottom left corner
1544  ANCHOR_BOTTOM_LEFT,
1545 
1546  // Anchored to the bottom
1547  ANCHOR_BOTTOM,
1548 
1549  // Anchored to the bottom right corner
1550  ANCHOR_BOTTOM_RIGHT
1551 };
1552 
1555 static const char* g_DWM_ObjectAnchorList[] =
1556 {
1557  "ANCHOR_NONE",
1558  "ANCHOR_TOP_LEFT",
1559  "ANCHOR_TOP",
1560  "ANCHOR_TOP_RIGHT",
1561  "ANCHOR_LEFT",
1562  "ANCHOR_RIGHT",
1563  "ANCHOR_BOTTOM_LEFT",
1564  "ANCHOR_BOTTOM",
1565  "ANCHOR_BOTTOM_RIGHT"
1566 };
1567 
1571 {
1572  //
1573  SIZING_LEFT = 0,
1574  //
1575  SIZING_WIDTH = 1,
1576  //
1577  SIZING_RIGHT = 2,
1578  //
1579  SIZING_CENTER = 3,
1580  //
1581  SIZING_RELATIVE = 4,
1582 
1583  //
1584  SIZING_TOP = 0,
1585  //
1586  SIZING_HEIGHT = 1,
1587  //
1588  SIZING_BOTTOM = 2
1589 };
1590 
1593 static const char* g_DWM_ObjectSizingList_Horiz[] =
1594 {
1595  "SIZING_LEFT",
1596  "SIZING_WIDTH",
1597  "SIZING_RIGHT",
1598  "SIZING_CENTER",
1599  "SIZING_RELATIVE"
1600 };
1601 
1604 static const char* g_DWM_ObjectSizingList_Vert[] =
1605 {
1606  "SIZING_TOP",
1607  "SIZING_HEIGHT",
1608  "SIZING_BOTTOM",
1609  "SIZING_CENTER",
1610  "SIZING_RELATIVE"
1611 };
1612 
1615 enum GuiObjectFlags : unsigned int
1616 {
1617  // Stretches own width with parent's width.
1618  OBJ_FLAG_STRETCH_WIDTH = 0x00000001,
1619  // Stretches own height with parent's height.
1620  OBJ_FLAG_STRETCH_HEIGHT = 0x00000002,
1621  // Marks element as hidden.
1622  OBJ_FLAG_HIDDEN = 0x00000004,
1623  // Not used.
1624  OBJ_FLAG_HIDDEN_PARENT = 0x00000008
1625 };
1626 
1629 static const char* g_DWM_ObjectFlagList[] =
1630 {
1631  "OBJ_FLAG_STRETCH_WIDTH",
1632  "OBJ_FLAG_STRETCH_HEIGHT",
1633  "OBJ_FLAG_HIDDEN",
1634  "OBJ_FLAG_HIDDEN_PARENT"
1635 };
1636 
1640 {
1641  // Invalid, do not use.
1642  OBJ_INVALID = 0,
1643 
1644  // @see ButtonInfo
1645  OBJ_BUTTON,
1646 
1647  // @see CenteredTextInfo
1648  OBJ_CENTERED_TEXT,
1649 
1650  // @see CheckBoxInfo
1651  OBJ_CHECK_BOX,
1652 
1653  // @see ColorPickerInfo
1654  OBJ_COLOR_PICKER,
1655 
1656  // @see DraggableWindowInfo
1657  OBJ_DRAGGABLE_WINDOW,
1658 
1659  // @see DropdownBoxInfo
1660  OBJ_DROPDOWN,
1661 
1662  // @see GroupBoxInfo
1663  OBJ_GROUPBOX,
1664 
1665  // @see KeyInputInfo
1666  OBJ_KEYINPUT,
1667 
1668  // @see LabelInfo
1669  OBJ_LABEL,
1670 
1671  // @see SelectableLabelInfo
1672  OBJ_SELECTABLE_LABEL,
1673 
1674  // @see ScrollAreaInfo
1675  OBJ_SCROLL_AREA,
1676 
1677  // @see SliderIntInfo
1678  OBJ_SLIDER_INT,
1679 
1680  // @see SystemMenuInfo
1681  OBJ_SYSTEM_MENU,
1682 
1683  // @see TabBookInfo
1684  OBJ_TAB_BOOK,
1685 
1686  // @see TextInputInfo
1687  OBJ_TEXT_INPUT,
1688 
1689  // @see SelectableListInfo
1690  OBJ_SELECTABLE_LIST,
1691 
1692  // @see CustomDrawInfo
1693  OBJ_RECT,
1694 
1695  // @see CaveStoryDialogBoxInfo
1696  OBJ_DIALOG_BOX,
1697 
1698  // @see DrawBitmapInfo
1699  OBJ_BITMAP
1700 };
1701 
1704 static const char* g_DWM_ObjectClassTypeList[] =
1705 {
1706  "OBJ_INVALID",
1707  "OBJ_BUTTON",
1708  "OBJ_CENTERED_TEXT",
1709  "OBJ_CHECK_BOX",
1710  "OBJ_COLOR_PICKER",
1711  "OBJ_DRAGGABLE_WINDOW",
1712  "OBJ_DROPDOWN",
1713  "OBJ_GROUPBOX",
1714  "OBJ_KEYINPUT",
1715  "OBJ_LABEL",
1716  "OBJ_SELECTABLE_LABEL",
1717  "OBJ_SCROLL_AREA",
1718  "OBJ_SLIDER_INT",
1719  "OBJ_SYSTEM_MENU",
1720  "OBJ_TAB_BOOK",
1721  "OBJ_TEXT_INPUT",
1722  "OBJ_SELECTABLE_LIST",
1723  "OBJ_RECT",
1724  "OBJ_DIALOG_BOX",
1725  "OBJ_BITMAP"
1726 };
1727 
1730 static const char* g_DWM_ObjectRealClassTypeList[] =
1731 {
1732  "Cancel",
1733  "ButtonInfo",
1734  "CenteredTextInfo",
1735  "CheckBoxInfo",
1736  "ColorPickerInfo",
1737  "DraggableWindowInfo",
1738  "DropdownBoxInfo",
1739  "GroupBoxInfo",
1740  "KeyInputInfo",
1741  "LabelInfo",
1742  "SelectableLabelInfo",
1743  "ScrollAreaInfo",
1744  "SliderIntInfo",
1745  "SystemMenuInfo",
1746  "TabBookInfo",
1747  "TextInputInfo",
1748  "SelectableListInfo",
1749  "CustomDrawInfo",
1750  "CaveStoryDialogBoxInfo",
1751  "DrawBitmapInfo"
1752 };
1753 
1756 typedef enum
1757 {
1758  CSM_SDL_SCANCODE_UNKNOWN = 0,
1759 
1765  /* @{ */
1766 
1767  CSM_SDL_SCANCODE_A = 4,
1768  CSM_SDL_SCANCODE_B = 5,
1769  CSM_SDL_SCANCODE_C = 6,
1770  CSM_SDL_SCANCODE_D = 7,
1771  CSM_SDL_SCANCODE_E = 8,
1772  CSM_SDL_SCANCODE_F = 9,
1773  CSM_SDL_SCANCODE_G = 10,
1774  CSM_SDL_SCANCODE_H = 11,
1775  CSM_SDL_SCANCODE_I = 12,
1776  CSM_SDL_SCANCODE_J = 13,
1777  CSM_SDL_SCANCODE_K = 14,
1778  CSM_SDL_SCANCODE_L = 15,
1779  CSM_SDL_SCANCODE_M = 16,
1780  CSM_SDL_SCANCODE_N = 17,
1781  CSM_SDL_SCANCODE_O = 18,
1782  CSM_SDL_SCANCODE_P = 19,
1783  CSM_SDL_SCANCODE_Q = 20,
1784  CSM_SDL_SCANCODE_R = 21,
1785  CSM_SDL_SCANCODE_S = 22,
1786  CSM_SDL_SCANCODE_T = 23,
1787  CSM_SDL_SCANCODE_U = 24,
1788  CSM_SDL_SCANCODE_V = 25,
1789  CSM_SDL_SCANCODE_W = 26,
1790  CSM_SDL_SCANCODE_X = 27,
1791  CSM_SDL_SCANCODE_Y = 28,
1792  CSM_SDL_SCANCODE_Z = 29,
1793 
1794  CSM_SDL_SCANCODE_1 = 30,
1795  CSM_SDL_SCANCODE_2 = 31,
1796  CSM_SDL_SCANCODE_3 = 32,
1797  CSM_SDL_SCANCODE_4 = 33,
1798  CSM_SDL_SCANCODE_5 = 34,
1799  CSM_SDL_SCANCODE_6 = 35,
1800  CSM_SDL_SCANCODE_7 = 36,
1801  CSM_SDL_SCANCODE_8 = 37,
1802  CSM_SDL_SCANCODE_9 = 38,
1803  CSM_SDL_SCANCODE_0 = 39,
1804 
1805  CSM_SDL_SCANCODE_RETURN = 40,
1806  CSM_SDL_SCANCODE_ESCAPE = 41,
1807  CSM_SDL_SCANCODE_BACKSPACE = 42,
1808  CSM_SDL_SCANCODE_TAB = 43,
1809  CSM_SDL_SCANCODE_SPACE = 44,
1810 
1811  CSM_SDL_SCANCODE_MINUS = 45,
1812  CSM_SDL_SCANCODE_EQUALS = 46,
1813  CSM_SDL_SCANCODE_LEFTBRACKET = 47,
1814  CSM_SDL_SCANCODE_RIGHTBRACKET = 48,
1841  CSM_SDL_SCANCODE_SEMICOLON = 51,
1842  CSM_SDL_SCANCODE_APOSTROPHE = 52,
1843  CSM_SDL_SCANCODE_GRAVE = 53,
1860  CSM_SDL_SCANCODE_COMMA = 54,
1861  CSM_SDL_SCANCODE_PERIOD = 55,
1862  CSM_SDL_SCANCODE_SLASH = 56,
1863 
1864  CSM_SDL_SCANCODE_CAPSLOCK = 57,
1865 
1866  CSM_SDL_SCANCODE_F1 = 58,
1867  CSM_SDL_SCANCODE_F2 = 59,
1868  CSM_SDL_SCANCODE_F3 = 60,
1869  CSM_SDL_SCANCODE_F4 = 61,
1870  CSM_SDL_SCANCODE_F5 = 62,
1871  CSM_SDL_SCANCODE_F6 = 63,
1872  CSM_SDL_SCANCODE_F7 = 64,
1873  CSM_SDL_SCANCODE_F8 = 65,
1874  CSM_SDL_SCANCODE_F9 = 66,
1875  CSM_SDL_SCANCODE_F10 = 67,
1876  CSM_SDL_SCANCODE_F11 = 68,
1877  CSM_SDL_SCANCODE_F12 = 69,
1878 
1879  CSM_SDL_SCANCODE_PRINTSCREEN = 70,
1880  CSM_SDL_SCANCODE_SCROLLLOCK = 71,
1881  CSM_SDL_SCANCODE_PAUSE = 72,
1884  CSM_SDL_SCANCODE_HOME = 74,
1885  CSM_SDL_SCANCODE_PAGEUP = 75,
1886  CSM_SDL_SCANCODE_DELETE = 76,
1887  CSM_SDL_SCANCODE_END = 77,
1888  CSM_SDL_SCANCODE_PAGEDOWN = 78,
1889  CSM_SDL_SCANCODE_RIGHT = 79,
1890  CSM_SDL_SCANCODE_LEFT = 80,
1891  CSM_SDL_SCANCODE_DOWN = 81,
1892  CSM_SDL_SCANCODE_UP = 82,
1893 
1896  CSM_SDL_SCANCODE_KP_DIVIDE = 84,
1897  CSM_SDL_SCANCODE_KP_MULTIPLY = 85,
1898  CSM_SDL_SCANCODE_KP_MINUS = 86,
1899  CSM_SDL_SCANCODE_KP_PLUS = 87,
1900  CSM_SDL_SCANCODE_KP_ENTER = 88,
1901  CSM_SDL_SCANCODE_KP_1 = 89,
1902  CSM_SDL_SCANCODE_KP_2 = 90,
1903  CSM_SDL_SCANCODE_KP_3 = 91,
1904  CSM_SDL_SCANCODE_KP_4 = 92,
1905  CSM_SDL_SCANCODE_KP_5 = 93,
1906  CSM_SDL_SCANCODE_KP_6 = 94,
1907  CSM_SDL_SCANCODE_KP_7 = 95,
1908  CSM_SDL_SCANCODE_KP_8 = 96,
1909  CSM_SDL_SCANCODE_KP_9 = 97,
1910  CSM_SDL_SCANCODE_KP_0 = 98,
1911  CSM_SDL_SCANCODE_KP_PERIOD = 99,
1912 
1924  CSM_SDL_SCANCODE_POWER = 102,
1927  CSM_SDL_SCANCODE_KP_EQUALS = 103,
1928  CSM_SDL_SCANCODE_F13 = 104,
1929  CSM_SDL_SCANCODE_F14 = 105,
1930  CSM_SDL_SCANCODE_F15 = 106,
1931  CSM_SDL_SCANCODE_F16 = 107,
1932  CSM_SDL_SCANCODE_F17 = 108,
1933  CSM_SDL_SCANCODE_F18 = 109,
1934  CSM_SDL_SCANCODE_F19 = 110,
1935  CSM_SDL_SCANCODE_F20 = 111,
1936  CSM_SDL_SCANCODE_F21 = 112,
1937  CSM_SDL_SCANCODE_F22 = 113,
1938  CSM_SDL_SCANCODE_F23 = 114,
1939  CSM_SDL_SCANCODE_F24 = 115,
1940  CSM_SDL_SCANCODE_EXECUTE = 116,
1941  CSM_SDL_SCANCODE_HELP = 117,
1942  CSM_SDL_SCANCODE_MENU = 118,
1943  CSM_SDL_SCANCODE_SELECT = 119,
1944  CSM_SDL_SCANCODE_STOP = 120,
1946  CSM_SDL_SCANCODE_UNDO = 122,
1947  CSM_SDL_SCANCODE_CUT = 123,
1948  CSM_SDL_SCANCODE_COPY = 124,
1949  CSM_SDL_SCANCODE_PASTE = 125,
1950  CSM_SDL_SCANCODE_FIND = 126,
1951  CSM_SDL_SCANCODE_MUTE = 127,
1952  CSM_SDL_SCANCODE_VOLUMEUP = 128,
1953  CSM_SDL_SCANCODE_VOLUMEDOWN = 129,
1954 /* not sure whether there's a reason to enable these */
1955 /* CSM_SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */
1956 /* CSM_SDL_SCANCODE_LOCKINGNUMLOCK = 131, */
1957 /* CSM_SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */
1958  CSM_SDL_SCANCODE_KP_COMMA = 133,
1959  CSM_SDL_SCANCODE_KP_EQUALSAS400 = 134,
1960 
1963  CSM_SDL_SCANCODE_INTERNATIONAL2 = 136,
1965  CSM_SDL_SCANCODE_INTERNATIONAL4 = 138,
1966  CSM_SDL_SCANCODE_INTERNATIONAL5 = 139,
1967  CSM_SDL_SCANCODE_INTERNATIONAL6 = 140,
1968  CSM_SDL_SCANCODE_INTERNATIONAL7 = 141,
1969  CSM_SDL_SCANCODE_INTERNATIONAL8 = 142,
1970  CSM_SDL_SCANCODE_INTERNATIONAL9 = 143,
1982  CSM_SDL_SCANCODE_SYSREQ = 154,
1983  CSM_SDL_SCANCODE_CANCEL = 155,
1984  CSM_SDL_SCANCODE_CLEAR = 156,
1985  CSM_SDL_SCANCODE_PRIOR = 157,
1986  CSM_SDL_SCANCODE_RETURN2 = 158,
1987  CSM_SDL_SCANCODE_SEPARATOR = 159,
1988  CSM_SDL_SCANCODE_OUT = 160,
1989  CSM_SDL_SCANCODE_OPER = 161,
1990  CSM_SDL_SCANCODE_CLEARAGAIN = 162,
1991  CSM_SDL_SCANCODE_CRSEL = 163,
1992  CSM_SDL_SCANCODE_EXSEL = 164,
1993 
1994  CSM_SDL_SCANCODE_KP_00 = 176,
1995  CSM_SDL_SCANCODE_KP_000 = 177,
1996  CSM_SDL_SCANCODE_THOUSANDSSEPARATOR = 178,
1997  CSM_SDL_SCANCODE_DECIMALSEPARATOR = 179,
1998  CSM_SDL_SCANCODE_CURRENCYUNIT = 180,
1999  CSM_SDL_SCANCODE_CURRENCYSUBUNIT = 181,
2000  CSM_SDL_SCANCODE_KP_LEFTPAREN = 182,
2001  CSM_SDL_SCANCODE_KP_RIGHTPAREN = 183,
2002  CSM_SDL_SCANCODE_KP_LEFTBRACE = 184,
2003  CSM_SDL_SCANCODE_KP_RIGHTBRACE = 185,
2004  CSM_SDL_SCANCODE_KP_TAB = 186,
2005  CSM_SDL_SCANCODE_KP_BACKSPACE = 187,
2006  CSM_SDL_SCANCODE_KP_A = 188,
2007  CSM_SDL_SCANCODE_KP_B = 189,
2008  CSM_SDL_SCANCODE_KP_C = 190,
2009  CSM_SDL_SCANCODE_KP_D = 191,
2010  CSM_SDL_SCANCODE_KP_E = 192,
2011  CSM_SDL_SCANCODE_KP_F = 193,
2012  CSM_SDL_SCANCODE_KP_XOR = 194,
2013  CSM_SDL_SCANCODE_KP_POWER = 195,
2014  CSM_SDL_SCANCODE_KP_PERCENT = 196,
2015  CSM_SDL_SCANCODE_KP_LESS = 197,
2016  CSM_SDL_SCANCODE_KP_GREATER = 198,
2017  CSM_SDL_SCANCODE_KP_AMPERSAND = 199,
2018  CSM_SDL_SCANCODE_KP_DBLAMPERSAND = 200,
2019  CSM_SDL_SCANCODE_KP_VERTICALBAR = 201,
2020  CSM_SDL_SCANCODE_KP_DBLVERTICALBAR = 202,
2021  CSM_SDL_SCANCODE_KP_COLON = 203,
2022  CSM_SDL_SCANCODE_KP_HASH = 204,
2023  CSM_SDL_SCANCODE_KP_SPACE = 205,
2024  CSM_SDL_SCANCODE_KP_AT = 206,
2025  CSM_SDL_SCANCODE_KP_EXCLAM = 207,
2026  CSM_SDL_SCANCODE_KP_MEMSTORE = 208,
2027  CSM_SDL_SCANCODE_KP_MEMRECALL = 209,
2028  CSM_SDL_SCANCODE_KP_MEMCLEAR = 210,
2029  CSM_SDL_SCANCODE_KP_MEMADD = 211,
2030  CSM_SDL_SCANCODE_KP_MEMSUBTRACT = 212,
2031  CSM_SDL_SCANCODE_KP_MEMMULTIPLY = 213,
2032  CSM_SDL_SCANCODE_KP_MEMDIVIDE = 214,
2033  CSM_SDL_SCANCODE_KP_PLUSMINUS = 215,
2034  CSM_SDL_SCANCODE_KP_CLEAR = 216,
2035  CSM_SDL_SCANCODE_KP_CLEARENTRY = 217,
2036  CSM_SDL_SCANCODE_KP_BINARY = 218,
2037  CSM_SDL_SCANCODE_KP_OCTAL = 219,
2038  CSM_SDL_SCANCODE_KP_DECIMAL = 220,
2039  CSM_SDL_SCANCODE_KP_HEXADECIMAL = 221,
2040 
2041  CSM_SDL_SCANCODE_LCTRL = 224,
2042  CSM_SDL_SCANCODE_LSHIFT = 225,
2045  CSM_SDL_SCANCODE_RCTRL = 228,
2046  CSM_SDL_SCANCODE_RSHIFT = 229,
2050  CSM_SDL_SCANCODE_MODE = 257,
2055  /* @} *//* Usage page 0x07 */
2056 
2062  /* @{ */
2063 
2064  CSM_SDL_SCANCODE_AUDIONEXT = 258,
2065  CSM_SDL_SCANCODE_AUDIOPREV = 259,
2066  CSM_SDL_SCANCODE_AUDIOSTOP = 260,
2067  CSM_SDL_SCANCODE_AUDIOPLAY = 261,
2068  CSM_SDL_SCANCODE_AUDIOMUTE = 262,
2069  CSM_SDL_SCANCODE_MEDIASELECT = 263,
2070  CSM_SDL_SCANCODE_WWW = 264,
2071  CSM_SDL_SCANCODE_MAIL = 265,
2072  CSM_SDL_SCANCODE_CALCULATOR = 266,
2073  CSM_SDL_SCANCODE_COMPUTER = 267,
2074  CSM_SDL_SCANCODE_AC_SEARCH = 268,
2075  CSM_SDL_SCANCODE_AC_HOME = 269,
2076  CSM_SDL_SCANCODE_AC_BACK = 270,
2077  CSM_SDL_SCANCODE_AC_FORWARD = 271,
2078  CSM_SDL_SCANCODE_AC_STOP = 272,
2079  CSM_SDL_SCANCODE_AC_REFRESH = 273,
2080  CSM_SDL_SCANCODE_AC_BOOKMARKS = 274,
2081 
2082  /* @} *//* Usage page 0x0C */
2083 
2089  /* @{ */
2090 
2091  CSM_SDL_SCANCODE_BRIGHTNESSDOWN = 275,
2092  CSM_SDL_SCANCODE_BRIGHTNESSUP = 276,
2095  CSM_SDL_SCANCODE_KBDILLUMTOGGLE = 278,
2096  CSM_SDL_SCANCODE_KBDILLUMDOWN = 279,
2097  CSM_SDL_SCANCODE_KBDILLUMUP = 280,
2098  CSM_SDL_SCANCODE_EJECT = 281,
2099  CSM_SDL_SCANCODE_SLEEP = 282,
2100 
2101  CSM_SDL_SCANCODE_APP1 = 283,
2102  CSM_SDL_SCANCODE_APP2 = 284,
2103 
2104  /* @} *//* Walther keys */
2105 
2111  /* @{ */
2112 
2113  CSM_SDL_SCANCODE_AUDIOREWIND = 285,
2114  CSM_SDL_SCANCODE_AUDIOFASTFORWARD = 286,
2115 
2116  /* @} *//* Usage page 0x0C (additional media keys) */
2117 
2118  /* Add any other keys here. */
2119 
2120  CSM_SDL_NUM_SCANCODES = 512
GMC_flag
Internal flags for gMC (gMC.flag)
Definition: CSMAPI_enums.h:465
@ gmc_flag_on_damagew_tile
Slope.
Definition: CSMAPI_enums.h:509
@ gmc_flag_collide_triangleC
Slope.
Definition: CSMAPI_enums.h:485
@ gmc_flag_collide_triangleA
Slope.
Definition: CSMAPI_enums.h:479
@ gmc_flag_in_current_up
Wind / water current moving up.
Definition: CSMAPI_enums.h:515
@ gmc_flag_on_damage_tile
Slope.
Definition: CSMAPI_enums.h:506
@ gmc_flag_collide_triangleE
Slope.
Definition: CSMAPI_enums.h:491
@ gmc_flag_in_current_down
Wind / water current moving down.
Definition: CSMAPI_enums.h:521
@ gmc_flag_collide_triangleG
Slope.
Definition: CSMAPI_enums.h:497
@ gmc_flag_in_current
Any wind / water current.
Definition: CSMAPI_enums.h:524
@ gmc_flag_collide_right
Player is colliding with something to the right of them.
Definition: CSMAPI_enums.h:473
@ gmc_flag_collide_left
Player is colliding with something to the left of them.
Definition: CSMAPI_enums.h:467
@ gmc_flag_on_water_tile
Slope.
Definition: CSMAPI_enums.h:503
@ gmc_flag_collide_ceiling
Player is hitting their head on something.
Definition: CSMAPI_enums.h:470
@ gmc_flag_collide_triangleH
Slope.
Definition: CSMAPI_enums.h:500
@ gmc_flag_collide_triangleD
Slope.
Definition: CSMAPI_enums.h:488
@ gmc_flag_in_current_right
Wind / water current moving right.
Definition: CSMAPI_enums.h:518
@ gmc_flag_collide_floor
Player is on a solid floor.
Definition: CSMAPI_enums.h:476
@ gmc_flag_collide_triangleF
Slope.
Definition: CSMAPI_enums.h:494
@ gmc_flag_collide_triangleB
Slope.
Definition: CSMAPI_enums.h:482
@ gmc_flag_in_current_left
Wind / water current moving left.
Definition: CSMAPI_enums.h:512
Directions
Directions.
Definition: CSMAPI_enums.h:37
@ DIRECT_COUNT
Number of possible directions.
Definition: CSMAPI_enums.h:60
@ DIRECT_DOWN_RIGHT
Down-Right.
Definition: CSMAPI_enums.h:57
@ DIRECT_RIGHT_UP
Right-Up.
Definition: CSMAPI_enums.h:54
@ DIRECT_LEFT
Left.
Definition: CSMAPI_enums.h:39
@ DIRECT_RIGHT
Right.
Definition: CSMAPI_enums.h:45
@ DIRECT_CENTER
Center.
Definition: CSMAPI_enums.h:51
@ DIRECT_UP
Up.
Definition: CSMAPI_enums.h:42
@ DIRECT_DOWN
Down.
Definition: CSMAPI_enums.h:48
CSM_ClientRanks
All possible values for a client's mAdminRank.
Definition: CSMAPI_enums.h:1451
@ CSM_RANK_ADMIN
Client is an admin. They can revive & kick players.
Definition: CSMAPI_enums.h:1459
@ CSM_RANK_HOST
Client is the host. They can do all of the things a super admin can do AND execute server console com...
Definition: CSMAPI_enums.h:1465
@ CSM_RANK_CUSTOM
Client is customly ranked.
Definition: CSMAPI_enums.h:1468
@ CSM_RANK_NORMAL
Client is a normal user. They cannot revive players, kick players, etc.
Definition: CSMAPI_enums.h:1456
@ CSM_RANK_BANNED
Client is banned. They cannot connect to the server.
Definition: CSMAPI_enums.h:1453
@ CSM_RANK_SUPER_ADMIN
Client is a super admin. They can revive, ban & kick players.
Definition: CSMAPI_enums.h:1462
CSMP_CURSOR_TYPE
All possible cursor types for BaseModeInstance::SetCursor.
Definition: CSMAPI_enums.h:1168
GMC_equipflags
Internal equip flags for gMC (gMC.equip)
Definition: CSMAPI_enums.h:530
@ gmc_eflag_whimsical_star
Whimsical Star.
Definition: CSMAPI_enums.h:553
@ gmc_eflag_booster_08
Booster v0.8.
Definition: CSMAPI_enums.h:532
@ gmc_eflag_arms_barrier
Arms Barrier.
Definition: CSMAPI_enums.h:538
@ gmc_eflag_booster_2
Booster v2.0.
Definition: CSMAPI_enums.h:547
@ gmc_eflag_map_system
Map System.
Definition: CSMAPI_enums.h:535
@ gmc_eflag_nikumaru_timer
Mikumaru Timer.
Definition: CSMAPI_enums.h:556
@ gmc_eflag_air_tank
Curly's Air Tank.
Definition: CSMAPI_enums.h:544
@ gmc_eflag_mimiga_mask
Mimiga Mask.
Definition: CSMAPI_enums.h:550
@ gmc_eflag_turbocharge
Turbocharge.
Definition: CSMAPI_enums.h:541
KEYBIND_JOYSTICK
A table of joystick input flags.
Definition: CSMAPI_enums.h:287
@ KEY_JOY_LEFT_SHOULDER
Joystick "Left shoulder" button.
Definition: CSMAPI_enums.h:297
@ KEY_JOY_RIGHT_SHOULDER
Joystick "Right shoulder" button.
Definition: CSMAPI_enums.h:299
@ KEY_JOY_SELECT
Joystick "Select" button.
Definition: CSMAPI_enums.h:303
@ KEY_JOY_A
Joystick "A" button.
Definition: CSMAPI_enums.h:289
@ KEY_JOY_X
Joystick "X" button.
Definition: CSMAPI_enums.h:293
@ KEY_JOY_START
Joystick "Start" button.
Definition: CSMAPI_enums.h:301
@ KEY_JOY_Y
Joystick "Y" button.
Definition: CSMAPI_enums.h:295
@ KEY_JOY_B
Joystick "B" button.
Definition: CSMAPI_enums.h:291
CSM_BossTypes
Boss types.
Definition: CSMAPI_enums.h:1336
@ CSM_BOSS_TWINS
The twin dragons (This boss has a shared health pool)
Definition: CSMAPI_enums.h:1368
@ CSM_BOSS_BALFROG
Balfrog boss.
Definition: CSMAPI_enums.h:1344
@ CSM_BOSS_MOSTER_X
Monster X boss (stage 2)
Definition: CSMAPI_enums.h:1359
@ CSM_BOSS_MOSTER_X_TOP_LEFT
The top-left green dot (stage 1)
Definition: CSMAPI_enums.h:1347
@ CSM_BOSS_OMGEA
Omega boss.
Definition: CSMAPI_enums.h:1341
@ CSM_BOSS_MOSTER_X_BOTTOM_RIGHT
The bottom-right green dot (stage 1)
Definition: CSMAPI_enums.h:1356
@ CSM_BOSS_IRONHEAD
Ironhead boss.
Definition: CSMAPI_enums.h:1365
@ CSM_BOSS_MOSTER_X_TOP_RIGHT
The top-right green dot (stage 1)
Definition: CSMAPI_enums.h:1350
@ CSM_BOSS_NONE
Do not use.
Definition: CSMAPI_enums.h:1338
@ CSM_BOSS_BALLOS_PLATFORMS
Ballos (Stage w/ Platforms)
Definition: CSMAPI_enums.h:1380
@ CSM_BOSSTYPE_COUNT
The number of boss types.
Definition: CSMAPI_enums.h:1383
@ CSM_BOSS_CORE
Island Core boss.
Definition: CSMAPI_enums.h:1362
@ CSM_BOSS_MOSTER_X_BOTTOM_LEFT
The bottom-left green dot (stage 1)
Definition: CSMAPI_enums.h:1353
@ CSM_BOSS_HEAVY_PRESS
Heavy press boss.
Definition: CSMAPI_enums.h:1374
@ CSM_BOSS_BALLOS_BOUNCING
Ballos (Stage w/ bouncing ballos)
Definition: CSMAPI_enums.h:1377
@ CSM_BOSS_UNDEAD_CORE
Undead island core boss.
Definition: CSMAPI_enums.h:1371
SCI_SetType
Determine which client to use.
Definition: CSMAPI_enums.h:1013
@ SCI_ST_SERVER
ONLY use server-sided clients.
Definition: CSMAPI_enums.h:1022
@ SCI_ST_AUTO
Automatically determine which client type to use.
Definition: CSMAPI_enums.h:1015
@ SCI_ST_ONLY_CLIENTS
ONLY use client objects. Do NOT use local player variables.
Definition: CSMAPI_enums.h:1032
@ SCI_ST_EXACT
Instead of determining the best suitable candidate, just use the inputted client parameter.
Definition: CSMAPI_enums.h:1036
@ SCI_ST_CLIENT
ONLY use client-sided clients.
Definition: CSMAPI_enums.h:1029
@ SCI_ST_ENSURE_PLAYER
Ensure that a MYCHAR is assigned, no matter what.
Definition: CSMAPI_enums.h:1039
GuiObjectSizingType
All possible sizing types for GUI elements using DynamicWindowMode.
Definition: CSMAPI_enums.h:1571
GameFlags
Game flags for g_GameFlags.
Definition: CSMAPI_enums.h:430
@ GF_EnableControl
Enable player control.
Definition: CSMAPI_enums.h:439
@ GF_CreditsRunning
Credits are running.
Definition: CSMAPI_enums.h:449
@ GF_DisableInventory
Disable utitlies.
Definition: CSMAPI_enums.h:444
@ GF_EnableActing
Enable calling ACT (ex.
Definition: CSMAPI_enums.h:434
CSM_ProcessLobby_ReturnFlags
Return flags for CaveNet::Server::ProcessLobby().
Definition: CSMAPI_enums.h:1431
@ CSM_PROCLOBBY_PLEASE_WAIT
Update the timer text to show 'please wait'.
Definition: CSMAPI_enums.h:1445
@ CSM_PROCLOBBY_UPDATE_READY_TEXT
Update all clients' ready text.
Definition: CSMAPI_enums.h:1439
@ CSM_PROCLOBBY_UPDATE_TIMER_TEXT
Update the timer text.
Definition: CSMAPI_enums.h:1442
@ CSM_PROCLOBBY_CONTINUE
Do not halt execution.
Definition: CSMAPI_enums.h:1433
@ CSM_PROCLOBBY_SET_DIRTY
Dirty the mode.
Definition: CSMAPI_enums.h:1436
KEYBIND2
A table of input flags.
Definition: CSMAPI_enums.h:233
@ KEY2_T
T key.
Definition: CSMAPI_enums.h:271
@ KEY2_F6
F6 key.
Definition: CSMAPI_enums.h:263
@ KEY2_NUM_2
2 key
Definition: CSMAPI_enums.h:239
@ KEY2_PG_UP
Page up key.
Definition: CSMAPI_enums.h:273
@ KEY2_TAB
Tab key.
Definition: CSMAPI_enums.h:255
@ KEY2_NUM_3
3 key
Definition: CSMAPI_enums.h:241
@ KEY2_NUM_7
7 key
Definition: CSMAPI_enums.h:249
@ KEY2_NUM_5
5 key
Definition: CSMAPI_enums.h:245
@ KEY2_F3
F3 key.
Definition: CSMAPI_enums.h:257
@ KEY2_NUM_6
6 key
Definition: CSMAPI_enums.h:247
@ KEY2_NUM_0
0 key
Definition: CSMAPI_enums.h:235
@ KEY2_F4
F4 key.
Definition: CSMAPI_enums.h:259
@ KEY2_F7
F7 key.
Definition: CSMAPI_enums.h:265
@ KEY2_MMB
Middle mouse button.
Definition: CSMAPI_enums.h:277
@ KEY2_NUM_9
9 key
Definition: CSMAPI_enums.h:253
@ KEY2_NUM_8
8 key
Definition: CSMAPI_enums.h:251
@ KEY2_F9
F9 key.
Definition: CSMAPI_enums.h:269
@ KEY2_F5
F5 key.
Definition: CSMAPI_enums.h:261
@ KEY2_F8
F8 key.
Definition: CSMAPI_enums.h:267
@ KEY2_PG_DN
Page down key.
Definition: CSMAPI_enums.h:275
@ KEY2_NUM_4
4 key
Definition: CSMAPI_enums.h:243
@ KEY2_NUM_1
1 key
Definition: CSMAPI_enums.h:237
Surface_Ids
List of surface IDs.
Definition: CSMAPI_enums.h:714
@ SURFACE_ID_NET_NAME_PLANE
Net name surface.
Definition: CSMAPI_enums.h:827
@ SURFACE_ID_ALLOCATABLE_SURFACE_END
End of allocatable surface indexing.
Definition: CSMAPI_enums.h:854
@ SURFACE_ID_LEVEL_TILESET
Current level tileset.
Definition: CSMAPI_enums.h:722
@ SURFACE_ID_BULLET
Bullet.png.
Definition: CSMAPI_enums.h:755
@ SURFACE_ID_SCREEN_GRAB
Last screen grab.
Definition: CSMAPI_enums.h:734
@ SURFACE_ID_DEMO_EDITOR
DemoEditor.png.
Definition: CSMAPI_enums.h:830
@ SURFACE_ID_SCREEN_GRAB2
Screengrab 2.
Definition: CSMAPI_enums.h:809
@ SURFACE_ID_FACE_COLOR_MASK
Character's face color mask (deprecated)
Definition: CSMAPI_enums.h:815
@ SURFACE_ID_LOADING
Loading.png.
Definition: CSMAPI_enums.h:749
@ SURFACE_ID_TEXT_BOX
Textbox stuff.
Definition: CSMAPI_enums.h:773
@ SURFACE_ID_CREDIT_CAST
?
Definition: CSMAPI_enums.h:800
@ SURFACE_ID_CONTROLS
Controls.png.
Definition: CSMAPI_enums.h:824
@ SURFACE_ID_CASTS
casts.png
Definition: CSMAPI_enums.h:806
@ SURFACE_ID_MAX_UNDYNAMIC
Number of static surfaces.
Definition: CSMAPI_enums.h:848
@ SURFACE_ID_ITEM_IMAGE
ItemImage.png.
Definition: CSMAPI_enums.h:728
@ SURFACE_ID_CHAT_TOPICS_MASK
ChatTopics_Mask.png.
Definition: CSMAPI_enums.h:821
@ SURFACE_ID_DEBUGCHARSET
Debug charset.
Definition: CSMAPI_enums.h:863
@ SURFACE_ID_ROOM_NAME
Room Name Surface.
Definition: CSMAPI_enums.h:743
@ SURFACE_ID_RENDERER_TEXTURE
Used for drawing directly to the renderer's hardware texture.
Definition: CSMAPI_enums.h:860
@ SURFACE_ID_NPC_REGU
Npc/NpcRegu.png.
Definition: CSMAPI_enums.h:770
@ SURFACE_ID_VALUE_VIEW
ValueView.
Definition: CSMAPI_enums.h:782
@ SURFACE_ID_TEAM_SPAWN_DOORS
TeamSpawnDoors.png.
Definition: CSMAPI_enums.h:836
@ SURFACE_ID_NPC_SYM
Npc/NpcSym.png.
Definition: CSMAPI_enums.h:761
@ SURFACE_ID_LEVEL_SPRITESET_1
Current level spritesheet (Npc)
Definition: CSMAPI_enums.h:764
@ SURFACE_ID_SCREEN_GRAB3
Screen grab 3.
Definition: CSMAPI_enums.h:842
@ SURFACE_ID_LEVEL_SPRITESET_2
Current level spritesheet (Boss)
Definition: CSMAPI_enums.h:767
@ SURFACE_ID_MAP
Map System Surface.
Definition: CSMAPI_enums.h:731
@ SURFACE_ID_CREDITS_IMAGE
Currently loaded credits image.
Definition: CSMAPI_enums.h:803
@ SURFACE_ID_TEXT_LINE1
TextLine1.
Definition: CSMAPI_enums.h:785
@ SURFACE_ID_TEXT_LINE4
TextLine4.
Definition: CSMAPI_enums.h:794
@ SURFACE_ID_LEVEL_BACKGROUND
Current level background.
Definition: CSMAPI_enums.h:779
@ SURFACE_ID_PIXEL
Pixel logo.
Definition: CSMAPI_enums.h:719
@ SURFACE_ID_CARET
Caret.png.
Definition: CSMAPI_enums.h:758
@ SURFACE_ID_TEXT_LINE5
TextLine5.
Definition: CSMAPI_enums.h:797
@ SURFACE_ID_RENDERER
Used for drawing directly to the screen with CacheSurface.
Definition: CSMAPI_enums.h:857
@ SURFACE_ID_ARMS
Arms.png.
Definition: CSMAPI_enums.h:737
@ SURFACE_ID_STAGE_ITEM
StageImage.png.
Definition: CSMAPI_enums.h:746
@ SURFACE_ID_MY_CHAR
MyChar.png (deprecated)
Definition: CSMAPI_enums.h:752
@ SURFACE_ID_FADE
Fade surface.
Definition: CSMAPI_enums.h:725
@ SURFACE_ID_ARMS_IMAGE
ArmsImage.png.
Definition: CSMAPI_enums.h:740
@ SURFACE_ID_HELP_IMAGES
HelpImages.png.
Definition: CSMAPI_enums.h:833
@ SURFACE_ID_GUI
GUI.
Definition: CSMAPI_enums.h:812
@ SURFACE_ID_TEXT_LINE3
TextLine3.
Definition: CSMAPI_enums.h:791
@ SURFACE_ID_ALLOCATABLE_SURFACE_START
Start of allocatable surface indexing.
Definition: CSMAPI_enums.h:851
@ SURFACE_ID_CHAT_TOPICS
ChatTopics.png.
Definition: CSMAPI_enums.h:818
@ SURFACE_ID_MAX
Number of surfaces.
Definition: CSMAPI_enums.h:866
@ SURFACE_ID_SCREEN_IMAGE
Used for <IMG and <IMF.
Definition: CSMAPI_enums.h:839
@ SURFACE_ID_TITLE
Title.png.
Definition: CSMAPI_enums.h:716
@ SURFACE_ID_TEXT_LINE2
TextLine2.
Definition: CSMAPI_enums.h:788
@ SURFACE_ID_FACE
Face.png.
Definition: CSMAPI_enums.h:776
CSM_ProgramMode
The program mode.
Definition: CSMAPI_enums.h:1414
@ CSM_PM_SPLITSCREEN_CLIENT
The game is running in 'splitscreen' mode as a client.
Definition: CSMAPI_enums.h:1422
@ CSM_PM_DEDICATED_SERVER
The game is running in 'dedicated server' mode.
Definition: CSMAPI_enums.h:1419
@ CSM_PM_NORMAL
Normal execution.
Definition: CSMAPI_enums.h:1416
@ CSM_PM_SPLITSCREEN_SERVER
The game is running in 'splitscreen' mode as server.
Definition: CSMAPI_enums.h:1425
GuiObjectClassType
All possible GUI elements for DynamicWindowMode.
Definition: CSMAPI_enums.h:1640
CSM_NET_CLIENT_QUERY
A table of query flags.
Definition: CSMAPI_enums.h:372
@ CSM_NCQ_CARRYING
[#CSM_NET_CLIENT::carrying_ghost_id] Get/set who the client is carrying.
Definition: CSMAPI_enums.h:413
@ CSM_NCQ_PLAYER
[#CSM_NET_CLIENT::player] Get/set the player data.
Definition: CSMAPI_enums.h:380
@ CSM_NCQ_NAME
[#CSM_NET_CLIENT::net_name] Get/set the net name.
Definition: CSMAPI_enums.h:377
@ CSM_NCQ_KEYTRG
[#CSM_NET_CLIENT::keyTrg] Get/set the client's input flags.
Definition: CSMAPI_enums.h:405
@ CSM_NCQ_DEAD
[#CSM_NET_CLIENT::is_dead] Get/set being dead.
Definition: CSMAPI_enums.h:396
@ CSM_NCQ_BEING_CARRIED
[#CSM_NET_CLIENT::is_being_carried] Get/set being carried.
Definition: CSMAPI_enums.h:385
@ CSM_NCQ_GAMEFLAGS
[#CSM_NET_CLIENT::gameFlags] Get/set the client's game flags.
Definition: CSMAPI_enums.h:399
@ CSM_NCQ_KEY
[#CSM_NET_CLIENT::key] Get/set the client's input flags.
Definition: CSMAPI_enums.h:402
@ CSM_NCQ_IS_CARRYING
[#CSM_NET_CLIENT::is_carrying] Get/set carrying someone.
Definition: CSMAPI_enums.h:390
@ CSM_NCQ_SPUR_CHARGE
[#CSM_NET_CLIENT::spur_charge] Get/set the client's spur charge amount.
Definition: CSMAPI_enums.h:421
@ CSM_NCQ_SPUR_MAX
[#CSM_NET_CLIENT::spur_max] Get/set whether the client has maximum spur charge.
Definition: CSMAPI_enums.h:424
@ CSM_NCQ_EVERYTHING
Everything.
Definition: CSMAPI_enums.h:374
@ CSM_NCQ_CARRIER
[#CSM_NET_CLIENT::carried_by_ghost_id] Get/set who is carrying the client.
Definition: CSMAPI_enums.h:418
@ CSM_NCQ_CURRENT_WEAPON
[#CSM_NET_CLIENT::currentWeapon] Get/set the client's current weapon.
Definition: CSMAPI_enums.h:408
NPC_collision
Internal flags for collision' sake.
Definition: CSMAPI_enums.h:562
@ npc_collide_down
Colliding with something below them.
Definition: CSMAPI_enums.h:573
@ npc_collide_right
Colliding with something to the right of them.
Definition: CSMAPI_enums.h:570
@ npc_collide_up
Colliding with something above them.
Definition: CSMAPI_enums.h:567
@ npc_collide_left
Colliding with something to the left of them.
Definition: CSMAPI_enums.h:564
PLAYER_STATE_TRANSMIT_FLAGS
Playerstate transmit flags.
Definition: CSMAPI_enums.h:1119
@ PSTF_OBJ_X
Transmit 'obj.x' field.
Definition: CSMAPI_enums.h:1145
@ PSTF_COUNT3
Transmit 'count3' field.
Definition: CSMAPI_enums.h:1127
@ PSTF_COUNT2
Transmit 'count2' field.
Definition: CSMAPI_enums.h:1124
@ PSTF_OBJ_TGT_X
Transmit 'obj.tgt_x' field.
Definition: CSMAPI_enums.h:1157
@ PSTF_NPC_PTR
Transmit 'pNpc' field.
Definition: CSMAPI_enums.h:1139
@ PSTF_OBJ_XM
Transmit 'obj.xm' field.
Definition: CSMAPI_enums.h:1151
@ PLAYER_TRANSMIT_FLAG_COUNT
The amount of flags there are.
Definition: CSMAPI_enums.h:1163
@ PSTF_OBJ_YM
Transmit 'obj.ym' field.
Definition: CSMAPI_enums.h:1154
@ PSTF_COUNT4
Transmit 'count4' field.
Definition: CSMAPI_enums.h:1130
@ PSTF_ACT_NO
Transmit 'act_no' field.
Definition: CSMAPI_enums.h:1133
@ PSTF_MYCHAR_PTR
Transmit 'pOther' and 'pOtherClient' fields.
Definition: CSMAPI_enums.h:1142
@ PSTF_OBJ_Y
Transmit 'obj.y' field.
Definition: CSMAPI_enums.h:1148
@ PSTF_ACT_WAIT
Transmit 'act_wait' field.
Definition: CSMAPI_enums.h:1136
@ PSTF_COUNT1
Transmit 'count1' field.
Definition: CSMAPI_enums.h:1121
@ PSTF_OBJ_TGT_Y
Transmit 'obj.tgt_y' field.
Definition: CSMAPI_enums.h:1160
GuiObjectDragType
All possible drag events for dragging a window.
Definition: CSMAPI_enums.h:1486
CSM_KEY_DESC
A table of input descriptors.
Definition: CSMAPI_enums.h:116
@ CSM_KEY_DESC_KEYTRG_JOY
Contains input flags from KEYBIND_JOYSTICK.
Definition: CSMAPI_enums.h:163
@ CSM_KEY_DESC_KEYTRG
Contains input flags from KEYBIND.
Definition: CSMAPI_enums.h:131
@ CSM_KEY_DESC_KEYTRG2
Contains input flags from KEYBIND2.
Definition: CSMAPI_enums.h:147
@ CSM_KEY_DESC_KEY
Contains input flags from KEYBIND.
Definition: CSMAPI_enums.h:123
@ CSM_KEY_DESC_KEY2
Contains input flags from KEYBIND2.
Definition: CSMAPI_enums.h:139
@ CSM_KEY_DESC_KEY_JOY
Contains input flags from KEYBIND_JOYSTICK.
Definition: CSMAPI_enums.h:155
PlayerDeathType
A list of possible player death types.
Definition: CSMAPI_enums.h:1215
GMC_cond
Internal cond flags for gMC (gMC.cond)
Definition: CSMAPI_enums.h:455
@ gmc_cond_hidden
Player is not drawn.
Definition: CSMAPI_enums.h:459
@ gmc_cond_disabled
Player is hidden & disabled.
Definition: CSMAPI_enums.h:457
NPC_update_nodes
Internal update nodes for NPCs (npc->update_nodes)
Definition: CSMAPI_enums.h:1252
KEYBIND
A table of input flags.
Definition: CSMAPI_enums.h:173
@ KEY_UP
Up arrow key.
Definition: CSMAPI_enums.h:179
@ KEY_ALT_UP
Colon key.
Definition: CSMAPI_enums.h:209
@ KEY_LMB
Left mouse button.
Definition: CSMAPI_enums.h:215
@ KEY_PLUS
Plus key.
Definition: CSMAPI_enums.h:213
@ KEY_ALT_RIGHT
Comma key.
Definition: CSMAPI_enums.h:207
@ KEY_ESCAPE
Escape button.
Definition: CSMAPI_enums.h:201
@ KEY_ALT_DOWN
Period key.
Definition: CSMAPI_enums.h:205
@ KEY_X
X key.
Definition: CSMAPI_enums.h:185
@ KEY_SCRL_DOWN
Mouse scroll wheel (down)
Definition: CSMAPI_enums.h:219
@ KEY_ALT_LEFT
Forward slash key.
Definition: CSMAPI_enums.h:203
@ KEY_LEFT
Left arrow key.
Definition: CSMAPI_enums.h:175
@ KEY_RIGHT
Right arrow key.
Definition: CSMAPI_enums.h:177
@ KEY_ITEM
KeyItem Button.
Definition: CSMAPI_enums.h:199
@ KEY_SHIFT
Shift key.
Definition: CSMAPI_enums.h:193
@ KEY_F2
F2 key.
Definition: CSMAPI_enums.h:197
@ KEY_DOWN
Down arrow key.
Definition: CSMAPI_enums.h:181
@ KEY_Z
Z key.
Definition: CSMAPI_enums.h:187
@ KEY_ARMS
"Next Weapon" button
Definition: CSMAPI_enums.h:189
@ KEY_SCRL_UP
Mouse scroll wheel (up)
Definition: CSMAPI_enums.h:221
@ KEY_RMB
Right mouse button.
Definition: CSMAPI_enums.h:217
@ KEY_MAX
Maximum key flags.
Definition: CSMAPI_enums.h:223
@ KEY_L
L key.
Definition: CSMAPI_enums.h:211
@ KEY_MAP
"Map" button
Definition: CSMAPI_enums.h:183
@ KEY_F1
F1 key.
Definition: CSMAPI_enums.h:195
@ KEY_ARMSREV
"Previous weapon" button
Definition: CSMAPI_enums.h:191
NPC_flags
Map flags for NPCs (npc->bits)
Definition: CSMAPI_enums.h:579
@ npc_solidSoft
Pushes quote out.
Definition: CSMAPI_enums.h:581
@ npc_appearSet
Only appear when flag is set.
Definition: CSMAPI_enums.h:611
@ npc_deprecated1
This NPC is an AnimNPC and should be cleaned up on death.
Definition: CSMAPI_enums.h:626
@ npc_option3
NPC Option 3.
Definition: CSMAPI_enums.h:641
@ npc_eventTouch
Run event when touched (Option 1)
Definition: CSMAPI_enums.h:605
@ npc_interact
Run event when interacted with.
Definition: CSMAPI_enums.h:617
@ npc_autoFocus
Auto focus target.
Definition: CSMAPI_enums.h:629
@ npc_altDir
Spawn facing to the right (Option 2)
Definition: CSMAPI_enums.h:614
@ npc_eventDieReal
Run event when killed.
Definition: CSMAPI_enums.h:653
@ npc_dontDeleteOnClientLoad
Don't delete this NPC when connected to a server & loading a map.
Definition: CSMAPI_enums.h:647
@ npc_deprecated2
Build special update packets.
Definition: CSMAPI_enums.h:635
@ npc_invulnerable
Can't get hit.
Definition: CSMAPI_enums.h:587
@ npc_showDamage
Show #Damage taken.
Definition: CSMAPI_enums.h:623
@ npc_max_flags
Max flags.
Definition: CSMAPI_enums.h:656
@ npc_option1
NPC Option 1.
Definition: CSMAPI_enums.h:660
@ npc_ignore44
Ignores tile 44 (No NPC)
Definition: CSMAPI_enums.h:584
@ npc_shootable
Can be shot.
Definition: CSMAPI_enums.h:596
@ npc_drawOnTop
Draw on top of everything.
Definition: CSMAPI_enums.h:650
@ npc_ghost
This NPC is a ghost.
Definition: CSMAPI_enums.h:638
@ npc_ignoreSolid
Doesn't collide with anything.
Definition: CSMAPI_enums.h:590
@ npc_eventDie
Run event when killed.
Definition: CSMAPI_enums.h:608
@ npc_dontUpdate
Don't send net updates.
Definition: CSMAPI_enums.h:632
@ npc_solidHard
Essentially acts as level tiles.
Definition: CSMAPI_enums.h:599
@ npc_option2
NPC Option 2.
Definition: CSMAPI_enums.h:663
@ npc_option4
NPC Option 4.
Definition: CSMAPI_enums.h:644
@ npc_rearTop
Rear and top don't hurt.
Definition: CSMAPI_enums.h:602
@ npc_bouncy
Quote bounces on the top.
Definition: CSMAPI_enums.h:593
@ npc_hideSet
Hide when flag is set.
Definition: CSMAPI_enums.h:620
PlayerStateAnimator_OutputType
A list of output types for a player state's "ANIMATE" function.
Definition: CSMAPI_enums.h:1203
CSM_GameInputMode
Game input mode.
Definition: CSMAPI_enums.h:1400
@ CSM_GIM_DYNAMIC
Dynamically switch between joypad & keyboard mode based on which one had a button pressed on it last.
Definition: CSMAPI_enums.h:1402
@ CSM_GIM_FORCE_JOYPAD
Force the game to use & accept joypad input ONLY.
Definition: CSMAPI_enums.h:1405
@ CSM_GIM_FORCE_KEYBOARD
Force the game to use & accept keyboard input ONLY.
Definition: CSMAPI_enums.h:1408
GuiObjectAnchorType
Anchor types for DynamicWindowMode GUI elements.
Definition: CSMAPI_enums.h:1524
NPC_int_flag
Internal flags for NPCs (npc->flag)
Definition: CSMAPI_enums.h:669
@ npc_flag_collide_triangleA
Collide slope.
Definition: CSMAPI_enums.h:681
@ npc_flag_collide_triangleH
Collide slope.
Definition: CSMAPI_enums.h:695
@ npc_flag_collide_wall
Collide wall.
Definition: CSMAPI_enums.h:679
@ npc_flag_collide_triangleC
Collide slope.
Definition: CSMAPI_enums.h:685
@ npc_flag_collide_triangleG
Collide slope.
Definition: CSMAPI_enums.h:693
@ npc_flag_collide_left
Collide left.
Definition: CSMAPI_enums.h:671
@ npc_flag_collide_right
Collide right.
Definition: CSMAPI_enums.h:675
@ npc_flag_collide_triangleD
Collide slope.
Definition: CSMAPI_enums.h:687
@ npc_flag_collide_triangleE
Collide slope.
Definition: CSMAPI_enums.h:689
@ npc_flag_collide_triangleB
Collide slope.
Definition: CSMAPI_enums.h:683
@ npc_flag_collide_triangleF
Collide slope.
Definition: CSMAPI_enums.h:691
@ npc_flag_collide_ceiling
Collide up.
Definition: CSMAPI_enums.h:673
@ npc_flag_on_water_tile
In water.
Definition: CSMAPI_enums.h:697
@ npc_flag_collide_floor
Collide floor.
Definition: CSMAPI_enums.h:677
TextScriptTarget
The TextScript's target.
Definition: CSMAPI_enums.h:1045
@ TS_TARGET_EXECUTOR_TEAM
Target the event executor's team. If they are not in one, then target them directly.
Definition: CSMAPI_enums.h:1053
@ TS_TARGET_EVERYONE
Target everyone in the server.
Definition: CSMAPI_enums.h:1047
@ TS_TARGETCOUNT
How many targets there can be.
Definition: CSMAPI_enums.h:1059
@ TS_TARGET_EXECUTOR
Target the event executor.
Definition: CSMAPI_enums.h:1050
@ TS_TARGET_SINGLEPLAYER
Target singleplayer components.
Definition: CSMAPI_enums.h:1056
NPC_transmit_nodes
Internal transmit nodes for NPCs (npc->transmit_nodes)
Definition: CSMAPI_enums.h:1290
PLAYER_STATE_FLAGS
Player state flags.
Definition: CSMAPI_enums.h:1065
@ PSF_NO_HUD
If set, then this player's hud cannot be drawn.
Definition: CSMAPI_enums.h:1079
@ PSF_CARRIED_GOD
If set, then the player we're carrying has godmode.
Definition: CSMAPI_enums.h:1109
@ PSF_UNIT
If set, then this state is a 'MYCHAR->unit' state.
Definition: CSMAPI_enums.h:1103
@ PSF_NOTARGET
If set, then this player cannot be focused by NPCs or bosses.
Definition: CSMAPI_enums.h:1097
@ PSF_NOCLIP
If set, then this player will not be affected by collision.
Definition: CSMAPI_enums.h:1094
@ PSF_CENTER_CAMERA
If set, the camera will be centered onto the player.
Definition: CSMAPI_enums.h:1085
@ PSF_NO_CAMERA
If set, then the camera will not follow the player.
Definition: CSMAPI_enums.h:1073
@ PSF_NO_SPECTATE
If set, then this player cannot be spectated.
Definition: CSMAPI_enums.h:1076
@ PSF_GOD
If set, then this player is invulnerable.
Definition: CSMAPI_enums.h:1100
@ PSF_NO_AIR
If set, then this state will not process air.
Definition: CSMAPI_enums.h:1067
@ PSF_FREE
If set, then the act function will be called before the player's state is changed.
Definition: CSMAPI_enums.h:1091
@ PSF_PUT_BUBBLE
If set, then the bubble from the Ironhead boss will be drawn around the player.
Definition: CSMAPI_enums.h:1106
@ PSF_NO_WEAPONS
If set, then players cannot use weapons whilst in this state.
Definition: CSMAPI_enums.h:1070
@ PSF_NO_PICKUPS
If set, then this player cannot pickup drops.
Definition: CSMAPI_enums.h:1082
@ PSF_CARRIED_NOTARGET
If set, then the player we're carrying has notarget.
Definition: CSMAPI_enums.h:1112
@ PSF_INIT
If set, then the act function will be called immediately after the state is set.
Definition: CSMAPI_enums.h:1088
GameProcessMode
Controls what the game is currently doing.
Definition: CSMAPI_enums.h:970
@ GPM_ACTION
This is where all the singleplayer gameplay happens.
Definition: CSMAPI_enums.h:986
@ GPM_CONTINUE
Continue the game from a mode.
Definition: CSMAPI_enums.h:972
@ GPM_NET_LOBBY
Showing the current net lobby we're in.
Definition: CSMAPI_enums.h:996
@ GPM_CLOSE_GAME
Closing the game.
Definition: CSMAPI_enums.h:975
@ GPM_TITLE_SCREEN
Showing the title screen.
Definition: CSMAPI_enums.h:981
@ GPM_OPENING_SEQUENCE
Showing the opening sequence.
Definition: CSMAPI_enums.h:978
@ GPM_NET_ACITON
This is where all the multiplayer gameplay happens.
Definition: CSMAPI_enums.h:991
@ GPM_NET_MANIFEST
Showing the download screen.
Definition: CSMAPI_enums.h:1006
@ GPM_NET_CONNECTING
Showing the 'CONNECTING...' screen.
Definition: CSMAPI_enums.h:1001
GuiObjectFlags
Flags for DynamicWindowMode GUI elements.
Definition: CSMAPI_enums.h:1616
CSM_SDL_Scancode
SDL2's scancode enum, exposed for CSM.
Definition: CSMAPI_enums.h:1757
@ CSM_SDL_SCANCODE_INTERNATIONAL1
used on Asian keyboards, see footnotes in USB doc
Definition: CSMAPI_enums.h:1961
@ CSM_SDL_SCANCODE_LGUI
windows, command (apple), meta
Definition: CSMAPI_enums.h:2044
@ CSM_SDL_SCANCODE_RGUI
windows, command (apple), meta
Definition: CSMAPI_enums.h:2048
@ CSM_SDL_SCANCODE_LALT
alt, option
Definition: CSMAPI_enums.h:2043
@ CSM_SDL_SCANCODE_LANG5
Zenkaku/Hankaku.
Definition: CSMAPI_enums.h:1975
@ CSM_SDL_SCANCODE_LANG1
Hangul/English toggle.
Definition: CSMAPI_enums.h:1971
@ CSM_SDL_SCANCODE_LANG8
reserved
Definition: CSMAPI_enums.h:1978
@ CSM_SDL_SCANCODE_LANG6
reserved
Definition: CSMAPI_enums.h:1976
@ CSM_SDL_SCANCODE_DISPLAYSWITCH
display mirroring/dual display switch, video mode switch
Definition: CSMAPI_enums.h:2093
@ CSM_SDL_SCANCODE_AGAIN
redo
Definition: CSMAPI_enums.h:1945
@ CSM_SDL_SCANCODE_LANG3
Katakana.
Definition: CSMAPI_enums.h:1973
@ 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...
Definition: CSMAPI_enums.h:2050
@ CSM_SDL_SCANCODE_LANG2
Hanja conversion.
Definition: CSMAPI_enums.h:1972
@ CSM_SDL_SCANCODE_INTERNATIONAL3
Yen.
Definition: CSMAPI_enums.h:1964
@ CSM_SDL_SCANCODE_INSERT
insert on PC, help on some Mac keyboards (but does send code 73, not 117)
Definition: CSMAPI_enums.h:1882
@ CSM_SDL_SCANCODE_GRAVE
Located in the top left corner (on both ANSI and ISO keyboards).
Definition: CSMAPI_enums.h:1843
@ 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...
Definition: CSMAPI_enums.h:1829
@ CSM_SDL_SCANCODE_APPLICATION
windows contextual menu, compose
Definition: CSMAPI_enums.h:1923
@ CSM_SDL_SCANCODE_NONUSBACKSLASH
This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y.
Definition: CSMAPI_enums.h:1913
@ CSM_SDL_NUM_SCANCODES
not a key, just marks the number of scancodes for array bounds
Definition: CSMAPI_enums.h:2120
@ CSM_SDL_SCANCODE_LANG7
reserved
Definition: CSMAPI_enums.h:1977
@ CSM_SDL_SCANCODE_ALTERASE
Erase-Eaze.
Definition: CSMAPI_enums.h:1981
@ CSM_SDL_SCANCODE_NUMLOCKCLEAR
num lock on PC, clear on Mac keyboards
Definition: CSMAPI_enums.h:1894
@ CSM_SDL_SCANCODE_LANG4
Hiragana.
Definition: CSMAPI_enums.h:1974
@ CSM_SDL_SCANCODE_POWER
The USB document says this is a status flag, not a physical key - but some Mac keyboards do have a po...
Definition: CSMAPI_enums.h:1924
@ 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 o...
Definition: CSMAPI_enums.h:1815
@ CSM_SDL_SCANCODE_LANG9
reserved
Definition: CSMAPI_enums.h:1979
@ CSM_SDL_SCANCODE_RALT
alt gr, option
Definition: CSMAPI_enums.h:2047
TileType
Tiletype flags.
Definition: CSMAPI_enums.h:877
@ TT_ANY_MOVE
Tile moves the player.
Definition: CSMAPI_enums.h:960
@ TT_VISIBLE
Tile is visible.
Definition: CSMAPI_enums.h:906
@ TT_MOVE_DOWN
Tile pushes the player down.
Definition: CSMAPI_enums.h:945
@ TT_ANY_TEAM
Tile is team-locked.
Definition: CSMAPI_enums.h:963
@ TT_SLOPE_FLOOR_0
Tile is a right-facing large floor slope.
Definition: CSMAPI_enums.h:921
@ TT_SLOPE_FLOOR_1
Tile is a right-facing small floor slope.
Definition: CSMAPI_enums.h:924
@ TT_RED_TEAM
Tile is solid for players not on the red team.
Definition: CSMAPI_enums.h:954
@ TT_SOLID
Tile is completely solid.
Definition: CSMAPI_enums.h:903
@ TT_DAMAGE
Tile damages the player.
Definition: CSMAPI_enums.h:888
@ TT_NO_NPC
Tile does not allow NPCs inside of it.
Definition: CSMAPI_enums.h:894
@ TT_SHOOTABLE
Tile is shootable.
Definition: CSMAPI_enums.h:900
@ TT_SLOPE_CEIL_3
TIle is a left-facing small ceiling slope.
Definition: CSMAPI_enums.h:918
@ TT_NO_PLAYER
Tile does not allow the player inside of it.
Definition: CSMAPI_enums.h:897
@ TT_GREEN_TEAM
Tile is solid for players not on the green team.
Definition: CSMAPI_enums.h:951
@ TT_FOREGROUND
Tile is drawn after NPCs and the player.
Definition: CSMAPI_enums.h:879
@ TT_MOVE_UP
Tile pushes the player up.
Definition: CSMAPI_enums.h:942
@ TT_SLOPE_CEIL_0
TIle is a right-facing large ceiling slope.
Definition: CSMAPI_enums.h:909
@ TT_SLOPE_FLOOR_2
Tile is a left-facing large floor slope.
Definition: CSMAPI_enums.h:927
@ TT_ANY_SLOPE
Tile is a slope.
Definition: CSMAPI_enums.h:933
@ TT_SLOPE_CEIL_1
TIle is a right-facing small ceiling slope.
Definition: CSMAPI_enums.h:912
@ TT_BLUE_TEAM
Tile is solid for players not on the blue team.
Definition: CSMAPI_enums.h:957
@ TT_YELLOW_TEAM
Tile is solid for players not on the yellow team.
Definition: CSMAPI_enums.h:948
@ TT_WATER
Water tile.
Definition: CSMAPI_enums.h:885
@ TT_SLOPE_CEIL_2
TIle is a left-facing large ceiling slope.
Definition: CSMAPI_enums.h:915
@ TT_MOVE_RIGHT
Tile pushes the player right.
Definition: CSMAPI_enums.h:939
@ TT_MOVE_LEFT
Tile pushes the player left.
Definition: CSMAPI_enums.h:936
@ TT_BACKGROUND
Tile is drawn before NPCs and the player.
Definition: CSMAPI_enums.h:882
@ TT_DESTROYABLE
Tile is destroyable.
Definition: CSMAPI_enums.h:891
@ TT_SLOPE_FLOOR_3
Tile is a left-facing small floor slope.
Definition: CSMAPI_enums.h:930
CSM_RankedClientInfoType
Ranked client type.
Definition: CSMAPI_enums.h:1389
@ CSM_RCIT_IP
Use the IP feature.
Definition: CSMAPI_enums.h:1391
KeyInputType
Key input types.
Definition: CSMAPI_enums.h:66
@ KIT_Key2
gKey2 and gKeyTrg2
Definition: CSMAPI_enums.h:71
@ KIT_Key
gKey and gKeyTrg
Definition: CSMAPI_enums.h:68
@ KIT_KeyJoypad
gKey_JOY and gKeyTrg_JOY
Definition: CSMAPI_enums.h:74
NetScoreMaskBits
A table of NetScoreType mask bits.
Definition: CSMAPI_enums.h:310
@ NETSCORE_MASK_GAME_OBJECTIVE
Game objective.
Definition: CSMAPI_enums.h:315
@ NETSCORE_MASK_DAMAGE_TAKEN
Score gained from damage being taken.
Definition: CSMAPI_enums.h:327
@ NETSCORE_MASK_DAMAGE_DEALT
Score gained from damage dealt.
Definition: CSMAPI_enums.h:324
@ NETSCORE_MASK_PLAYERS
Score gained from some player activity.
Definition: CSMAPI_enums.h:321
@ NETSCORE_MASK_KILLS
Score gained from killing.
Definition: CSMAPI_enums.h:330
@ NETSCORE_MASK_NPCS
Score gained from some NPC activity.
Definition: CSMAPI_enums.h:318
@ NETSCORE_MASK_MISC_STATS
Miscallaneous statistics.
Definition: CSMAPI_enums.h:312
NPC_cond
Internal cond flags for NPCs (npc->cond)
Definition: CSMAPI_enums.h:703
@ npc_cond_npc_alive
NPC is not disabled.
Definition: CSMAPI_enums.h:708
NetScoreTypeFlags
A table of NetScoreType flags.
Definition: CSMAPI_enums.h:339
@ NETSCORE_FLAG_TIME_DIFFERENCE
Reworks the way the NetScoreType handles value changes: Instead of storing a value,...
Definition: CSMAPI_enums.h:358
@ NETSCORE_FLAG_DONT_RESET_ON_DEATH
Disables zeroing the 'Current Life' points counter on client respawn.
Definition: CSMAPI_enums.h:350
@ NETSCORE_FLAG_DONT_SYNC
Disables automatic syncing between clients for this NetScoreType.
Definition: CSMAPI_enums.h:347
@ NETSCORE_FLAG_TIME_DIFFERENCE_USE_SEC
Saves in seconds instead of milliseconds.
Definition: CSMAPI_enums.h:361
@ NETSCORE_FLAG_MANDATORY_SCORE
Forces all clients to have to this NetScoreType upon joining the server.
Definition: CSMAPI_enums.h:344
@ NETSCORE_FLAG_HIDDEN_FROM_UI
Hides this NetScoreType from the statistics page.
Definition: CSMAPI_enums.h:341
CSM_KEYBIND_DESC
A table of keybind descriptors.
Definition: CSMAPI_enums.h:83
@ CSM_KEYBIND_DESC_MAP
Map button.
Definition: CSMAPI_enums.h:95
@ CSM_KEYBIND_DESC_SHOOT
Shoot button.
Definition: CSMAPI_enums.h:87
@ CSM_KEYBIND_DESC_CANCEL
"Cancel" button
Definition: CSMAPI_enums.h:99
@ CSM_KEYBIND_DESC_ARMS_PREV
Previous Weapon button.
Definition: CSMAPI_enums.h:91
@ CSM_KEYBIND_DESC_JUMP
Jump button.
Definition: CSMAPI_enums.h:85
@ CSM_KEYBIND_DESC_RIGHT
Right button.
Definition: CSMAPI_enums.h:105
@ CSM_KEYBIND_DESC_INVENTORY
Inventory button.
Definition: CSMAPI_enums.h:93
@ CSM_KEYBIND_DESC_ARMS_NEXT
Next Weapon button.
Definition: CSMAPI_enums.h:89
@ CSM_KEYBIND_DESC_LEFT
Left button.
Definition: CSMAPI_enums.h:101
@ CSM_KEYBIND_DESC_DOWN
Down button.
Definition: CSMAPI_enums.h:107
@ CSM_KEYBIND_DESC_UP
Up button.
Definition: CSMAPI_enums.h:103
@ CSM_KEYBIND_DESC_OK
"OK" button
Definition: CSMAPI_enums.h:97
NpcPositionType
A list of position types for CSM_Npc_GetPosition .
Definition: CSMAPI_enums.h:1241