29 #define SOUND_MODE_LOOP -1
30 #define SOUND_MODE_STOP 0
31 #define SOUND_MODE_STOP_THEN_PLAY 1
32 #define SOUND_MODE_PLAY 2
35 #define CSM_MAX_BULLET_FUNCS 64
36 #define CSM_MAX_WEAPON_SHOOT_FUNCS 64
37 #define CSM_MAX_NPC_FUNCS 1024
38 #define CSM_MAX_CUSTOM_SOUNDS 255
41 #define CARET_MAX 0x40
42 #define BULLET_MAX 0x200
45 #define PERMIT_STAGE_COUNT 24
46 #define MAX_PERMIT_INDEX 8
47 #define MAX_WHIMSICAL_STARS 3
48 #define ANIM_NPC_MAX 128
49 #define NPC_MAX (0x200 + ANIM_NPC_MAX)
50 #define ANIM_NPC_START_OFFSET (NPC_MAX - ANIM_NPC_MAX)
52 #define MAX_DYNAMIC_SURFACES (SURFACE_ID_ALLOCATABLE_SURFACE_END - SURFACE_ID_ALLOCATABLE_SURFACE_START)
53 #define BASE_WINDOW_WIDTH 426
54 #define BASE_WINDOW_HEIGHT 240
55 #define WINDOW_WIDTH WINDOW_REAL_WIDTH
56 #define WINDOW_HEIGHT WINDOW_REAL_HEIGHT
57 #define PATH_LENGTH 260
60 #define CSM_OUR_GHOST_ID -2
63 #define SubpixelToPixel(X) ((X) / 0x200)
64 #define SCALE_GUI_POINT(POINT, CENTER, SCALAR) (((POINT - CENTER) * SCALAR) + CENTER)
65 #define RECT_WIDTH(RC) ((RC).right - (RC).left)
66 #define RECT_HEIGHT(RC) ((RC).bottom - (RC).top)
67 #define CLAMP(x, min, max) ((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
68 #define MIN(A, B) ((A) < (B) ? (A) : (B))
69 #define MAX(A, B) ((A) > (B) ? (A) : (B))
70 #define ABS(x) ((x) < 0 ? -(x) : (x))
72 #define SET_RECT(rect, l, t, r, b) \
78 #define CSM_RGB(r,g,b) ((r) | ((g) << 8) | ((b) << 16) | (0xFF << 24))
79 #define CSM_RGBA(r,g,b,a) ((r) | ((g) << 8) | ((b) << 16) | ((a) << 24))
80 #define CSM_GETRED(x) (unsigned char)((x) & 0xFF)
81 #define CSM_GETGREEN(x) (unsigned char)(((x) >> 8) & 0xFF)
82 #define CSM_GETBLUE(x) (unsigned char)(((x) >> 16) & 0xFF)
83 #define CSM_GETALPHA(x) (unsigned char)(((x) >> 24) & 0xFF)
85 #define CSM_TextScript_IsMessageBoxOpen() ((gTS.flags & 0x33) != 0)
87 #define CSM_Error(FORMAT, ...) CSM_Log("[" __FILE__ " @ %d] ERROR: " __FUNCTION__ "() - " FORMAT, __LINE__, __VA_ARGS__);
89 #define SYSTEM_MENU_CREATE_SHORTCUT(VARNAME, SCAN_CODE, USE_CTRL, USE_SHIFT)\
90 Input::KeyShortcut* VARNAME = new Input::KeyShortcut();\
91 VARNAME->SetCombo(SDL_Scancode::SCAN_CODE, USE_CTRL, USE_SHIFT);
93 #define SYSTEM_MENU_ADD_MENU(MENU, VARNAME, ID, TEXT, PARENT_MENU, SHORTCUT)\
94 SystemMenuItem* VARNAME = (MENU)->AddItem(ID, TEXT, PARENT_MENU, SHORTCUT);
96 #define SYSTEM_MENU_ADD_ITEM(MENU, ID, TEXT, PARENT_MENU, SHORTCUT)\
97 (MENU)->AddItem(ID, TEXT, PARENT_MENU, SHORTCUT)->OnClicked = [](SystemMenuInfo* pGui, SystemMenuItem* pItem)
99 #define SYSTEM_MENU_ADD_SEPERATOR(MENU, PARENT_MENU)\
100 (MENU)->AddItem(-1, "", PARENT_MENU)->Seperator = true;
#define CAVESTORY_MOD_API
Exports / imports Cavestory Mod API functions & classes.
Definition: CSMAPI_begincode.h:30