// Initializes gui and registers them in the script system HError InitAndRegisterGUI() { scrGui = (ScriptGUI*)malloc(sizeof(ScriptGUI) * game.numgui); for (int i = 0; i < game.numgui; ++i) { scrGui[i].id = -1; } guiScriptObjNames.resize(game.numgui); for (int i = 0; i < game.numgui; ++i) { // link controls to their parent guis HError err = guis[i].RebuildArray(); if (!err) return err; // export all the GUI's controls export_gui_controls(i); // copy the script name to its own memory location // because ccAddExtSymbol only keeps a reference guiScriptObjNames[i] = guis[i].Name; scrGui[i].id = i; ccAddExternalDynamicObject(guiScriptObjNames[i], &scrGui[i], &ccDynamicGUI); ccRegisterManagedObject(&scrGui[i], &ccDynamicGUI); } return HError::None(); }
// Initializes characters and registers them in the script system void InitAndRegisterCharacters() { characterScriptObjNames.resize(game.numcharacters); for (int i = 0; i < game.numcharacters; ++i) { game.chars[i].walking = 0; game.chars[i].animating = 0; game.chars[i].pic_xoffs = 0; game.chars[i].pic_yoffs = 0; game.chars[i].blinkinterval = 140; game.chars[i].blinktimer = game.chars[i].blinkinterval; game.chars[i].index_id = i; game.chars[i].blocking_width = 0; game.chars[i].blocking_height = 0; game.chars[i].prevroom = -1; game.chars[i].loop = 0; game.chars[i].frame = 0; game.chars[i].walkwait = -1; ccRegisterManagedObject(&game.chars[i], &ccDynamicCharacter); // export the character's script object characterScriptObjNames[i] = game.chars[i].scrname; ccAddExternalDynamicObject(characterScriptObjNames[i], &game.chars[i], &ccDynamicCharacter); } }
// Initializes gui and registers them in the script system void InitAndRegisterGUI() { scrGui = (ScriptGUI*)malloc(sizeof(ScriptGUI) * game.numgui); for (int i = 0; i < game.numgui; ++i) { scrGui[i].id = -1; } guiScriptObjNames = (char**)malloc(sizeof(char*) * game.numgui); for (int i = 0; i < game.numgui; ++i) { guis[i].RebuildArray(); if ((guis[i].PopupStyle == kGUIPopupNone) || (guis[i].PopupStyle == kGUIPopupNoAutoRemove)) guis[i].SetVisibility(kGUIVisibility_On); else guis[i].SetVisibility(kGUIVisibility_Off); // export all the GUI's controls export_gui_controls(i); // copy the script name to its own memory location // because ccAddExtSymbol only keeps a reference guiScriptObjNames[i] = strdup(guis[i].Name); scrGui[i].id = i; ccAddExternalDynamicObject(guiScriptObjNames[i], &scrGui[i], &ccDynamicGUI); ccRegisterManagedObject(&scrGui[i], &ccDynamicGUI); } }
// Initializes inventory items and registers them in the script system void InitAndRegisterInvItems() { for (int i = 0; i < MAX_INV; ++i) { scrInv[i].id = i; scrInv[i].reserved = 0; ccRegisterManagedObject(&scrInv[i], &ccDynamicInv); if (!game.invScriptNames[i].IsEmpty()) ccAddExternalDynamicObject(game.invScriptNames[i], &scrInv[i], &ccDynamicInv); } }
// Initializes dialog and registers them in the script system void InitAndRegisterDialogs() { for (int i = 0; i < game.numdialog; ++i) { scrDialog[i].id = i; scrDialog[i].reserved = 0; ccRegisterManagedObject(&scrDialog[i], &ccDynamicDialog); if (game.dialogScriptNames[i][0] != 0) ccAddExternalDynamicObject(game.dialogScriptNames[i], &scrDialog[i], &ccDynamicDialog); } }
// Initializes dialog and registers them in the script system void InitAndRegisterDialogs() { scrDialog = new ScriptDialog[game.numdialog]; for (int i = 0; i < game.numdialog; ++i) { scrDialog[i].id = i; scrDialog[i].reserved = 0; ccRegisterManagedObject(&scrDialog[i], &ccDynamicDialog); if (!game.dialogScriptNames[i].IsEmpty()) ccAddExternalDynamicObject(game.dialogScriptNames[i], &scrDialog[i], &ccDynamicDialog); } }
// Initializes audio channels and clips and registers them in the script system void InitAndRegisterAudioObjects() { for (int i = 0; i <= MAX_SOUND_CHANNELS; ++i) { scrAudioChannel[i].id = i; ccRegisterManagedObject(&scrAudioChannel[i], &ccDynamicAudio); } for (int i = 0; i < game.audioClipCount; ++i) { game.audioClips[i].id = i; ccRegisterManagedObject(&game.audioClips[i], &ccDynamicAudioClip); ccAddExternalDynamicObject(game.audioClips[i].scriptName, &game.audioClips[i], &ccDynamicAudioClip); } }