Cavestory Mod API
Classes | Macros | Typedefs | Enumerations | Functions | Variables
CSMAPI_BaseModeInstance.h File Reference
#include <CSMAPI_begincode.h>
#include <CSMAPI_endcode.h>

Go to the source code of this file.

Classes

struct  KeyControlStruct
 For MenuControls. More...
 
struct  EventScheduleStruct
 Scheduled Event Info. More...
 
struct  ToolTipStruct
 ToolTip Info. More...
 
class  ModeThreadInstance
 Easy multi-threading for modes. More...
 
class  BaseModeInstance
 Easy UI management. More...
 
struct  BaseModeInstance::ModeConfiguration
 Configuration class for BaseModeInstance. More...
 
class  BaseModeInstance::GLOBAL_CONFIG_STRUCT
 Holds all global config variables for BaseModeInstance. More...
 
struct  BaseModeInstance::ModeInput
 Used for handling input. More...
 

Macros

#define MODE_INSTANCE_MAX_TEXTURES   64
 Maximum allocatable textures per mode instance.
 
#define MODE_INSTANCE_MAX_SURFACES   64
 Maximum allocatable surfaces per mode instance.
 
#define MODE_INSTANCE_MAX_THREADS   8
 Maximum allocatable threads per mode instance.
 
#define MODE_INSTANCE_DEBUG
 Enable forced debug mode.
 
#define MODE_INSTANCE_GUARDS
 Enable safety guards.
 
#define MODE_TOOLTIP_ANIMATION_TIME   1000
 The amount of time (in milliseconds) added to a tooltip's lifetime so that it can play the fadein/fadeout animation.
 
#define MODE_DRAW_CENTERED_SURFACE   -0x7FFFFFF
 The center flag for DrawSurface(). Do not change this.
 
#define MODE_IM_STILL_RUNNING   0x7FFFFFFF
 The "i'm still running!" return code for DoModeTick.
 
#define CONTROL_MARGIN   4
 The control keys surface margin.
 
#define MODE_INVALID_THREAD_ID   0
 Invalid ID for ModeThreadInstance.
 
#define INVALID_SCHEDULE_ID   0xFFFFFFFF
 Invalid ID for EventScheduleId.
 
#define DefineKeyControlStruct(INPUT_TYPE, KEY, DESC)   { INPUT_TYPE, KEY, DESC }
 Standardized macro for creating KeyControlStruct. More...
 

Typedefs

typedef unsigned int ModeThreadId
 The identifier for a ModeThreadInstance's ID.
 
typedef unsigned int EventScheduleId
 The identifier for a schedule's ID.
 
typedef void(* EventSchedulePayloadFunc) (BaseModeInstance *pOwner, void *pUserData)
 The function structure of a payload for 'EventScheduleStruct'. More...
 

Enumerations

enum  MODE_GLOBAL_CONFIG_TYPE { GCT_IGNORE_WINDOW_DEFAULT = 0 }
 Global variables for BaseModeInstance classes. More...
 
enum  MENU_CONTROLS_DRAW_POSITION {
  CDP_TOP_LEFT = 0 , CDP_TOP_RIGHT = 1 , CDP_BTM_LEFT = 2 , CDP_BTM_RIGHT = 3 ,
  CDP_CENTER = 4
}
 How to draw the menu controls. More...
 
enum  MENU_CONTROLS_DRAW_FRAME { ANIMATED = 0 , NORMAL = 1 , DEPRESSED = 2 }
 States of the menu control element. More...
 
enum  MENU_CONTROLS_ACTS {
  MCA_FIRST_OPEN = 0 , MCA_OPENED = 1 , MCA_CLOSING = 2 , MCA_CLOSED = 3 ,
  MCA_OPENING = 4
}
 Act descriptors for menu controls. More...
 
enum  KEY_CONTROL_INPUT_TYPE { KCIT_KEY = 0 , KCIT_KEY2 = 1 , KCIT_KEY3 = 2 , KCIT_MOUSE = 3 }
 The type of key input to expect from a KeyControlStruct. More...
 

Functions

void Platform::OpenBugReporter ()
 
int ChatEmotes::CheckOpenList (BaseModeInstance *)
 
void CAVESTORY_MOD_API MessageBox_DrawMode (void *)
 

Variables

class CAVESTORY_MOD_API BaseModeInstance
 
class CAVESTORY_MOD_API ModeInputVector
 
class CAVESTORY_MOD_API ExternalWindow
 

Macro Definition Documentation

◆ DefineKeyControlStruct

#define DefineKeyControlStruct (   INPUT_TYPE,
  KEY,
  DESC 
)    { INPUT_TYPE, KEY, DESC }

Standardized macro for creating KeyControlStruct.

Parameters
INPUT_TYPEKEY_CONTROL_INPUT_TYPE. The type of input to display.
USE_MOUSEBoolean. Whether this defines a mouse key struct or not.
KEYThe key to use.
DESCThe text to display alongside the control.

Typedef Documentation

◆ EventSchedulePayloadFunc

typedef void(* EventSchedulePayloadFunc) (BaseModeInstance *pOwner, void *pUserData)

The function structure of a payload for 'EventScheduleStruct'.

Parameters
pOwnerThe mode this schedule belongs to.
pUserDataThe data that was provided with this schedule.

Enumeration Type Documentation

◆ KEY_CONTROL_INPUT_TYPE

The type of key input to expect from a KeyControlStruct.

Enumerator
KCIT_KEY 

Normal input (gKey, gKeyTrg)

KCIT_KEY2 

Key2 input (gKey2, gKeyTrg2)

KCIT_KEY3 

Key3 input (gKey3, gKeyTrg3)

KCIT_MOUSE 

Mouse input.

◆ MENU_CONTROLS_ACTS

Act descriptors for menu controls.

Enumerator
MCA_FIRST_OPEN 

First open.

MCA_OPENED 

Opened.

MCA_CLOSING 

Closing.

MCA_CLOSED 

Closed.

MCA_OPENING 

Opening.

◆ MENU_CONTROLS_DRAW_FRAME

States of the menu control element.

Enumerator
ANIMATED 

Being animated (opening, closing)

NORMAL 

Opened.

DEPRESSED 

Closed.

◆ MENU_CONTROLS_DRAW_POSITION

How to draw the menu controls.

Enumerator
CDP_TOP_LEFT 

Draw them in the top left.

CDP_TOP_RIGHT 

Draw them in top right.

CDP_BTM_LEFT 

Draw them in bottom left.

CDP_BTM_RIGHT 

Draw them in bottom right.

CDP_CENTER 

Draw them in the middle of the screen.

◆ MODE_GLOBAL_CONFIG_TYPE

Global variables for BaseModeInstance classes.

Enumerator
GCT_IGNORE_WINDOW_DEFAULT 

Defines the default value for m_ModeConfig.IgnoreWindow.