diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/tinsel/dialogs.cpp | 219 |
1 files changed, 112 insertions, 107 deletions
diff --git a/engines/tinsel/dialogs.cpp b/engines/tinsel/dialogs.cpp index 5374bfedfb..2c492529c9 100644 --- a/engines/tinsel/dialogs.cpp +++ b/engines/tinsel/dialogs.cpp @@ -1013,6 +1013,7 @@ static void AddBoxes(bool posnSlide); static void ConfActionSpecial(int i); +static bool RePosition(); /*-------------------------------------------------------------------------*/ /*** Magic numbers ***/ @@ -1046,7 +1047,7 @@ static void ConfActionSpecial(int i); /*-------------------------------------------------------------------------*/ -bool LanguageChange() { +static bool LanguageChange() { LANGUAGE nLang = _vm->_config->_language; if (_vm->getFeatures() & GF_USE_3FLAGS) { @@ -1194,7 +1195,7 @@ static void FirstEntry(int first) { cd.extraBase = first; } -void HopAction() { +static void HopAction() { PHOPENTRY pEntry = pEntries + FROM_LE_32(pChosenScene->entryIndex) + cd.selBox + cd.extraBase; uint32 hScene = FROM_LE_32(pChosenScene->hScene); @@ -1255,7 +1256,7 @@ static void DumpObjArray() { * Convert item ID number to pointer to item's compiled data * i.e. Image data and Glitter code. */ -INV_OBJECT *GetInvObject(int id) { +static INV_OBJECT *GetInvObject(int id) { INV_OBJECT *pObject = invObjects; for (int i = 0; i < numObjects; i++, pObject++) { @@ -1269,7 +1270,7 @@ INV_OBJECT *GetInvObject(int id) { /** * Convert item ID number to index. */ -int GetObjectIndex(int id) { +static int GetObjectIndex(int id) { INV_OBJECT *pObject = invObjects; for (int i = 0; i < numObjects; i++, pObject++) { @@ -1284,7 +1285,7 @@ int GetObjectIndex(int id) { * Returns position of an item in one of the inventories. * The actual position is not important for the uses that this is put to. */ -int InventoryPos(int num) { +extern int InventoryPos(int num) { int i; for (i = 0; i < InvD[INV_1].NoofItems; i++) // First inventory @@ -1301,7 +1302,7 @@ int InventoryPos(int num) { return INV_NOICON; // Not held, not in either inventory } -bool IsInInventory(int object, int invnum) { +extern bool IsInInventory(int object, int invnum) { assert(invnum == INV_1 || invnum == INV_2); for (int i = 0; i < InvD[invnum].NoofItems; i++) // First inventory @@ -1314,7 +1315,7 @@ bool IsInInventory(int object, int invnum) { /** * Returns which item is held (INV_NOICON (-1) if none) */ -int WhichItemHeld() { +extern int WhichItemHeld() { return HeldItem; } @@ -1322,7 +1323,7 @@ int WhichItemHeld() { * Called from the cursor module when it re-initialises (at the start of * a new scene). For if we are holding something at scene-change time. */ -void InventoryIconCursor(bool bNewItem) { +extern void InventoryIconCursor(bool bNewItem) { if (HeldItem != INV_NOICON) { if (TinselV2) { @@ -1341,11 +1342,11 @@ void InventoryIconCursor(bool bNewItem) { /** * Returns true if the inventory is active. */ -bool InventoryActive() { +extern bool InventoryActive() { return (InventoryState == ACTIVE_INV); } -int WhichInventoryOpen() { +extern int WhichInventoryOpen() { if (InventoryState != ACTIVE_INV) return 0; else @@ -1410,7 +1411,7 @@ static void ObjectProcess(CORO_PARAM, const void *param) { /** * Run inventory item's Glitter code */ -void InvTinselEvent(INV_OBJECT *pinvo, TINSEL_EVENT event, PLR_EVENT be, int index) { +static void InvTinselEvent(INV_OBJECT *pinvo, TINSEL_EVENT event, PLR_EVENT be, int index) { OP_INIT to = { pinvo, event, be, 0 }; if (InventoryHidden || (TinselV2 && !pinvo->hScript)) @@ -1420,7 +1421,7 @@ void InvTinselEvent(INV_OBJECT *pinvo, TINSEL_EVENT event, PLR_EVENT be, int ind g_scheduler->createProcess(PID_TCODE, ObjectProcess, &to, sizeof(to)); } -void ObjectEvent(CORO_PARAM, int objId, TINSEL_EVENT event, bool bWait, int myEscape, bool *result) { +extern void ObjectEvent(CORO_PARAM, int objId, TINSEL_EVENT event, bool bWait, int myEscape, bool *result) { // COROUTINE CORO_BEGIN_CONTEXT; PROCESS *pProc; @@ -1457,7 +1458,7 @@ void ObjectEvent(CORO_PARAM, int objId, TINSEL_EVENT event, bool bWait, int myEs * Set first load/save file entry displayed. * Point Box[] text pointers to appropriate file descriptions. */ -void FirstFile(int first) { +static void FirstFile(int first) { int i, j; i = getList(); @@ -1488,7 +1489,7 @@ void FirstFile(int first) { * Save the game using filename from selected slot & current description. */ -void InvSaveGame() { +static void InvSaveGame() { if (cd.selBox != NOBOX) { #ifndef JAPAN sedit[strlen(sedit)-1] = 0; // Don't include the cursor! @@ -1500,7 +1501,7 @@ void InvSaveGame() { /** * Load the selected saved game. */ -void InvLoadGame() { +static void InvLoadGame() { int rGame; if (cd.selBox != NOBOX && (cd.selBox+cd.extraBase < cd.numSaved)) { @@ -1527,7 +1528,7 @@ void InvLoadGame() { * Returns true if the string was altered. */ #ifndef JAPAN -bool UpdateString(const Common::KeyState &kbd) { +static bool UpdateString(const Common::KeyState &kbd) { int cpos; if (!cd.editableRgroup) @@ -1562,7 +1563,7 @@ bool UpdateString(const Common::KeyState &kbd) { /** * Keystrokes get sent here when load/save screen is up. */ -bool InvKeyIn(const Common::KeyState &kbd) { +static bool InvKeyIn(const Common::KeyState &kbd) { if (kbd.keycode == Common::KEYCODE_PAGEUP || kbd.keycode == Common::KEYCODE_PAGEDOWN || kbd.keycode == Common::KEYCODE_HOME || @@ -1611,7 +1612,7 @@ bool InvKeyIn(const Common::KeyState &kbd) { * Highlights selected box. * If it's editable (save game), copy existing description and add a cursor. */ -void Select(int i, bool force) { +static void Select(int i, bool force) { #ifdef JAPAN time_t secs_now; struct tm *time_now; @@ -1709,7 +1710,7 @@ void Select(int i, bool force) { /** * Stop holding an item. */ -void DropItem(int item) { +extern void DropItem(int item) { if (HeldItem == item) { HeldItem = INV_NOICON; // Item not held DelAuxCursor(); // no longer aux cursor @@ -1722,7 +1723,7 @@ void DropItem(int item) { /** * Clears the specified inventory */ -void ClearInventory(int invno) { +extern void ClearInventory(int invno) { assert(invno == INV_1 || invno == INV_2); InvD[invno].NoofItems = 0; @@ -1733,7 +1734,7 @@ void ClearInventory(int invno) { * Stick the item into an inventory list (contents[]), and hold the * item if requested. */ -void AddToInventory(int invno, int icon, bool hold) { +extern void AddToInventory(int invno, int icon, bool hold) { int i; bool bOpen; INV_OBJECT *invObj; @@ -1835,7 +1836,7 @@ void AddToInventory(int invno, int icon, bool hold) { * Take the item from the inventory list (contents[]). * Return FALSE if item wasn't present, true if it was. */ -bool RemFromInventory(int invno, int icon) { +extern bool RemFromInventory(int invno, int icon) { int i; assert(invno == INV_1 || invno == INV_2 || invno == INV_CONV); // Trying to delete from illegal inventory @@ -1867,7 +1868,7 @@ bool RemFromInventory(int invno, int icon) { /** * If the item is not already held, hold it. */ -void HoldItem(int item, bool bKeepFilm) { +extern void HoldItem(int item, bool bKeepFilm) { INV_OBJECT *invObj; if (HeldItem != item) { @@ -1941,7 +1942,7 @@ enum { I_NOTIN, I_HEADER, I_BODY, * changed and I got fed up of faffing about. It's probably easier just * to rework all this. */ -int InvArea(int x, int y) { +static int InvArea(int x, int y) { if (TinselV2) { int RightX = MultiRightmost(RectObject) - NM_BG_SIZ_X - NM_BG_POS_X - NM_RS_R_INSET; int BottomY = MultiLowest(RectObject) - NM_BG_SIZ_Y - NM_BG_POS_Y - NM_RS_B_INSET; @@ -2075,7 +2076,7 @@ int InvArea(int x, int y) { * Returns the id of the icon displayed under the given position. * Also return co-ordinates of items tag display position, if requested. */ -int InvItem(int *x, int *y, bool update) { +extern int InvItem(int *x, int *y, bool update) { int itop, ileft; int row, col; int item; @@ -2105,7 +2106,7 @@ int InvItem(int *x, int *y, bool update) { return INV_NOICON; } -int InvItem(Common::Point &coOrds, bool update) { +static int InvItem(Common::Point &coOrds, bool update) { int x = coOrds.x; int y = coOrds.y; return InvItem(&x, &y, update); @@ -2243,7 +2244,7 @@ static int WhichMenuBox(int curX, int curY, bool bSlides) { /** * InvBoxes */ -void InvBoxes(bool InBody, int curX, int curY) { +static void InvBoxes(bool InBody, int curX, int curY) { static int rotateIndex = -1; int index; // Box pointed to on this call const FILM *pfilm; @@ -2283,8 +2284,7 @@ void InvBoxes(bool InBody, int curX, int curY) { InvD[ino].inventoryX + cd.box[cd.pointBox].xpos, InvD[ino].inventoryY + cd.box[cd.pointBox].ypos); MultiSetZPosition(iconArray[HL1], Z_INV_ICONS+1); - } - else if (cd.box[cd.pointBox].boxType == AAGBUT || + } else if (cd.box[cd.pointBox].boxType == AAGBUT || cd.box[cd.pointBox].boxType == ARSGBUT || cd.box[cd.pointBox].boxType == TOGGLE || cd.box[cd.pointBox].boxType == TOGGLE1 || @@ -2296,8 +2296,7 @@ void InvBoxes(bool InBody, int curX, int curY) { InvD[ino].inventoryX + cd.box[cd.pointBox].xpos, InvD[ino].inventoryY + cd.box[cd.pointBox].ypos); MultiSetZPosition(iconArray[HL1], Z_INV_ICONS+1); - } - else if (cd.box[cd.pointBox].boxType == ROTATE) { + } else if (cd.box[cd.pointBox].boxType == ROTATE) { if (bNoLanguage) return; @@ -2446,7 +2445,7 @@ static void ButtonToggle(CORO_PARAM, CONFBOX *box) { /** * Monitors for POINTED event for inventory icons. */ -void InvLabels(bool InBody, int aniX, int aniY) { +static void InvLabels(bool InBody, int aniX, int aniY) { int index; // Icon pointed to on this call INV_OBJECT *invObj; @@ -2486,7 +2485,7 @@ void InvLabels(bool InBody, int aniX, int aniY) { * It seems to set up slideStuff[], an array of possible first-displayed * icons set against the matching y-positions of the slider. */ -void AdjustTop() { +static void AdjustTop() { int tMissing, bMissing, nMissing; int nsliderYpos; int rowsWanted; @@ -2548,7 +2547,7 @@ void AdjustTop() { /** * Insert an inventory icon object onto the display list. */ -OBJECT *AddInvObject(int num, const FREEL **pfreel, const FILM **pfilm) { +static OBJECT *AddInvObject(int num, const FREEL **pfreel, const FILM **pfilm) { INV_OBJECT *invObj; // Icon data const MULTI_INIT *pmi; // Its INIT structure - from the reel IMAGE *pim; // ... you get the picture @@ -2572,7 +2571,7 @@ OBJECT *AddInvObject(int num, const FREEL **pfreel, const FILM **pfilm) { /** * Create display objects for the displayed icons in an inventory window. */ -void FillInInventory() { +static void FillInInventory() { int Index; // Index into contents[] int n = 0; // index into iconArray[] int xpos, ypos; @@ -2714,7 +2713,7 @@ static OBJECT *AddObject(const FREEL *pfreel, int num) { * Display the scroll bar slider. */ -void AddSlider(OBJECT **slide, const FILM *pfilm) { +static void AddSlider(OBJECT **slide, const FILM *pfilm) { SlideObject = *slide = AddObject(&pfilm->reels[IX_SLIDE], -1); MultiSetAniXY(*slide, MultiRightmost(RectObject) + (TinselV2 ? NM_SLX : -M_SXOFF + 2) - 1, InvD[ino].inventoryY + sliderYpos); @@ -2724,7 +2723,7 @@ void AddSlider(OBJECT **slide, const FILM *pfilm) { /** * Display a box with some text in it. */ -void AddBox(int *pi, int i) { +static void AddBox(int *pi, const int i) { int x = InvD[ino].inventoryX + cd.box[i].xpos; int y = InvD[ino].inventoryY + cd.box[i].ypos; int *pival = cd.box[i].ival; @@ -2827,7 +2826,7 @@ void AddBox(int *pi, int i) { case FLIP: pFilm = (const FILM *)LockMem(hWinParts); - if (*(cd.box[i].ival)) + if (*pival) iconArray[*pi] = AddObject(&pFilm->reels[cd.box[i].bi], -1); else iconArray[*pi] = AddObject(&pFilm->reels[cd.box[i].bi+1], -1); @@ -2854,7 +2853,7 @@ void AddBox(int *pi, int i) { case TOGGLE2: pFilm = (const FILM *)LockMem(hWinParts); - cd.box[i].bi = *(cd.box[i].ival) ? IX_TICK1 : IX_CROSS1; + cd.box[i].bi = *pival ? IX_TICK1 : IX_CROSS1; iconArray[*pi] = AddObject(&pFilm->reels[cd.box[i].bi + NORMGRAPH], -1); MultiSetAniXY(iconArray[*pi], x, y); MultiSetZPosition(iconArray[*pi], Z_INV_BRECT+1); @@ -3010,7 +3009,7 @@ static void AddBoxes(bool bPosnSlide) { /** * Display the scroll bar slider. */ -void AddEWSlider(OBJECT **slide, const FILM *pfilm) { +static void AddEWSlider(OBJECT **slide, const FILM *pfilm) { SlideObject = *slide = AddObject(&pfilm->reels[IX_SLIDE], -1); MultiSetAniXY(*slide, InvD[ino].inventoryX + 24 + 127, sliderYpos); MultiSetZPosition(*slide, Z_INV_MFRAME); @@ -3019,7 +3018,7 @@ void AddEWSlider(OBJECT **slide, const FILM *pfilm) { /** * AddExtraWindow */ -int AddExtraWindow(int x, int y, OBJECT **retObj) { +static int AddExtraWindow(int x, int y, OBJECT **retObj) { int n = 0; const FILM *pfilm; @@ -3098,7 +3097,7 @@ enum InventoryType { EMPTY, FULL, CONF }; * Construct an inventory window - either a standard one, with * background, slider and icons, or a re-sizing window. */ -void ConstructInventory(InventoryType filling) { +static void ConstructInventory(InventoryType filling) { int eH, eV; // Extra width and height int n = 0; // Index into object array int zpos; // Z-position of frame @@ -3107,7 +3106,6 @@ void ConstructInventory(InventoryType filling) { OBJECT **retObj; const FILM *pfilm; - extern bool RePosition(); // Forward reference // Select the object array to use if (filling == FULL || filling == CONF) { retObj = objArray; // Standard window @@ -3318,8 +3316,7 @@ void ConstructInventory(InventoryType filling) { } FillInInventory(); - } - else if (filling == CONF) { + } else if (filling == CONF) { if (!TinselV2) { rect = &retObj[n++]; title = &retObj[n++]; @@ -3349,7 +3346,7 @@ void ConstructInventory(InventoryType filling) { * position of the Translucent object is within limits. If it isn't, * adjusts the x/y position of the current inventory and returns true. */ -bool RePosition() { +static bool RePosition() { int p; bool bMoveitMoveit = false; @@ -3393,7 +3390,7 @@ bool RePosition() { * Get the cursor's reel, poke in the background palette, * and customise the cursor. */ -void AlterCursor(int num) { +static void AlterCursor(int num) { const FREEL *pfreel; IMAGE *pim; @@ -3411,7 +3408,7 @@ enum InvCursorFN {IC_AREA, IC_DROP}; /** * InvCursor */ -void InvCursor(InvCursorFN fn, int CurX, int CurY) { +static void InvCursor(InvCursorFN fn, int CurX, int CurY) { static enum { IC_NORMAL, IC_DR, IC_UR, IC_TB, IC_LR, IC_INV, IC_UP, IC_DN } ICursor = IC_NORMAL; // FIXME: local static var @@ -3520,7 +3517,7 @@ void InvCursor(InvCursorFN fn, int CurX, int CurY) { /**************************************************************************/ -void ConvAction(int index) { +extern void ConvAction(int index) { assert(ino == INV_CONV); // not conv. window! PMOVER pMover = TinselV2 ? GetMover(GetLeadId()) : NULL; @@ -3570,7 +3567,7 @@ void ConvAction(int index) { * * Note: ano may (will probably) be set when it's a polygon. */ -void SetConvDetails(CONV_PARAM fn, HPOLYGON hPoly, int ano) { +extern void SetConvDetails(CONV_PARAM fn, HPOLYGON hPoly, int ano) { thisConvFn = fn; thisConvPoly = hPoly; thisConvActor = ano; @@ -3591,7 +3588,7 @@ void SetConvDetails(CONV_PARAM fn, HPOLYGON hPoly, int ano) { /** * Add an icon to the permanent conversation list. */ -void PermaConvIcon(int icon, bool bEnd) { +extern void PermaConvIcon(int icon, bool bEnd) { int i; // See if it's already there @@ -3622,28 +3619,28 @@ void PermaConvIcon(int icon, bool bEnd) { /*-------------------------------------------------------------------------*/ -void convPos(int fn) { +extern void convPos(int fn) { if (fn == CONV_DEF) InvD[INV_CONV].inventoryY = 8; else if (fn == CONV_BOTTOM) InvD[INV_CONV].inventoryY = 150; } -void ConvPoly(HPOLYGON hPoly) { +extern void ConvPoly(HPOLYGON hPoly) { thisConvPoly = hPoly; } -int GetIcon() { +extern int GetIcon() { return thisIcon; } -void CloseDownConv() { +extern void CloseDownConv() { if (InventoryState == ACTIVE_INV && ino == INV_CONV) { KillInventory(); } } -void HideConversation(bool bHide) { +extern void HideConversation(bool bHide) { int aniX, aniY; int i; @@ -3797,7 +3794,7 @@ void HideConversation(bool bHide) { } } -bool ConvIsHidden() { +extern bool ConvIsHidden() { return InventoryHidden; } @@ -3809,7 +3806,7 @@ bool ConvIsHidden() { /** * Start up an inventory window. */ -void PopUpInventory(int invno) { +extern void PopUpInventory(int invno) { assert(invno == INV_1 || invno == INV_2 || invno == INV_CONV || invno == INV_CONF || invno == INV_MENU); // Trying to open illegal inventory @@ -3853,7 +3850,7 @@ void PopUpInventory(int invno) { } } -void SetMenuGlobals(CONFINIT *ci) { +static void SetMenuGlobals(CONFINIT *ci) { InvD[INV_CONF].MinHicons = InvD[INV_CONF].MaxHicons = InvD[INV_CONF].NoofHicons = ci->h; InvD[INV_CONF].MaxVicons = InvD[INV_CONF].MinVicons = InvD[INV_CONF].NoofVicons = ci->v; InvD[INV_CONF].inventoryX = ci->x; @@ -3874,7 +3871,7 @@ void SetMenuGlobals(CONFINIT *ci) { /** * PopupConf */ -void OpenMenu(CONFTYPE menuType) { +extern void OpenMenu(CONFTYPE menuType) { int curX, curY; // In the DW 1 demo, don't allow any menu to be opened @@ -4049,8 +4046,7 @@ void OpenMenu(CONFTYPE menuType) { /** * Close down an inventory window. */ - -void KillInventory() { +extern void KillInventory() { if (objArray[0] != NULL) { DumpObjArray(); DumpDobjArray(); @@ -4088,7 +4084,7 @@ void KillInventory() { g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false); // Hide VK after save dialog closes } -void CloseInventory() { +extern void CloseInventory() { // If not active, ignore this if (InventoryState != ACTIVE_INV) return; @@ -4115,7 +4111,7 @@ void CloseInventory() { /** * Redraws the icons if appropriate. Also handle button press/toggle effects */ -void InventoryProcess(CORO_PARAM, const void *) { +extern void InventoryProcess(CORO_PARAM, const void *) { // COROUTINE CORO_BEGIN_CONTEXT; CORO_END_CONTEXT(_ctx); @@ -4262,7 +4258,7 @@ void InventoryProcess(CORO_PARAM, const void *) { * Appears to find the nearest entry in slideStuff[] to the supplied * y-coordinate. */ -int NearestSlideY(int fity) { +static int NearestSlideY(int fity) { int nearDist = 1000; int thisDist; int nearI = 0; // Index of nearest fit @@ -4282,7 +4278,7 @@ int NearestSlideY(int fity) { * Gets called at the start and end of a drag on the slider, and upon * y-movement during such a drag. */ -void SlideSlider(int y, SSFN fn) { +static void SlideSlider(int y, SSFN fn) { static int newY = 0, lasti = 0; // FIXME: local static var int gotoY, ati; @@ -4336,7 +4332,7 @@ void SlideSlider(int y, SSFN fn) { * Gets called at the start and end of a drag on the slider, and upon * y-movement during such a drag. */ -void SlideCSlider(int y, SSFN fn) { +static void SlideCSlider(int y, SSFN fn) { static int newY = 0; // FIXME: local static var int gotoY; int fc; @@ -4467,11 +4463,11 @@ static void SlideMSlider(int x, SSFN fn) { if (cd.box[index].boxFunc == MUSICVOL) SetMidiVolume(*cd.box[index].ival); #ifdef MAC_OPTIONS - if (cd.box[index].boxFunc == MASTERVOL) - SetSystemVolume(*cd.box[index].ival); + if (cd.box[index].boxFunc == MASTERVOL) + SetSystemVolume(*cd.box[index].ival); - if (cd.box[index].boxFunc == SAMPVOL) - SetSampleVolume(*cd.box[index].ival); + if (cd.box[index].boxFunc == SAMPVOL) + SetSampleVolume(*cd.box[index].ival); #endif break; @@ -4486,7 +4482,7 @@ static void SlideMSlider(int x, SSFN fn) { /** * Called from ChangeingSize() during re-sizing. */ -void GettingTaller() { +static void GettingTaller() { if (SuppV) { Ychange += SuppV; if (Ycompensate == 'T') @@ -4510,7 +4506,7 @@ void GettingTaller() { /** * Called from ChangeingSize() during re-sizing. */ -void GettingShorter() { +static void GettingShorter() { int StartNvi = InvD[ino].NoofVicons; int StartUv = SuppV; @@ -4535,7 +4531,7 @@ void GettingShorter() { /** * Called from ChangeingSize() during re-sizing. */ -void GettingWider() { +static void GettingWider() { int StartNhi = InvD[ino].NoofHicons; int StartUh = SuppH; @@ -4558,7 +4554,7 @@ void GettingWider() { /** * Called from ChangeingSize() during re-sizing. */ -void GettingNarrower() { +static void GettingNarrower() { int StartNhi = InvD[ino].NoofHicons; int StartUh = SuppH; @@ -4584,7 +4580,7 @@ void GettingNarrower() { /** * Called from Xmovement()/Ymovement() during re-sizing. */ -void ChangeingSize() { +static void ChangeingSize() { /* Make it taller or shorter if necessary. */ if (Ychange > 0) GettingTaller(); @@ -4603,7 +4599,7 @@ void ChangeingSize() { /** * Called from cursor module when cursor moves while inventory is up. */ -void Xmovement(int x) { +extern void Xmovement(int x) { int aniX, aniY; int i; @@ -4651,7 +4647,7 @@ void Xmovement(int x) { /** * Called from cursor module when cursor moves while inventory is up. */ -void Ymovement(int y) { +extern void Ymovement(int y) { int aniX, aniY; int i; @@ -4703,7 +4699,7 @@ void Ymovement(int y) { /** * Called when a drag is commencing. */ -void InvDragStart() { +static void InvDragStart() { int curX, curY; // cursor's animation position GetCursorXY(&curX, &curY, false); @@ -4819,7 +4815,7 @@ void InvDragStart() { /** * Called when a drag is over. */ -void InvDragEnd() { +static void InvDragEnd() { int curX, curY; // cursor's animation position GetCursorXY(&curX, &curY, false); @@ -4866,8 +4862,7 @@ static void MenuPageDown() { Select(cd.selBox, true); } } else if (cd.box == hopperBox1) { - if (cd.extraBase < numScenes - NUM_RGROUP_BOXES) - { + if (cd.extraBase < numScenes - NUM_RGROUP_BOXES) { FirstScene(cd.extraBase + (NUM_RGROUP_BOXES - 1)); AddBoxes(true); if (cd.selBox) @@ -4875,8 +4870,7 @@ static void MenuPageDown() { Select(cd.selBox, true); } } else if (cd.box == hopperBox2) { - if (cd.extraBase < numEntries - NUM_RGROUP_BOXES) - { + if (cd.extraBase < numEntries - NUM_RGROUP_BOXES) { FirstEntry(cd.extraBase+(NUM_RGROUP_BOXES - 1)); AddBoxes(true); if (cd.selBox) @@ -4910,7 +4904,7 @@ static void MenuPageUp() { /** * MenuAction */ -void MenuAction(int i, bool dbl) { +static void MenuAction(int i, bool dbl) { if (i >= 0) { switch (cd.box[i].boxType) { @@ -5047,7 +5041,7 @@ static void ConfActionSpecial(int i) { } // SLIDE_UP and SLIDE_DOWN on d click?????? -void InvPutDown(int index) { +static void InvPutDown(int index) { int aniX, aniY; // index is the drop position int hiIndex; // Current position of held item (if in) @@ -5097,7 +5091,7 @@ void InvPutDown(int index) { InvCursor(IC_DROP, aniX, aniY); } -void InvPdProcess(CORO_PARAM, const void *param) { +static void InvPdProcess(CORO_PARAM, const void *param) { // COROUTINE CORO_BEGIN_CONTEXT; CORO_END_CONTEXT(_ctx); @@ -5116,7 +5110,7 @@ void InvPdProcess(CORO_PARAM, const void *param) { CORO_END_CODE; } -void InvPickup(int index) { +static void InvPickup(int index) { INV_OBJECT *invObj; // Do nothing if not clicked on anything @@ -5236,7 +5230,7 @@ static void InvWalkTo(const Common::Point &coOrds) { } } -void InvAction() { +static void InvAction() { int index; INV_OBJECT *invObj; int aniX, aniY; @@ -5318,7 +5312,6 @@ void InvAction() { } - static void InvLook(const Common::Point &coOrds) { int index; INV_OBJECT *invObj; @@ -5349,7 +5342,7 @@ static void InvLook(const Common::Point &coOrds) { /********************* Incoming events ************************************/ /**************************************************************************/ -void EventToInventory(PLR_EVENT pEvent, const Common::Point &coOrds) { +extern void EventToInventory(PLR_EVENT pEvent, const Common::Point &coOrds) { if (InventoryHidden) return; @@ -5486,7 +5479,7 @@ void EventToInventory(PLR_EVENT pEvent, const Common::Point &coOrds) { * Called from Glitter function invdepict() * Changes (permanently) the animation film for that object. */ -void SetObjectFilm(int object, SCNHANDLE hFilm) { +extern void SetObjectFilm(int object, SCNHANDLE hFilm) { INV_OBJECT *invObj; invObj = GetInvObject(object); @@ -5499,7 +5492,7 @@ void SetObjectFilm(int object, SCNHANDLE hFilm) { /** * (Un)serialize the inventory data for save/restore game. */ -void syncInvInfo(Common::Serializer &s) { +extern void syncInvInfo(Common::Serializer &s) { for (int i = 0; i < NUM_INV; i++) { s.syncAsSint32LE(InvD[i].MinHicons); s.syncAsSint32LE(InvD[i].MinVicons); @@ -5541,7 +5534,7 @@ void syncInvInfo(Common::Serializer &s) { * its id, animation film and Glitter script. */ // Note: the SCHANDLE type here has been changed to a void* -void RegisterIcons(void *cptr, int num) { +extern void RegisterIcons(void *cptr, int num) { numObjects = num; invObjects = (INV_OBJECT *) cptr; @@ -5588,7 +5581,7 @@ void RegisterIcons(void *cptr, int num) { * Called from Glitter function 'dec_invw()' - Declare the bits that the * inventory windows are constructed from, and special cursors. */ -void setInvWinParts(SCNHANDLE hf) { +extern void setInvWinParts(SCNHANDLE hf) { #ifdef DEBUG const FILM *pfilm; #endif @@ -5605,7 +5598,7 @@ void setInvWinParts(SCNHANDLE hf) { * Called from Glitter function 'dec_flags()' - Declare the language * flag films */ -void setFlagFilms(SCNHANDLE hf) { +extern void setFlagFilms(SCNHANDLE hf) { #ifdef DEBUG const FILM *pfilm; #endif @@ -5618,7 +5611,10 @@ void setFlagFilms(SCNHANDLE hf) { #endif } -void setConfigStrings(SCNHANDLE *tp) { +/** + * Called from Glitter function 'DecCStrings()' + */ +extern void setConfigStrings(SCNHANDLE *tp) { memcpy(configStrings, tp, sizeof(configStrings)); } @@ -5626,7 +5622,7 @@ void setConfigStrings(SCNHANDLE *tp) { * Called from Glitter functions: dec_convw()/dec_inv1()/dec_inv2() * - Declare the heading text and dimensions etc. */ -void idec_inv(int num, SCNHANDLE text, int MaxContents, +extern void idec_inv(int num, SCNHANDLE text, int MaxContents, int MinWidth, int MinHeight, int StartWidth, int StartHeight, int MaxWidth, int MaxHeight, @@ -5679,7 +5675,7 @@ void idec_inv(int num, SCNHANDLE text, int MaxContents, * Called from Glitter functions: dec_convw()/dec_inv1()/dec_inv2() * - Declare the heading text and dimensions etc. */ -void idec_convw(SCNHANDLE text, int MaxContents, +extern void idec_convw(SCNHANDLE text, int MaxContents, int MinWidth, int MinHeight, int StartWidth, int StartHeight, int MaxWidth, int MaxHeight) { @@ -5692,7 +5688,7 @@ void idec_convw(SCNHANDLE text, int MaxContents, * Called from Glitter functions: dec_convw()/dec_inv1()/dec_inv2() * - Declare the heading text and dimensions etc. */ -void idec_inv1(SCNHANDLE text, int MaxContents, +extern void idec_inv1(SCNHANDLE text, int MaxContents, int MinWidth, int MinHeight, int StartWidth, int StartHeight, int MaxWidth, int MaxHeight) { @@ -5705,7 +5701,7 @@ void idec_inv1(SCNHANDLE text, int MaxContents, * Called from Glitter functions: dec_convw()/dec_inv1()/dec_inv2() * - Declare the heading text and dimensions etc. */ -void idec_inv2(SCNHANDLE text, int MaxContents, +extern void idec_inv2(SCNHANDLE text, int MaxContents, int MinWidth, int MinHeight, int StartWidth, int StartHeight, int MaxWidth, int MaxHeight) { @@ -5714,13 +5710,19 @@ void idec_inv2(SCNHANDLE text, int MaxContents, 100, 100, true); } -int InvGetLimit(int invno) { +/** + * Called from Glitter function 'GetInvLimit()' + */ +extern int InvGetLimit(int invno) { assert(invno == INV_1 || invno == INV_2); // only INV_1 and INV_2 supported return InvD[invno].MaxInvObj; } -void InvSetLimit(int invno, int MaxContents) { +/** + * Called from Glitter function 'SetInvLimit()' + */ +extern void InvSetLimit(int invno, int MaxContents) { assert(invno == INV_1 || invno == INV_2); // only INV_1 and INV_2 supported assert(MaxContents >= InvD[invno].NoofItems); // can't reduce maximum contents below current contents @@ -5730,7 +5732,10 @@ void InvSetLimit(int invno, int MaxContents) { InvD[invno].MaxInvObj = MaxContents; } -void InvSetSize(int invno, int MinWidth, int MinHeight, +/** + * Called from Glitter function 'SetInvSize()' + */ +extern void InvSetSize(int invno, int MinWidth, int MinHeight, int StartWidth, int StartHeight, int MaxWidth, int MaxHeight) { assert(invno == INV_1 || invno == INV_2); // only INV_1 and INV_2 supported @@ -5757,15 +5762,15 @@ void InvSetSize(int invno, int MinWidth, int MinHeight, /**************************************************************************/ -bool IsTopWindow() { +extern bool IsTopWindow() { return (InventoryState == BOGUS_INV); } -bool MenuActive() { +extern bool MenuActive() { return (InventoryState == ACTIVE_INV && ino == INV_CONF); } -bool IsConvWindow() { +extern bool IsConvWindow() { return (InventoryState == ACTIVE_INV && ino == INV_CONV); } |