28#ifndef AGS_ENGINE_AC_GAME_H
29#define AGS_ENGINE_AC_GAME_H
31#include "ags/engine/ac/dynobj/script_view_frame.h"
32#include "ags/engine/main/game_file.h"
33#include "ags/shared/util/string.h"
46#define RAGMODE_PRESERVEGLOBALINT 1
47#define RAGMODE_LOADNOW 0x8000000
50#define GP_SPRITEWIDTH 1
51#define GP_SPRITEHEIGHT 2
54#define GP_ISRUNNEXTLOOP 5
55#define GP_FRAMESPEED 6
56#define GP_FRAMEIMAGE 7
57#define GP_FRAMESOUND 8
59#define GP_NUMOBJECTS 10
60#define GP_NUMCHARACTERS 11
61#define GP_NUMINVITEMS 12
62#define GP_ISFRAMEFLIPPED 13
64enum CutsceneSkipStyle {
65 kSkipSceneUndefined = 0,
66 eSkipSceneEscOnly = 1,
69 eSkipSceneKeyMouse = 4,
70 eSkipSceneEscOrRMB = 5,
71 eSkipSceneScriptOnly = 6
77#define VOL_CHANGEEXISTING 1678
78#define VOL_SETFUTUREDEFAULT 1679
81void Game_StopAudio(
int audioType);
82int Game_IsAudioPlaying(
int audioType);
83void Game_SetAudioTypeSpeechVolumeDrop(
int audioType,
int volumeDrop);
84void Game_SetAudioTypeVolume(
int audioType,
int volume,
int changeType);
86int Game_GetMODPattern();
91int Game_GetDialogCount();
94void SetDefaultSaveDirectory();
96int Game_SetSaveGameDirectory(
const char *newFolder);
97const char *Game_GetSaveSlotDescription(
int slnum);
99const char *Game_GetGlobalStrings(
int index);
103void AssertView(
const char *apiname,
int view);
104void AssertViewHasLoops(
const char *apiname,
int view);
105void AssertLoop(
const char *apiname,
int view,
int loop);
106void AssertFrame(
const char *apiname,
int view,
int loop,
int frame);
108int Game_GetInventoryItemCount();
109int Game_GetFontCount();
110int Game_GetMouseCursorCount();
111int Game_GetCharacterCount();
112int Game_GetGUICount();
113int Game_GetViewCount();
114int Game_GetUseNativeCoordinates();
115int Game_GetSpriteWidth(
int spriteNum);
116int Game_GetSpriteHeight(
int spriteNum);
117int Game_GetLoopCountForView(
int viewNumber);
118int Game_GetRunNextSettingForLoop(
int viewNumber,
int loopNumber);
119int Game_GetFrameCountForLoop(
int viewNumber,
int loopNumber);
120ScriptViewFrame *Game_GetViewFrame(
int viewNumber,
int loopNumber,
int frame);
121int Game_DoOnceOnly(
const char *token);
123int Game_GetTextReadingSpeed();
124void Game_SetTextReadingSpeed(
int newTextSpeed);
125int Game_GetMinimumTextDisplayTimeMs();
126void Game_SetMinimumTextDisplayTimeMs(
int newTextMinTime);
127int Game_GetIgnoreUserInputAfterTextTimeoutMs();
128void Game_SetIgnoreUserInputAfterTextTimeoutMs(
int newValueMs);
129const char *Game_GetFileName();
130const char *Game_GetName();
131void Game_SetName(
const char *newName);
133int Game_GetSkippingCutscene();
134int Game_GetInSkippableCutscene();
136int Game_GetColorFromRGB(
int red,
int grn,
int blu);
137const char *Game_InputBox(
const char *msg);
138const char *Game_GetLocationName(
int x,
int y);
140const char *Game_GetGlobalMessages(
int index);
142int Game_GetSpeechFont();
143int Game_GetNormalFont();
145const char *Game_GetTranslationFilename();
146int Game_ChangeTranslation(
const char *newFilename);
147const char *Game_GetSpeechVoxFilename();
148bool Game_ChangeSpeechVox(
const char *newFilename);
152void set_debug_mode(
bool on);
154void set_game_speed(
int new_fps);
156float get_game_speed();
157void setup_for_dialog();
158void restore_after_dialog();
159Shared::String get_save_game_directory();
160Shared::String get_save_game_suffix();
161void set_save_game_suffix(
const Shared::String &suffix);
163Shared::String get_save_game_path(
int slotNum);
166void restore_game_dialog();
168bool do_restore_game_dialog();
171void save_game_dialog();
173bool do_save_game_dialog();
174void free_do_once_tokens();
177void save_game(
int slotn,
const char *descript);
178bool read_savedgame_description(
const Shared::String &savedgame, Shared::String &description);
182bool try_restore_save(
int slot);
183bool try_restore_save(
const Shared::String &path,
int slot);
184void serialize_bitmap(
const Shared::Bitmap *thispic, Shared::Stream *out);
186void convert_guid_from_text_to_binary(
const char *guidText,
unsigned char *buffer);
187Shared::Bitmap *read_serialized_bitmap(Shared::Stream *in);
188void skip_serialized_bitmap(Shared::Stream *in);
189long write_screen_shot_for_vista(Shared::Stream *out, Shared::Bitmap *screenshot);
191bool is_in_cutscene();
192CutsceneSkipStyle get_cutscene_skipstyle();
193void start_skipping_cutscene();
194bool check_skip_cutscene_keypress(
int kgn);
195bool check_skip_cutscene_mclick(
int mbut);
196void initialize_skippable_cutscene();
197void stop_fast_forwarding();
199int __GetLocationType(
int xxx,
int yyy,
int allowHotspot0);
202void display_switch_out();
204void display_switch_in();
206void display_switch_out_suspend();
208void display_switch_in_resume();
210void replace_tokens(
const char *srcmes,
char *destm,
size_t maxlen);
211const char *get_global_message(
int msnum);
212void get_message_text(
int msnum,
char *buffer,
char giveErr = 1);
216void game_sprite_updated(
int sprnum,
bool deleted =
false);
218void precache_view(
int view,
int first_loop = 0,
int last_loop = INT32_MAX,
bool with_sounds =
false);
220extern void set_loop_counter(
unsigned int new_counter);