diff mm7_5.cpp @ 999:dcdfbb6eede9

Слияние
author Ritor1
date Tue, 14 May 2013 17:38:14 +0600
parents e4383e6dfbef 5876a9cafa3e
children 53109a1455fc
line wrap: on
line diff
--- a/mm7_5.cpp	Tue May 14 17:37:24 2013 +0600
+++ b/mm7_5.cpp	Tue May 14 17:38:14 2013 +0600
@@ -82,7 +82,7 @@
   unsigned int v33; // eax@277
   unsigned __int8 v34; // al@279
   unsigned __int8 v35; // al@280
-  //GUIWindow *pWindow3; // ecx@332
+  GUIWindow *pWindow3; // ecx@332
   int v37; // eax@341
   int v38; // eax@358
   SHORT v39; // ax@365
@@ -97,7 +97,7 @@
   char v48; // zf@405
   BLVFace *pBLVFace; // ecx@410
   ODMFace *pODMFace; // ecx@412
-  CastSpellInfo *pSpellInfo; // ecx@415
+  CastSpellInfo *v51; // ecx@415
   void *v52; // eax@424
   __int16 v53; // ax@431
   int v54; // eax@432
@@ -155,6 +155,12 @@
   Player *pPlayer5; // ST78_4@758
   unsigned int v107; // eax@758
   unsigned int v108; // eax@758
+  char *v109; // ST64_4@759
+  Player *v110; // ST78_4@759
+  int v111; // ST60_4@759
+  int v112; // ST5C_4@759
+  char *v113; // ST58_4@759
+  signed int v114; // eax@759
   unsigned int v115; // eax@764
   int v116; // eax@776
   POINT *pPoint3; // eax@777
@@ -1486,6 +1492,7 @@
                   pIcons_LOD->_4355F7();
                   continue;
                 }
+LABEL_319:
                 CharacterUI_ReleaseButtons();
                 sub_419379();
                 pIcons_LOD->_4114F2();
@@ -1518,6 +1525,7 @@
               pIcons_LOD->_4355F7();
               continue;
             }
+            pWindow3 = pGUIWindow_Settings;
             if ( !pGUIWindow_Settings )//Draw Menu
             {
               dword_6BE138 = -1;
@@ -1563,7 +1571,7 @@
               stru_506E40._40E55E("gamma.pcx", 0);
               continue;
             }
-            pGUIWindow_Settings->Release();
+            pWindow3->Release();
             pGUIWindow_Settings = 0;
             pMouse->SetCursorBitmap("MICON1");
             GameUI_Footer_TimeLeft = 0;
@@ -1595,7 +1603,7 @@
                 pParty->field_709 = 0;
             }
           }
-          DrawHiredNPCs();
+          GameUI_DrawHiredNPCs();
           continue;
         case UIMSG_TransitionUI_Confirm:
           if ( pMessageQueue_50CBD0->uNumMessages )
@@ -1803,12 +1811,13 @@
             v47 = pActors[v46].uAIState == Dead;
             if ( !v47 )
               continue;
-            pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
-            LOBYTE(pSpellInfo->field_8) &= 0xBFu;
-            pSpellInfo->uPlayerID_2 = uMessageParam;
-            pSpellInfo->spell_target_pid = v44;
-            pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300);
-            pGUIWindow_Settings->Release();
+            v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
+            LOBYTE(v51->field_8) &= 0xBFu;
+            v51->uPlayerID_2 = uMessageParam;
+            v51->spell_target_pid = v44;
+            pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300);
+            pWindow3 = pGUIWindow_Settings;
+            pWindow3->Release();
             pGUIWindow_Settings = 0;
             pMouse->SetCursorBitmap("MICON1");
             GameUI_Footer_TimeLeft = 0;
@@ -1821,12 +1830,13 @@
             v47 = (pObjectList->pObjects[pSpriteObjects[v46].uObjectDescID].uFlags & 0x10) == 0;
             if ( !v47 )
               continue;
-            pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
-            LOBYTE(pSpellInfo->field_8) &= 0xBFu;
-            pSpellInfo->uPlayerID_2 = uMessageParam;
-            pSpellInfo->spell_target_pid = v44;
-            pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300);
-            pGUIWindow_Settings->Release();
+            v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
+            LOBYTE(v51->field_8) &= 0xBFu;
+            v51->uPlayerID_2 = uMessageParam;
+            v51->spell_target_pid = v44;
+            pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300);
+            pWindow3 = pGUIWindow_Settings;
+            pWindow3->Release();
             pGUIWindow_Settings = 0;
             pMouse->SetCursorBitmap("MICON1");
             GameUI_Footer_TimeLeft = 0;
@@ -1848,12 +1858,13 @@
               if ( !(pODMFace->uAttributes & 0x02000000) || !pODMFace->sCogTriggeredID )
                 continue;
               v44 = uNumSeconds;
-              pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
-              LOBYTE(pSpellInfo->field_8) &= 0xBFu;
-              pSpellInfo->uPlayerID_2 = uMessageParam;
-              pSpellInfo->spell_target_pid = v44;
-              pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300);
-              pGUIWindow_Settings->Release();
+              v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
+              *((char *)v51 + 8) &= 0xBFu;
+              v51->uPlayerID_2 = uMessageParam;
+              v51->spell_target_pid = v44;
+              pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300);
+              pWindow3 = pGUIWindow_Settings;
+              pWindow3->Release();
               pGUIWindow_Settings = 0;
               pMouse->SetCursorBitmap("MICON1");
               GameUI_Footer_TimeLeft = 0;
@@ -1868,21 +1879,23 @@
           }
           if ( v48 )
             continue;
-          pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
-          LOBYTE(pSpellInfo->field_8) &= 0xBFu;
-          pSpellInfo->uPlayerID_2 = uMessageParam;
-          pSpellInfo->spell_target_pid = v44;
-          pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300);
-          pGUIWindow_Settings->Release();
+          v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
+          LOBYTE(v51->field_8) &= 0xBFu;
+          v51->uPlayerID_2 = uMessageParam;
+          v51->spell_target_pid = v44;
+          pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300);
+          pWindow3 = pGUIWindow_Settings;
+          pWindow3->Release();
           pGUIWindow_Settings = 0;
           pMouse->SetCursorBitmap("MICON1");
           GameUI_Footer_TimeLeft = 0;
           unk_50C9A0 = 0;
           back_to_game();
           continue;
-        case UIMSG_CastSpell_Character_Big_Improvement://Preservation and blessing, treatment paralysis, hand hammers(individual upgrade),regeneration
-        case UIMSG_CastSpell_Character_Small_Improvement://Fate, cure
-        case UIMSG_HiredNPC_CastSpell:
+        case UIMSG_CastSpell_8F:
+			__debugbreak();
+        case UIMSG_CastSpell_SPIRIT_Preservation://and blessing, treatment paralysis, hand hammers(individual upgrade)
+        case UIMSG_CastSpell_SPIRIT_Fate:
           if ( pMessageQueue_50CBD0->uNumMessages )
             pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
           if ( unk_50C9A0 )
@@ -1894,21 +1907,21 @@
           {
             if ( pGUIWindow_Settings )
             {
-              pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
+              v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
               switch ( uMessage )
               {
-                case UIMSG_CastSpell_Character_Big_Improvement:
-                  LOBYTE(pSpellInfo->field_8) &= 0xFDu;
+                case UIMSG_CastSpell_SPIRIT_Preservation:
+                  LOBYTE(v51->field_8) &= 0xFDu;
                   break;
-                case UIMSG_CastSpell_Character_Small_Improvement:
-                  HIBYTE(pSpellInfo->field_8) &= 0xFEu;
+                case UIMSG_CastSpell_SPIRIT_Fate:
+                  HIBYTE(v51->field_8) &= 0xFEu;
                   break;
-                case UIMSG_HiredNPC_CastSpell:
-                  HIBYTE(pSpellInfo->field_8) &= 0xFDu;
+                case UIMSG_CastSpell_8F:
+                  HIBYTE(v51->field_8) &= 0xFDu;
                   break;
               }
-              pSpellInfo->uPlayerID_2 = uMessageParam;
-              pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300);
+              v51->uPlayerID_2 = uMessageParam;
+              pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300);
               pGUIWindow_Settings->Release();
               pGUIWindow_Settings = 0;
               pEventTimer->Resume();
@@ -1980,7 +1993,7 @@
               continue;
             v173 = pMapStats->pInfos[sub_410D99_get_map_index(HIWORD(pPlayer->pInstalledBeacons[uMessageParam].field_18))].pName;
             sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[474], v173);// "Recall to %s"
-            sub_41C0B8_set_status_string(pTmpBuf);
+            GameUI_SetFooterString(pTmpBuf);
             continue;
           }
           v59 = pMapStats->GetMapInfo(pCurrentMapName);
@@ -1990,13 +2003,13 @@
           if ( !*((int *)&pSavegameThumbnails->pPixels + 10 * uMessageParam) || !v59 )
           {
             sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[476], thise);// "Set to %s"
-            sub_41C0B8_set_status_string(pTmpBuf);
+            GameUI_SetFooterString(pTmpBuf);
             continue;
           }
           v174 = pMapStats->pInfos[sub_410D99_get_map_index(*(short *)(uNumSeconds + 26))].pName;
           v158 = (unsigned int)thise;
           sprintf(pTmpBuf, pGlobalTXT_LocalizationStrings[475], v158, v174);// "Set %s over %s"
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_CloseAfterInstallBeacon:
           dword_50CDC8 = 1;
@@ -2211,7 +2224,7 @@
                     if ( uMessageParam != 5 )
                     {
                       sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[35], v200);
-                      sub_41C0B8_set_status_string(pTmpBuf);
+                      GameUI_SetFooterString(pTmpBuf);
                       continue;
                     }
                     v69 = pMapStats->pInfos[8].pName;
@@ -2223,7 +2236,7 @@
                   v69 = pMapStats->pInfos[21].pName;
                 }
                 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[35], v69);
-                sub_41C0B8_set_status_string(pTmpBuf);
+                GameUI_SetFooterString(pTmpBuf);
                 continue;
               }
               v68 = 210;
@@ -2261,7 +2274,7 @@
                   //goto LABEL_519;
                   {
                     sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[35], v200);
-                    sub_41C0B8_set_status_string(pTmpBuf);
+                    GameUI_SetFooterString(pTmpBuf);
                     continue;
                   }
                 v69 = pMapStats->pInfos[8].pName;
@@ -2273,7 +2286,7 @@
             v69 = pMapStats->pInfos[21].pName;
           }
           sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[35], v69);
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_ShowFinalWindow:
           sprintf(pFinalMessage, "%s\n \n%s\n \n%s", pGlobalTXT_LocalizationStrings[151],// "Congratulations Adventurer."
@@ -2392,8 +2405,9 @@
           }
           _42777D_CastSpell_UseWand_ShootArrow(pPlayer2->uQuickSpell, uActiveCharacter - 1, 0, 0, uActiveCharacter);
           continue;
-        case UIMSG_CastSpell_Monster_Improvement://Fate, cure
-        case UIMSG_CastSpell_Shoot_Monster://FireBlow, Lightning, Ice Lightning, Swarm, 
+        case UIMSG_CastSpell_GreatShot://???
+			__debugbreak();
+        case UIMSG_CastSpell_SmallShot://FireBlow, Lightning, Ice Lightning, Swarm, 
           if ( pRenderer->pRenderD3D )
           {
             v81 = pGame->pVisInstance->get_picked_object_zbuf_val();
@@ -2412,22 +2426,23 @@
             v1 = "";
             continue;
           }
-          pSpellInfo = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
-          if ( uMessage == UIMSG_CastSpell_Shoot_Monster )
-          {
-            LOBYTE(pSpellInfo->field_8) &= 0xF7;
+          v51 = (CastSpellInfo *)pGUIWindow_Settings->ptr_1C;
+          if ( uMessage == UIMSG_CastSpell_SmallShot )
+          {
+            LOBYTE(v51->field_8) &= 0xF7;
           }
           else
           {
-            if ( uMessage == UIMSG_CastSpell_Monster_Improvement )
-              HIBYTE(pSpellInfo->field_8) &= 0xFEu;
+            if ( uMessage == UIMSG_CastSpell_GreatShot )
+              HIBYTE(v51->field_8) &= 0xFEu;
             else
-              HIBYTE(pSpellInfo->field_8) &= 0xFDu;
-          }
-          pSpellInfo->uPlayerID_2 = uMessageParam;
-          pSpellInfo->spell_target_pid = v44;
-          pParty->pPlayers[pSpellInfo->uPlayerID].SetRecoveryTime(300);
-          pGUIWindow_Settings->Release();
+              HIBYTE(v51->field_8) &= 0xFDu;
+          }
+          v51->uPlayerID_2 = uMessageParam;
+          v51->spell_target_pid = v44;
+          pParty->pPlayers[v51->uPlayerID].SetRecoveryTime(300);
+          pWindow3 = pGUIWindow_Settings;
+          pWindow3->Release();
           pGUIWindow_Settings = 0;
           pMouse->SetCursorBitmap("MICON1");
           GameUI_Footer_TimeLeft = 0;
@@ -2679,7 +2694,7 @@
               v177 = pGlobalTXT_LocalizationStrings[484];// "Select a spell then click here to set a QuickSpell"
             strcpy(pTmpBuf, v177);
           }
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_SPellbook_ShowHightlightedSpellInfo:
           if ( !uActiveCharacter || (uNumSeconds = (unsigned int)pPlayers[uActiveCharacter],
@@ -2699,7 +2714,7 @@
             v161 = pGlobalTXT_LocalizationStrings[486];
           }
           sprintfex(pTmpBuf, v161, v178);
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_ClickInstallRemoveQuickSpellBtn:
           GUIWindow::Create(pBtn_InstallRemoveSpell->uX, pBtn_InstallRemoveSpell->uY, 0, 0, WINDOW_PressedButton2, (int)pBtn_InstallRemoveSpell, 0);
@@ -2796,14 +2811,13 @@
                   pCurrentScreen = SCREEN_GAME;
                   pIcons_LOD->_4114F2();
                   v103 = quick_spell_at_page + 11 * player->lastOpenedSpellbookPage;
-                  /*if ( dword_50C9E8 < 40 )
+                  if ( dword_50C9E8 < 40 )
                   {
                     dword_50C9EC[3 * dword_50C9E8] = UIMSG_CastSpellFromBook;
                     dword_50C9EC[3 * dword_50C9E8 + 1] = v103;
                     dword_50C9EC[3 * dword_50C9E8 + 2] = uActiveCharacter - 1;
                     ++dword_50C9E8;
-                  }*/
-                  pMessageQueue_50CBD0->AddMessage(UIMSG_CastSpellFromBook, v103, uActiveCharacter - 1);
+                  }
                 }
                 else
                 {
@@ -3002,7 +3016,7 @@
           GUIWindow::Create(pCharacterScreen_AwardsBtn->uX, pCharacterScreen_AwardsBtn->uY, 0, 0, WINDOW_CharactersPressedButton, (int)pCharacterScreen_AwardsBtn, 0);
           FillAwardsData();
           continue;
-        case UIMSG_ClickBooksBtn:
+        case UIMSG_AutonotesBook://   ( )
           switch ( uMessageParam )
           {
             case 11://Page UP
@@ -3013,12 +3027,12 @@
               BtnDown_flag = 1;
               pButton = pBtn_Book_1;
               break;
-            case 0://Zoom plus
+            case 0:
               pButton = pBtn_Book_1;
               BtnDown_flag = 1;
               break;
-            case 1://Zoom minus
-              pButton = pBtn_Book_2;
+            case 1:
+              pButton = pBtn_Book_2;//  MapsBook
               BtnUp_flag = 1;
               break;
             case 2://Potions
@@ -3067,7 +3081,7 @@
           v174 = (char *)pParty->uNumGoldInBank;
           v158 = pParty->uNumGold + pParty->uNumGoldInBank;
           sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[489], v158, v174);// "You have %d total gold, %d in the Bank"
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_ShowStatus_DateTime:
           pNPCData4 = (NPCData *)pParty->uCurrentHour;
@@ -3084,11 +3098,11 @@
             uNumSeconds = 0;
           sprintf(pTmpBuf, "%d:%02d%s %s %d %s %d", pNPCData4, pParty->uCurrentMinute, aAMPMNames[uNumSeconds], aDayNames[pParty->uDaysPlayed % 7],
             7 * pParty->uCurrentMonthWeek + pParty->uDaysPlayed % 7 + 1, aMonthNames[pParty->uCurrentMonth], pParty->uCurrentYear);
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_ShowStatus_Food:
           sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[501], pParty->uNumFoodRations); // "You have %lu food"
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_ShowStatus_Player:
           pPlayer5 = pPlayers[uMessageParam];
@@ -3096,16 +3110,20 @@
           strcat(pTmpBuf, ": ");
           v107 = pPlayer5->GetMajorConditionIdx();
           strcat(pTmpBuf, aCharacterConditionNames[v107]);
-          sub_41C0B8_set_status_string(pTmpBuf);
+          GameUI_SetFooterString(pTmpBuf);
           v108 = 8 * uMessageParam - 8;
           LOBYTE(v108) = v108 | 4;
           pMouse->uPointingObjectID = PID(OBJECT_Player,v108);
           continue;
         case UIMSG_ShowStatus_ManaHP:
-          sprintf(pTmpBuf, "%d / %d %s    %d / %d %s", pPlayers[uMessageParam]->sHealth, pPlayers[uMessageParam]->GetMaxHealth(), 
-                  pGlobalTXT_LocalizationStrings[108], pPlayers[uMessageParam]->sMana, pPlayers[uMessageParam]->GetMaxMana(), 
-                  pGlobalTXT_LocalizationStrings[212]);
-          sub_41C0B8_set_status_string(pTmpBuf);
+          v109 = pGlobalTXT_LocalizationStrings[212];// "Spell Points"
+          v110 = pPlayers[uMessageParam];
+          v111 = v110->GetMaxMana();
+          v112 = v110->sMana;
+          v113 = pGlobalTXT_LocalizationStrings[108];// "Hit Points"
+          v114 = v110->GetMaxHealth();
+          sprintf(pTmpBuf, "%d / %d %s    %d / %d %s", v110->sHealth, v114, v113, v112, v111, v109);
+          GameUI_SetFooterString(pTmpBuf);
           continue;
         case UIMSG_CHEST_ClickItem:
           if ( pCurrentScreen == SCREEN_CHEST_INVENTORY )
@@ -3128,6 +3146,7 @@
           }
           v115 = pMessageQueue_50CBD0->uNumMessages;
           if ( !pMessageQueue_50CBD0->uNumMessages )
+            //goto LABEL_768;
           {
             pMessageQueue_50CBD0->AddMessage(UIMSG_MouseLeftClickInScreen, 0, 0);
             /*if ( (signed int)v115 < 40 )
@@ -3201,7 +3220,7 @@
           if ( pCurrentScreen )
             continue;
           pParty->uFlags |= 2u;
-          GUIWindow::Create(519, 136, 0, 0, WINDOW_PressedButton2, (int)pBtn_ZoomOut, 0);
+          GUIWindow::Create(0x207u, 0x88u, 0, 0, WINDOW_PressedButton2, (int)pBtn_ZoomOut, 0);
           uNumSeconds = 131072;
           v118 = 2 * viewparams->uMinimapZoom;
           ++viewparams->field_28;
@@ -3231,7 +3250,7 @@
           if ( pCurrentScreen )
             continue;
           pParty->uFlags |= 2u;
-          GUIWindow::Create(574, 136, 0, 0, WINDOW_PressedButton2, (int)pBtn_ZoomIn, 0);
+          GUIWindow::Create(0x23Eu, 0x88u, 0, 0, WINDOW_PressedButton2, (int)pBtn_ZoomIn, 0);
           uNumSeconds = 32768;
           v118 = (unsigned __int64)((signed __int64)(signed int)viewparams->uMinimapZoom << 15) >> 16;
           --viewparams->field_28;
@@ -9971,86 +9990,8 @@
   return pGlobalTXT_LocalizationStrings[567];
 }
 
-//----- (00413D6F) --------------------------------------------------------
-char __cdecl DrawBook_Calendar()
-{
-  unsigned int v0; // esi@1
-  char *v1; // eax@5
-  int v2; // ecx@5
-  char *v3; // eax@6
-  GUIWindow a1; // [sp+Ch] [bp-60h]@5
-  unsigned int v6; // [sp+60h] [bp-Ch]@1
-  int v7; // [sp+64h] [bp-8h]@1
-  int a5; // [sp+68h] [bp-4h]@1
-
-  v0 = pParty->uCurrentHour;
-  v6 = pMapStats->GetMapInfo(pCurrentMapName);
-  a5 = TargetColor(0x4Bu, 0x4Bu, 0x4Bu);
-  pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pSpellBookPagesTextr_13);
-  v7 = (unsigned __int8)pDayMoonPhase[pParty->uDaysPlayed];
-  if ( (signed int)v0 <= 12 )
-  {
-    if ( !v0 )
-      v0 = 12;
-  }
-  else
-  {
-    v0 -= 12;
-  }
-  a1.uFrameX = game_viewport_x;
-  a1.uFrameY = game_viewport_y;
-  a1.uFrameWidth = game_viewport_width;
-  a1.uFrameHeight = game_viewport_height;
-  a1.uFrameZ = game_viewport_z;
-  a1.uFrameW = game_viewport_w;
-  a1.DrawTitleText(pBook2Font, 0, 0x16u, 0, pGlobalTXT_LocalizationStrings[186], 3u);
-  if ( pParty->uCurrentHour >= 12 )
-  {
-    if ( pParty->uCurrentHour >= 24 )
-		v2=0;
-	else
-		v2=1;
-  }
-  else
-    v2=0;
-  v1 = GetDayPart();
-  sprintf(
-    pTmpBuf,
-    "%s\t100:\t110%d:%02d %s - %s",
-    pGlobalTXT_LocalizationStrings[526],
-    v0,
-    pParty->uCurrentMinute,
-    aAMPMNames[v2],
-    v1);
-  a1.DrawText(pBookFont, 70, 55, a5, pTmpBuf, 0, 0, 0);
-  sprintf(
-    pTmpBuf,
-    "%s\t100:\t110%d - %s",
-    pGlobalTXT_LocalizationStrings[56],
-    pParty->uDaysPlayed + 1,
-    aDayNames[pParty->uDaysPlayed % 7]);
-  a1.DrawText(pBookFont, 70, 2 * LOBYTE(pBookFont->uFontHeight) + 49, a5, pTmpBuf, 0, 0, 0);
-  sprintf(
-    pTmpBuf,
-    "%s\t100:\t110%d - %s",
-    pGlobalTXT_LocalizationStrings[146],
-    pParty->uCurrentMonth + 1,
-    aMonthNames[pParty->uCurrentMonth]);
-  a1.DrawText(pBookFont, 70, 4 * LOBYTE(pBookFont->uFontHeight) + 43, a5, pTmpBuf, 0, 0, 0);
-  sprintf(pTmpBuf, "%s\t100:\t110%d", pGlobalTXT_LocalizationStrings[245], pParty->uCurrentYear);
-  a1.DrawText(pBookFont, 70, 6 * LOBYTE(pBookFont->uFontHeight) + 37, a5, pTmpBuf, 0, 0, 0);
-  sprintf(pTmpBuf, "%s\t100:\t110%s", pGlobalTXT_LocalizationStrings[530], aMoonPhaseNames[v7]);
-  a1.DrawText(pBookFont, 70, 8 * LOBYTE(pBookFont->uFontHeight) + 31, a5, pTmpBuf, 0, 0, 0);
-  if ( v6 )
-    v3 = pMapStats->pInfos[v6].pName;
-  else
-    v3 = "Unknown";
-  sprintf(pTmpBuf, "%s\t100:\t110%s", pGlobalTXT_LocalizationStrings[531], v3);
-  return a1.DrawText(pBookFont, 70, 10 * LOBYTE(pBookFont->uFontHeight) + 25, a5, pTmpBuf, 0, 0, 0);
-}
-
 //----- (00413FF1) --------------------------------------------------------
-void __cdecl SetMonthNames()
+void SetMonthNames()
 {
   aMonthNames[0] = pGlobalTXT_LocalizationStrings[415];
   aMonthNames[1] = pGlobalTXT_LocalizationStrings[416];
@@ -10067,7 +10008,7 @@
 }
 
 //----- (0041406F) --------------------------------------------------------
-void __cdecl SetDayNames()
+void SetDayNames()
 {
   aDayNames[0] = pGlobalTXT_LocalizationStrings[145];
   aDayNames[1] = pGlobalTXT_LocalizationStrings[230];
@@ -10079,7 +10020,7 @@
 }
 
 //----- (004140BB) --------------------------------------------------------
-void __cdecl SetSpellSchoolNames()
+void SetSpellSchoolNames()
 {
   aSpellSchoolNames[0] = pGlobalTXT_LocalizationStrings[87];
   aSpellSchoolNames[1] = pGlobalTXT_LocalizationStrings[6];
@@ -10093,7 +10034,7 @@
 }
 
 //----- (0041411B) --------------------------------------------------------
-void __cdecl SetAttributeNames()
+void SetAttributeNames()
 {
   aAttributeNames[0] = pGlobalTXT_LocalizationStrings[144];
   aAttributeNames[1] = pGlobalTXT_LocalizationStrings[116];
@@ -10105,13 +10046,13 @@
 }
 
 //----- (00414162) --------------------------------------------------------
-void __cdecl uGameUIFontMain_initialize()
+void uGameUIFontMain_initialize()
 {
   uGameUIFontMain = TargetColor(0xAu, 0, 0);
 }
 
 //----- (00414174) --------------------------------------------------------
-void __cdecl uGameUIFontShadow_initialize()
+void uGameUIFontShadow_initialize()
 {
   uGameUIFontShadow = TargetColor(0xE6u, 214u, 193u);
 }
@@ -10257,7 +10198,7 @@
       }
       case WINDOW_Book:
       {
-        DrawCurrentBook((unsigned int)pWindow->ptr_1C);
+        BookUI_Draw((WindowType)(int)pWindow->ptr_1C);
         continue;
       }
       case WINDOW_Dialogue: