annotate Player.cpp @ 31:f4450ff595fe

BLV loading (looks like) done.
author Nomad
date Fri, 19 Oct 2012 03:36:38 +0200
parents 93bf1d5f6a6d
children 7071e4688db6
rev   line source
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1 #include "OSAPI.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3 #include "Player.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4 #include "PlayerFrameTable.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5 #include "Texture.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6 #include "AudioPlayer.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7 #include "Party.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8 #include "GUIButton.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9 #include "LOD.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
10 #include "Monsters.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
11 #include "GUIWindow.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
12 #include "Viewport.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
13 #include "Actor.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
14 #include "Game.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
15 #include "Mouse.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
16 #include "TurnEngine.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
17 #include "Events.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
18 #include "Events2D.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
19 #include "Outdoor.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
20 #include "StorylineTextTable.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
22 #include "mm7_data.h"
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
23
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
25
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
29 /* 381 */
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
30 #pragma pack(push, 1)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
31 struct PlayerCreation_AttributeProp
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
32 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
33 unsigned __int8 uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
34 char uMaxValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
35 char uDroppedStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
36 char uBaseStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
37 };
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
38 #pragma pack(pop)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
39
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
41 #pragma pack(push, 1)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
42 struct PlayerCreation_AttributePropsByRace
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
43 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
44 PlayerCreation_AttributeProp attr[7];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
45 };
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
46
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
47 struct PlayerCreation_AttributeProps
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
48 {
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
49 union
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
50 {
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
51 unsigned __int8 _[4][7][4];
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
52 PlayerCreation_AttributePropsByRace race[4];
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
53 };
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
54 };
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
55 #pragma pack(pop)
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
56 PlayerCreation_AttributeProps stru_4ED7B0 =
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
57 {
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
58 11, 25, 1, 1, 11, 25, 1, 1, 11, 25, 1, 1, 9, 25, 1, 1, 11, 25, 1, 1, 11, 25, 1, 1, 9, 25, 1, 1,
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
59 7, 15, 2, 1, 14, 30, 1, 2, 11, 25, 1, 1, 7, 15, 2, 1, 14, 30, 1, 2, 11, 25, 1, 1, 9, 20, 1, 1,
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
60 14, 30, 1, 2, 7, 15, 2, 1, 7, 15, 2, 1, 11, 25, 1, 1, 11, 25, 1, 1, 14, 30, 1, 2, 9, 20, 1, 1,
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
61 14, 30, 1, 2, 11, 25, 1, 1, 11, 25, 1, 1, 14, 30, 1, 2, 7, 15, 2, 1, 7, 15, 2, 1, 9, 20, 1, 1
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
62 };
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
63
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
64
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
65
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
66
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
67
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
68
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
69 // available skills per class ( 9 classes X 37 skills )
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
70 // 0 - not available
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
71 // 1 - available
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
72 // 2 - primary skill
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
73 unsigned char pSkillAvailabilityPerClass[9][37] = // byte[] @ MM7.exe::004ED820
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
74 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
75 {0, 2, 0, 1, 1, 1, 1, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
76 {0, 1, 2, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 2, 1, 0},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
77 {1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 2, 1, 1, 0, 0, 0},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
78 {0, 1, 1, 1, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
79 {0, 1, 0, 1, 1, 2, 0, 0, 0, 1, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
80 {0, 1, 1, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
81 {0, 0, 0, 0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 2, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
82 {0, 0, 2, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
83 {2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0} // some of these are started at 4ED94C, but needs to be here
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
84 };
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
85
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
86
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
87
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
88
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
89 unsigned char pBaseHealthByClass[12] = {40, 35, 35, 30, 30, 30, 25, 20, 20, 0, 0, 0};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
90 unsigned char pBaseManaByClass[12] = { 0, 0, 0, 5, 5, 0, 10, 10, 15, 0, 0, 0};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
91 unsigned char pBaseHealthPerLevelByClass[36] = {5, 7, 9, 9, 4, 6, 8, 8, 5, 6, 8, 8, 4, 5, 6, 6, 3, 4, 6, 6, 4, 5, 6, 6, 2, 3, 4, 4, 2, 3, 4, 4, 2, 3, 3, 3};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
92 unsigned char pBaseManaPerLevelByClass[36] = {0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 2, 3, 3, 1, 2, 3, 3, 0, 2, 3, 3, 3, 4, 5, 5, 3, 4, 5, 5, 3, 4, 6, 6};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
93
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
94 unsigned char pConditionStrengthMultiplier[19] = {100, 100, 100, 120, 50, 200, 75, 60, 50, 30, 25, 10, 100, 100, 100, 100, 100, 100, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
95 unsigned char pConditionIntelligenceMultiplier[19] = {100, 100, 100, 50, 25, 10, 100, 100, 75, 60, 50, 30, 100, 100, 100, 100, 100, 1, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
96 unsigned char pConditionWillpowerMultiplier[19] = {100, 100, 100, 50, 25, 10, 100, 100, 75, 60, 50, 30, 100, 100, 100, 100, 100, 1, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
97 unsigned char pConditionEnduranceMultiplier[19] = {100, 100, 100, 100, 50, 150, 75, 60, 50, 30, 25, 10, 100, 100, 100, 100, 100, 100, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
98 unsigned char pConditionAccuracyMultiplier[19] = {100, 100, 100, 50, 10, 100, 75, 60, 50, 30, 25, 10, 100, 100, 100, 100, 100, 50, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
99 unsigned char pConditionSpeedMultiplier[19] = {100, 100, 100, 120, 20, 120, 75, 60, 50, 30, 25, 10, 100, 100, 100, 100, 100, 50, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
100 unsigned char pConditionLuckMultiplier[19] = {100, 100, 100, 100, 200, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
101
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
102 unsigned char pAgeingStrengthMultiplier[4] = {100, 75, 40, 10};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
103 unsigned char pAgeingIntelligenceMultiplier[4] = {100, 150, 100, 10};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
104 unsigned char pAgeingWillpowerMultiplier[4] = {100, 150, 100, 10};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
105 unsigned char pAgeingEnduranceMultiplier[4] = {100, 75, 40, 10};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
106 unsigned char pAgeingAccuracyMultiplier[4] = {100, 100, 40, 10};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
107 unsigned char pAgeingSpeedMultiplier[4] = {100, 100, 40, 10};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
108 unsigned char pAgeingLuckMultiplier[4] = {100, 100, 100, 100};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
109
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
110 unsigned int pAgeingTable[4] = {50, 100, 150, 65535};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
111
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
112 unsigned int pConditionImportancyTable[18] = {16, 15, 14, 17, 13, 2, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0};
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
113
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
114 short word_4EDFFC[30] = {500, 500, 400, 350, 300, 275, 250, 225, 200, 175,
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
115 150, 125, 100, 75, 50, 40, 35, 30, 25, 21,
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
116 19, 17, 15, 13, 11, 9, 7, 5, 3, 0};
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
117 unsigned char player_stat_bonuses[30] = {30, 25, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 255, 254, 253, 252, 251, 250, 0};
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
118
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
119
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
120
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
121
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
122 //----- (00490913) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
123 signed int __cdecl PlayerCreation_ComputeAttributeBonus()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
124 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
125 signed int v0; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
126 signed int v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
127 int v2; // ebx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
128 int v3; // ecx@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
129 signed int v4; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
130 int v5; // edx@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
131 signed int v6; // ecx@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
132 signed int v8; // [sp+Ch] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
133 signed int v9; // [sp+10h] [bp-4h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
134
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
135 v8 = 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
136 v0 = 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
137 v1 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
138 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
139 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
140 v9 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
141 v2 = 7 * pParty->pPlayers[v1].GetRace();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
142 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
143 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
144 if ( v9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
145 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
146 switch ( v9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
147 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
148 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
149 v0 = pParty->pPlayers[v1].uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
150 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
151 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
152 v0 = pParty->pPlayers[v1].uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
153 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
154 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
155 v0 = pParty->pPlayers[v1].uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
156 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
157 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
158 v0 = pParty->pPlayers[v1].uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
159 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
160 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
161 v0 = pParty->pPlayers[v1].uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
162 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
163 case 6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
164 v0 = pParty->pPlayers[v1].uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
165 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
166 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
167 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
168 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
169 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
170 v0 = pParty->pPlayers[v1].uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
171 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
172 v3 = v2 + v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
173 v4 = stru_4ED7B0.race[0].attr[v3].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
174 if ( v0 >= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
175 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
176 v5 = stru_4ED7B0.race[0].attr[v3].uDroppedStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
177 v6 = stru_4ED7B0.race[0].attr[v3].uBaseStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
178 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
179 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
180 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
181 v5 = stru_4ED7B0.race[0].attr[v3].uBaseStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
182 v6 = stru_4ED7B0.race[0].attr[v3].uDroppedStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
183 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
184 v8 += v5 * (v4 - v0) / v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
185 ++v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
186 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
187 while ( v9 <= 6 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
188 ++v1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
189 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
190 while ( v1 < 4 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
191 return v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
192 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
193
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
194
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
195
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
196 //----- (00427730) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
197 bool Player::CanCastSpell(unsigned int uRequiredMana)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
198 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
199 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
200 bool result; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
201
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
202 v2 = this->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
203 if ( v2 >= (signed int)uRequiredMana )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
204 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
205 this->sMana = v2 - uRequiredMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
206 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
207 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
208 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
209 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
210 pAudioPlayer->PlaySound(SOUND_PlayerCantCastSpell, 0, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
211 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
212 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
213 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
214 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
215
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
216
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
217 //----- (004BE2DD) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
218 void Player::_4BE2DD(unsigned int a2, int a3, int _2devent_idx)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
219 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
220 Player *v4; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
221 char *v5; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
222 float v6; // ST04_4@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
223 signed int v7; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
224 signed int v8; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
225
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
226 auto a4 = _2devent_idx;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
227 v4 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
228 v5 = (char *)this + 36 * a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
229 v6 = p2DEvents[a4 - 1].fPriceMultiplier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
230 //v6 = p2DEvents_minus1__20[13 * a4];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
231 v7 = ((ItemGen *)(v5 + 532))->GetValue();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
232 v8 = _4B8102(v7, v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
233 if ( v5[552] & 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
234 v8 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
235 if ( v8 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
236 v8 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
237 RemoveItemAtInventoryIndex(a2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
238 Party::SetGold(pParty->uNumGold + v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
239 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
240
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
241
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
242
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
243 //----- (0043EEF3) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
244 bool Player::_43EEF3()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
245 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
246 signed int v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
247 PlayerEquipment *v2; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
248 bool result; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
249
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
250 v1 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
251 v2 = &this->pEquipment;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
252 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
253 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
254 result = v2->uOffHand;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
255 if ( v2->uOffHand )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
256 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
257 result = *(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * result + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
258 if ( result )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
259 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
260 if ( result != 64 && result != 65 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
261 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
262 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
263 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
264 ++v1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
265 v2 = (PlayerEquipment *)((char *)v2 + 4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
266 if ( v1 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
267 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
268 LOBYTE(result) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
269 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
270 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
271 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
272 LOBYTE(result) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
273 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
274 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
275
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
276
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
277
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
278 //----- (004B8040) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
279 int Player::_4B8040_condition_time(unsigned int uCondition)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
280 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
281 return (unsigned int)((signed __int64)((double)this->pConditions[uCondition] * 0.234375) / 60 / 60) / 0x18 % 7 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
282 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
283
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
284 //----- (004B807C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
285 int Player::_4B807C(float a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
286 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
287 Player *v2; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
288 unsigned int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
289 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
290 unsigned int v5; // ebx@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
291 int v6; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
292 signed __int64 v7; // qax@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
293 unsigned int v9; // [sp-4h] [bp-14h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
294 signed int v10; // [sp+8h] [bp-8h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
295 int v11; // [sp+Ch] [bp-4h]@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
296
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
297 v2 = this;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
298 v3 = GetMajorConditionIdx();
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
299 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
300 if ( (signed int)v3 >= 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
301 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
302 if ( (signed int)v3 <= 15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
303 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
304 v10 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
305 v9 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
306 goto LABEL_6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
307 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
308 if ( v3 == 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
309 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
310 v10 = 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
311 v9 = 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
312 LABEL_6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
313 v11 = _4B8040_condition_time(v9);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
314 goto LABEL_13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
315 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
316 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
317 v10 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
318 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
319 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
320 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
321 v6 = _4B8040_condition_time(v5);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
322 if ( v6 > v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
323 v4 = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
324 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
325 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
326 while ( (signed int)v5 <= 13 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
327 v11 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
328 if ( !v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
329 v11 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
330 LABEL_13:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
331 v7 = (signed __int64)((double)v11 * (double)v10 * a2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
332 if ( (signed int)v7 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
333 LODWORD(v7) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
334 return v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
335 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
336
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
337 //----- (004B8102) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
338 int Player::_4B8102(int a2, float a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
339 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
340 signed int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
341 signed int result; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
342
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
343 v3 = (unsigned __int64)(signed __int64)((double)a2 / (a3 + 2.0)) + a2 * GetMerchant() / 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
344 if ( v3 > a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
345 v3 = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
346 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
347 if ( v3 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
348 result = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
349 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
350 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
351
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
352 //----- (004B8142) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
353 int Player::_4B8142(int a2, float a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
354 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
355 int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
356
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
357 result = (int)((100 - GetMerchant()) * (unsigned __int64)(signed __int64)((double)a2 * a3)) / 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
358 if ( result < a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
359 result = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
360 if ( result < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
361 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
362 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
363 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
364
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
365 //----- (004B8179) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
366 int Player::_4B8179(float a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
367 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
368 signed int v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
369 int v3; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
370 signed int result; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
371
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
372 v2 = (signed __int64)(a2 * 50.0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
373 v3 = v2 * (100 - GetMerchant()) / 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
374 if ( v3 < v2 / 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
375 v3 = v2 / 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
376 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
377 if ( v3 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
378 result = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
379 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
380 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
381
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
382 //----- (004B81C3) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
383 int Player::_4B81C3(int a2, float a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
384 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
385 signed int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
386 int v4; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
387 signed int result; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
388
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
389 v3 = (signed __int64)((double)a2 / (6.0 - a3));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
390 v4 = v3 * (100 - GetMerchant()) / 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
391 if ( v4 < v3 / 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
392 v4 = v3 / 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
393 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
394 if ( v4 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
395 result = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
396 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
397 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
398
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
399 //----- (004B8213) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
400 int Player::_4B8213(int a2, float a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
401 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
402 signed __int64 v3; // qax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
403
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
404 v3 = (signed __int64)((double)a2 / (a3 + 2.0));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
405 if ( (signed int)v3 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
406 LODWORD(v3) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
407 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
408 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
409
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
410 //----- (004B8233) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
411 int Player::_4B8233(int a2, float a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
412 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
413 signed __int64 v3; // qax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
414
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
415 v3 = (signed __int64)((double)a2 * a3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
416 if ( (signed int)v3 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
417 LODWORD(v3) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
418 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
419 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
420
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
421 //----- (004B824B) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
422 int Player::_4B824B(float a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
423 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
424 signed __int64 v2; // qax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
425
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
426 v2 = (signed __int64)(a2 * 50.0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
427 if ( (signed int)v2 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
428 LODWORD(v2) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
429 return v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
430 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
431
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
432 //----- (004B8265) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
433 int Player::_4B8265(int a2, float a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
434 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
435 signed __int64 v3; // qax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
436
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
437 v3 = (signed __int64)((double)a2 / (6.0 - a3));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
438 if ( (signed int)v3 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
439 LODWORD(v3) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
440 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
441 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
442
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
443
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
444
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
445
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
446
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
447 //----- (004B6FF9) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
448 int Player::_4B6FF9()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
449 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
450 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
451 signed int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
452 char v3; // zf@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
453
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
454 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
455 v2 = (signed int)ptr_507BC0->ptr_1C;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
456 if ( v2 == 78 || v2 > 80 && v2 <= 82 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
457 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
458 if ( GetMajorConditionIdx() == 18 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
459 goto LABEL_6;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
460 v3 = GetMajorConditionIdx() == 17;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
461 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
462 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
463 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
464 v3 = GetMajorConditionIdx() == 18;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
465 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
466 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
467 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
468 LABEL_6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
469 if ( v1->sHealth < GetMaxHealth() || v1->sMana < GetMaxMana() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
470 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
471 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
472 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
473
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
474
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
475
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
476 //----- (00421E75) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
477 unsigned int Player::GetItemIDAtInventoryIndex(int *a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
478 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
479 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
480 unsigned int result; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
481
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
482 v2 = *a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
483 if ( *a2 >= 126 || v2 < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
484 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
485 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
486 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
487 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
488 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
489 result = this->pInventoryIndices[v2];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
490 if ( (result & 0x80000000u) != 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
491 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
492 *a2 = -1 - result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
493 result = this->pInventoryIndices[-1 - result];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
494 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
495 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
496 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
497 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
498
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
499
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
500
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
501 //----- (004160CA) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
502 char Player::_4160CA(int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
503 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
504 Player *v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
505 signed int v3; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
506 signed int v4; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
507 ItemGen *v5; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
508 int v6; // edi@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
509 signed int i; // edx@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
510 ItemGen **v8; // ecx@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
511 __int16 v10[137]; // [sp+Ch] [bp-118h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
512 __int16 v11; // [sp+11Eh] [bp-6h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
513 int v12; // [sp+120h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
514
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
515 auto a1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
516
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
517 v12 = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
518 v2 = a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
519 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
520 v10[0] = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
521 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
522 memset(&v10[1], 0, 0x110u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
523 v11 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
524 v5 = a1->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
525 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
526 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
527 v6 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
528 if ( (signed int)v5->uItemID > 0 && (signed int)v5->uItemID <= 134 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
529 v10[v4++] = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
530 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
531 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
532 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
533 while ( v3 < 138 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
534 if ( v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
535 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
536 if ( v12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
537 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
538 if ( v12 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
539 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
540 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
541 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
542 LOWORD(v5) = 9 * v10[v6];
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
543 if ( !(BYTE1(v2->pInventoryItems[v10[v6]].uAttributes) & 2) )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
544 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
545 v5 = (ItemGen *)((char *)&v2->pInventoryItems[v10[rand() % v4]] + 20);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
546 v5->uItemID |= 2u;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
547 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
548 ++v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
549 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
550 while ( v6 < v12 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
551 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
552 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
553 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
554 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
555 for ( i = 0; i < v4; ++i )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
556 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
557 v8 = (ItemGen **)&v2->pInventoryItems[v10[i]].uAttributes;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
558 v5 = *v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
559 if ( !(BYTE1(v5) & 2) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
560 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
561 LOBYTE(v5) = (unsigned __int8)v5 | 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
562 *v8 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
563 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
564 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
565 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
566 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
567 return (char)v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
568 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
569
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
570 //----- (004948B1) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
571 __int16 Player::PlaySound(int a2, int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
572 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
573 Player *v3; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
574 int v4; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
575 signed int v5; // esi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
576 char *v6; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
577 signed int v7; // ecx@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
578 char v8; // al@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
579 int v9; // eax@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
580 unsigned int v10; // ecx@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
581 int v11; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
582 signed int v12; // eax@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
583 signed int v13; // esi@12
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
584 int v14; // eax@12
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
585 int v15; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
586 int v16; // ebx@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
587 signed int v17; // ecx@19
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
588 char *v18; // edi@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
589 int v20[5]; // [sp+Ch] [bp-1Ch]@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
590 Player *v21; // [sp+20h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
591 int v22; // [sp+24h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
592 int v23; // [sp+30h] [bp+8h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
593
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
594 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
595 v21 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
596 v22 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
597 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
598 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
599 if ( this == pPlayers[v22] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
600 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
601 ++v22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
602 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
603 while ( v22 <= 4 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
604 v4 = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
605 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
606 v23 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
607 v6 = (char *)&unk_4ED3D8 + 8 * v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
608 if ( uVoicesVolumeMultiplier )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
609 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
610 v7 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
611 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
612 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
613 v8 = v6[v7];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
614 if ( v8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
615 v20[v5++] = (unsigned __int8)v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
616 ++v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
617 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
618 while ( v7 < 2 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
619 if ( v5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
620 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
621 v9 = rand();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
622 v10 = v3->uVoiceID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
623 v11 = v20[v9 % v5];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
624 if ( LOBYTE((&(&dlhu_texnames_by_face[19])[25 * v11 + 3])[v10]) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
625 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
626 v23 = rand() % SLOBYTE((&(&dlhu_texnames_by_face[19])[25 * v11 + 3])[v10])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
627 + 2 * (v11 + 50 * v21->uVoiceID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
628 + 4998;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
629 v12 = 8 * v22 + 312;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
630 LOBYTE(v12) = v12 | 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
631 pAudioPlayer->PlaySound(
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
632 (SoundID)v23,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
633 v12,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
634 0,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
635 -1,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
636 0,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
637 0,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
638 (signed __int64)(pSoundVolumeLevels[(char)uVoicesVolumeMultiplier] * 128.0),
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
639 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
640 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
641 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
642 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
643 v13 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
644 v14 = (int)(v6 + 3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
645 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
646 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
647 if ( *(char *)v14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
648 v20[v13++] = *(char *)v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
649 ++v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
650 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
651 while ( -3 - (signed int)v6 + v14 < 5 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
652 if ( v13 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
653 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
654 v15 = rand();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
655 v22 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
656 v16 = v20[v15 % v13];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
657 if ( v16 == 21 && v23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
658 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
659 v17 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
660 if ( (signed int)pSoundList->uNumSounds <= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
661 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
662 LABEL_23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
663 v17 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
664 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
665 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
666 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
667 v18 = (char *)&pSoundList->pSounds->uSoundID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
668 while ( *(int *)v18 != v23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
669 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
670 ++v17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
671 v18 += 120;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
672 if ( v17 >= (signed int)pSoundList->uNumSounds )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
673 goto LABEL_23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
674 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
675 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
676 if ( pSoundList->pSounds[v17].pSoundData[0] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
677 v22 = (sLastTrackLengthMS << 7) / 1000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
678 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
679 LOWORD(v14) = v21->PlayEmotion(v16, v22);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
680 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
681 return v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
682 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
683 // 4948B1: using guessed type int var_1C[5];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
684
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
685 //----- (00494A25) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
686 __int16 Player::PlayEmotion(int a2, int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
687 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
688 signed int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
689 unsigned __int16 v4; // dx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
690 signed int v5; // edi@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
691 PlayerFrame *v6; // esi@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
692 signed int v7; // eax@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
693
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
694 LOWORD(v3) = this->uExpressionID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
695 v4 = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
696 if ( (short)v3 != 4 && (short)v3 != 12 || a2 != 58 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
697 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
698 v3 = (unsigned __int16)v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
699 if ( (signed int)(unsigned __int16)v3 >= 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
700 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
701 if ( v3 <= 7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
702 goto LABEL_12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
703 if ( v3 > 8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
704 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
705 if ( v3 > 11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
706 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
707 if ( v3 == 12 || v3 > 97 && v3 <= 99 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
708 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
709 goto LABEL_15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
710 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
711 LABEL_12:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
712 if ( a2 != 34 && a2 != 35 && a2 != 36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
713 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
714 goto LABEL_15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
715 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
716 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
717 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
718 LABEL_15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
719 LOWORD(v3) = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
720 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
721 this->uExpressionTimeLength = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
722 this->uExpressionTimePassed = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
723 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
724 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
725 if ( (signed int)pPlayerFrameTable->uNumFrames <= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
726 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
727 LABEL_20:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
728 v7 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
729 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
730 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
731 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
732 v6 = pPlayerFrameTable->pFrames;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
733 while ( v6->uSequenceID != a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
734 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
735 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
736 ++v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
737 if ( v5 >= (signed int)pPlayerFrameTable->uNumFrames )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
738 goto LABEL_20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
739 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
740 v7 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
741 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
742 v4 = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
743 LOWORD(v3) = 8 * pPlayerFrameTable->pFrames[v3].uAnimLength;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
744 this->uExpressionTimeLength = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
745 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
746 this->uExpressionID = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
747 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
748 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
749 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
750
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
751
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
752 //----- (0049327B) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
753 int Player::_49327B(unsigned int uClass, int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
754 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
755 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
756 char v4; // zf@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
757 __int16 v5; // dx@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
758 signed int result; // eax@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
759 unsigned int v7; // [sp-8h] [bp-10h]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
760 int v8; // [sp-4h] [bp-Ch]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
761
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
762 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
763 if ( this->uClass == uClass )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
764 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
765 LABEL_84:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
766 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
767 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
768 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
769 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
770 switch ( uClass )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
771 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
772 case 0u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
773 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
774 v7 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
775 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
776 case 1u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
777 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 17)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
778 || _49327B(2u, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
779 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
780 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
781 v7 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
782 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
783 case 2u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
784 v5 = 19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
785 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
786 case 3u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
787 v5 = 21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
788 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
789 case 4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
790 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
791 v7 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
792 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
793 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
794 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 11)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
795 || _49327B(6u, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
796 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
797 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
798 v7 = 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
799 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
800 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
801 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
802 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
803 v5 = 13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
804 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
805 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
806 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
807 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
808 v5 = 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
809 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
810 case 8u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
811 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
812 v7 = 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
813 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
814 case 9u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
815 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 23)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
816 || _49327B(0xAu, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
817 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
818 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
819 v7 = 11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
820 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
821 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
822 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
823 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
824 v5 = 25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
825 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
826 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
827 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
828 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
829 v5 = 27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
830 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
831 case 0xCu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
832 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
833 v7 = 13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
834 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
835 case 0xDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
836 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 41)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
837 || _49327B(0xEu, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
838 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
839 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
840 v7 = 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
841 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
842 case 0xEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
843 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
844 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
845 v5 = 43;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
846 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
847 case 0xFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
848 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
849 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
850 v5 = 45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
851 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
852 case 0x10u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
853 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
854 v7 = 17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
855 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
856 case 0x11u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
857 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 35)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
858 || _49327B(0x12u, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
859 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
860 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
861 v7 = 19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
862 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
863 case 0x12u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
864 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
865 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
866 v5 = 37;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
867 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
868 case 0x13u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
869 v5 = 39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
870 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
871 case 0x14u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
872 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
873 v7 = 21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
874 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
875 case 0x15u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
876 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 29)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
877 || _49327B(0x16u, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
878 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
879 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
880 v7 = 23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
881 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
882 case 0x16u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
883 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
884 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
885 v5 = 31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
886 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
887 case 0x17u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
888 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
889 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
890 v5 = 33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
891 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
892 case 0x18u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
893 if ( !_49327B(0x19u, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
894 goto LABEL_56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
895 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
896 case 0x19u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
897 LABEL_56:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
898 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)v3->field_152, 63)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
899 || _49327B(0x1Au, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
900 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
901 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
902 v7 = 27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
903 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
904 case 0x1Au:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
905 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
906 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
907 v5 = 65;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
908 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
909 case 0x1Bu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
910 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
911 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
912 v5 = 67;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
913 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
914 case 0x1Cu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
915 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
916 v7 = 29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
917 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
918 case 0x1Du:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
919 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 69)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
920 || _49327B(0x1Eu, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
921 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
922 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
923 v7 = 31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
924 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
925 case 0x1Eu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
926 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
927 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
928 v5 = 71;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
929 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
930 case 0x1Fu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
931 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
932 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
933 v5 = 73;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
934 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
935 case 0x20u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
936 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
937 v7 = 33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
938 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
939 case 0x21u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
940 if ( a3 && (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, 73)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
941 || _49327B(0x22u, a3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
942 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
943 v8 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
944 v7 = 35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
945 LABEL_4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
946 v4 = _49327B(v7, v8) == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
947 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
948 case 0x22u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
949 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
950 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
951 v5 = 77;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
952 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
953 case 0x23u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
954 if ( a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
955 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
956 v5 = 79;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
957 LABEL_82:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
958 v4 = (unsigned __int16)_449B57_test_bit((unsigned __int8 *)this->field_152, v5) == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
959 LABEL_83:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
960 if ( !v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
961 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
962 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
963 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
964 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
965 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
966 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
967 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
968 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
969 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
970 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
971
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
972
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
973 //----- (00492C0B) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
974 bool Player::CanAct()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
975 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
976 bool result; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
977
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
978 if ( this->pConditions[2] | this->pConditions[12] | this->pConditions[13] | this->pConditions[14] | this->pConditions[15] | this->pConditions[16] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
979 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
980 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
981 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
982 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
983 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
984
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
985 //----- (00492C40) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
986 bool Player::CanSteal()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
987 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
988 int v1; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
989
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
990 LOBYTE(v1) = GetActualSkillLevel(PLAYER_SKILL_STEALING);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
991 return v1 != 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
992 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
993
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
994 //----- (00492C4E) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
995 bool Player::CanEquip_RaceAndAlignmentCheck(unsigned int uItemID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
996 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
997 char v2; // zf@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
998 __int16 v4; // dx@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
999 char v5; // zf@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1000
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1001 if ( (signed int)uItemID > 532 ) // if (uItemID == 514 || // item233 ®á®å âਪ   àâ¥ä ªâ, §«®
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1002 // uItemID == 516 || // item221 ‘â àë© ¨ª  àâ¥ä ªâ, §«®
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1003 // uItemID == 524) // item325 ‘ã¬à ª ५¨ª¢¨ï, §«®
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1004 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1005 if ( uItemID == 533 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1006 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1007 v2 = GetRace() == 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1008 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1009 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1010 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1011 if ( uItemID != 534 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1012 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1013 if ( uItemID == 535 ) //
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1014 // if (uItemID == 530) // item093 ƒ¨¡¥«ì «ìä   àâ¥ä ªâ, £®¡«¨­
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1015 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1016 switch ( this->uVoiceID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1017 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1018 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1019 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1020 case 4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1021 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1022 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1023 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1024 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1025 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1026 case 0xEu: //
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1027 // if (uItemID == 535) // item129 ᪮àâ ‹¥¤¨  àâ¥ä ªâ, ¦¥­é¨­ 
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1028 case 0xFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1029 case 0x12u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1030 case 0x13u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1031 case 0x15u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1032 case 0x18u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1033 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1034 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1035 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1036 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1037 if ( uItemID == 536 ) //
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1038 // if (uItemID == 531) // item093 Žª® Œë᫨  àâ¥ä ªâ, 祫®¢¥ª
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1039 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1040 switch ( this->uVoiceID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1041 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1042 case 4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1043 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1044 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1045 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1046 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1047 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1048 case 0xEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1049 case 0xFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1050 case 0x12u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1051 case 0x13u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1052 case 0x15u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1053 case 0x18u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1054 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1055 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1056 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1057 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1058 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1059 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1060 if ( uItemID != 604 ) //
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1061 // if (uItemID == 532) // item073 «ìä¨©áª ï Š®«ìç㣠  àâ¥ä ªâ, í«ìä
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1062 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1063 v5 = _43EEF3() == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1064 goto LABEL_23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1065 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1066 v2 = GetRace() == 3; //
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1067 // if (uItemID == 533) // item113 Š®¢ ­ë¥ ‹ â­ë¥ 㪠¢¨æë  àâ¥ä ªâ, £­®¬
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1068 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1069 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1070 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1071 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1072 if ( uItemID != 532 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1073 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1074 if ( uItemID != 515 && uItemID != 517 ) //
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1075 // if (uItemID == 534) // item104 ®ïá ƒ¥à®ï  àâ¥ä ªâ, ¬ã¦ç¨­ 
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1076 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1077 if ( uItemID == 521 ) // if (uItemID == 521 || // item239 ˜«¥¬ ’ «¥¤®­   àâ¥ä ªâ, ¤®¡à®
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1078 // uItemID == 526) // item230 ‘¯à ¢¥¤«¨¢®áâì ५¨ª¢¨ï, ¤®¡à®
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1079 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1080 LABEL_13:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1081 v4 = 99;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1082 LABEL_15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1083 v5 = (unsigned __int16)_449B57_test_bit(pParty->_award_bits, v4) == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1084 LABEL_23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1085 if ( !v5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1086 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1087 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1088 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1089 if ( uItemID != 525 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1090 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1091 if ( uItemID != 527 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1092 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1093 if ( uItemID != 531 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1094 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1095 v2 = GetRace() == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1096 goto LABEL_10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1097 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1098 goto LABEL_13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1099 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1100 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1101 v4 = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1102 goto LABEL_15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1103 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1104 v2 = GetRace() == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1105 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1106 LABEL_10:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1107 if ( v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1108 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1109 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1110 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1111
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1112 //----- (00492D65) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1113 int Player::SetCondition(unsigned int uConditionIdx, int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1114 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1115 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1116 Player **v4; // ebx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1117 Player *v5; // ecx@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1118 Player *v6; // ecx@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1119 Player *v7; // ecx@29
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1120 Player *v8; // ecx@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1121 Player *v9; // ecx@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1122 Player *v10; // ecx@38
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1123 Player *v11; // ecx@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1124 Player *v12; // ecx@46
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1125 char *v13; // eax@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1126 Player *v14; // ecx@58
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1127 Player *v15; // ecx@59
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1128 Player *v16; // ecx@60
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1129 signed int result; // eax@76
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1130 signed int v18; // ecx@77
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1131 int v19; // eax@77
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1132 char v20; // al@80
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1133 signed int v21; // ebx@82
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1134 signed int v22; // esi@82
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1135 int v23; // [sp-8h] [bp-1Ch]@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1136 int v24; // [sp-8h] [bp-1Ch]@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1137 int v25; // [sp-8h] [bp-1Ch]@53
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1138 int v26; // [sp-4h] [bp-18h]@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1139 signed int v27; // [sp-4h] [bp-18h]@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1140 int v28; // [sp-4h] [bp-18h]@53
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1141 char *v29; // [sp+Ch] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1142 int v30; // [sp+10h] [bp-4h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1143 int v31; // [sp+20h] [bp+Ch]@82
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1144
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1145 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1146 v29 = (char *)this + 8 * uConditionIdx;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1147 if ( *(_QWORD *)v29 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1148 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1149 LABEL_76:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1150 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1151 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1152 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1153 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1154 v4 = &pPlayers[1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1155 v30 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1156 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1157 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1158 if ( (*v4)->CanAct() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1159 ++v30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1160 ++v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1161 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1162 while ( (signed int)v4 <= (signed int)&pPlayers[4] );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1163 switch ( uConditionIdx )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1164 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1165 case 0u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1166 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1167 v23 = 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1168 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1169 case 1u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1170 if ( a3 == 1 && (signed __int64)pParty->pPartyBuffs[13].uExpireTime > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1171 goto LABEL_10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1172 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1173 v23 = 25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1174 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1175 case 2u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1176 if ( a3 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1177 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1178 if ( v3->HasEnchantedItemEquipped(22) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1179 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1180 v27 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1181 v24 = 505;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1182 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1183 case 3u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1184 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1185 v23 = 26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1186 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1187 case 4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1188 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1189 v23 = 31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1190 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1191 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1192 if ( a3 == 1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1193 && (v3->HasEnchantedItemEquipped(19) || v5->WearsItem(505, 3) || v6->WearsItem(530, 6)) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1194 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1195 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1196 v23 = 29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1197 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1198 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1199 case 8u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1200 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1201 if ( a3 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1202 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1203 if ( (signed __int64)pParty->pPartyBuffs[13].uExpireTime > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1204 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1205 --pParty->pPartyBuffs[13].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1206 if ( pParty->pPartyBuffs[13].uPower < 1u )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1207 pParty->pPartyBuffs[13].Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1208 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1209 if ( v3->HasEnchantedItemEquipped(21)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1210 || v7->WearsItem(505, 3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1211 || v8->WearsItem(530, 6) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1212 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1213 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1214 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1215 v23 = 27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1216 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1217 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1218 case 9u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1219 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1220 if ( a3 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1221 goto LABEL_40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1222 if ( SHIDWORD(pParty->pPartyBuffs[13].uExpireTime) >= 0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1223 && (SHIDWORD(pParty->pPartyBuffs[13].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[13].uExpireTime) > 0) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1224 goto LABEL_10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1225 if ( v3->HasEnchantedItemEquipped(18) || v9->WearsItem(505, 3) || v10->WearsItem(530, 6) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1226 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1227 LABEL_40:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1228 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1229 v23 = 28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1230 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1231 case 0xCu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1232 if ( a3 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1233 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1234 if ( SHIDWORD(pParty->pPartyBuffs[13].uExpireTime) >= 0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1235 && (SHIDWORD(pParty->pPartyBuffs[13].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[13].uExpireTime) > 0) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1236 goto LABEL_10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1237 if ( v3->HasEnchantedItemEquipped(20)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1238 || v11->WearsItem(505, 3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1239 || v12->WearsItem(507, 16) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1240 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1241 v27 = 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1242 v24 = 530;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1243 LABEL_16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1244 if ( v3->WearsItem(v24, v27) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1245 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1246 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1247 case 0xDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1248 v3->PlaySound(32, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1249 v13 = (char *)&v3->sHealth;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1250 goto LABEL_70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1251 case 0xEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1252 if ( a3 == 1 && (signed __int64)pParty->pPartyBuffs[13].uExpireTime > 0 && pParty->pPartyBuffs[13].uSkill >= 4u )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1253 goto LABEL_10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1254 v28 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1255 v25 = 33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1256 goto LABEL_67;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1257 case 0xFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1258 if ( a3 == 1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1259 && (SHIDWORD(pParty->pPartyBuffs[13].uExpireTime) >= 0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1260 && (SHIDWORD(pParty->pPartyBuffs[13].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[13].uExpireTime) > 0)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1261 || v3->HasEnchantedItemEquipped(23)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1262 || v14->WearsItem(520, 16)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1263 || v15->WearsItem(505, 3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1264 || v16->WearsItem(530, 6)) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1265 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1266 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1267 v23 = 34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1268 goto LABEL_81;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1269 case 0x10u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1270 if ( a3 == 1 && (signed __int64)pParty->pPartyBuffs[13].uExpireTime > 0 && pParty->pPartyBuffs[13].uSkill >= 4u )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1271 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1272 LABEL_10:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1273 --pParty->pPartyBuffs[13].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1274 if ( pParty->pPartyBuffs[13].uPower < 1u )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1275 pParty->pPartyBuffs[13].Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1276 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1277 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1278 v28 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1279 v25 = 35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1280 LABEL_67:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1281 v3->PlaySound(v25, v28);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1282 if ( v3->sHealth > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1283 v3->sHealth = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1284 v13 = (char *)&v3->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1285 LABEL_70:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1286 if ( *(int *)v13 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1287 *(int *)v13 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1288 LABEL_82:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1289 v21 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1290 *(_QWORD *)v29 = pParty->uTimePlayed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1291 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1292 v22 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1293 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1294 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1295 if ( pPlayers[v22]->CanAct() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1296 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1297 ++v31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1298 v21 = v22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1299 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1300 ++v22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1301 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1302 while ( v22 <= 4 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1303 if ( v30 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1304 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1305 if ( v31 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1306 pPlayers[v21]->PlaySound(107, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1307 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1308 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1309 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1310 case 0x11u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1311 if ( v3->uClass == 35 || v3->pConditions[16] || v3->pConditions[17] || !v3->pConditions[14] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1312 goto LABEL_76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1313 memset(v3, 0, 0xA0u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1314 v3->sHealth = v3->GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1315 v18 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1316 v3->field_1928 = v3->uFace;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1317 v19 = v3->uVoiceID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1318 v3->sMana = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1319 v3->field_1924 = v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1320 switch ( v19 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1321 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1322 case 0:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1323 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1324 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1325 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1326 case 8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1327 case 9:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1328 case 12:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1329 case 13:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1330 case 16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1331 case 17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1332 case 20:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1333 case 23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1334 v18 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1335 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1336 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1337 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1338 case 6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1339 case 7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1340 case 10:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1341 case 11:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1342 case 14:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1343 case 15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1344 case 18:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1345 case 19:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1346 case 21:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1347 case 24:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1348 v18 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1349 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1350 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1351 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1352 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1353 v26 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1354 v20 = (v18 != 0) + 23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1355 v23 = 99;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1356 v3->uFace = v20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1357 v3->uVoiceID = v20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1358 LABEL_81:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1359 v3->PlaySound(v23, v26);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1360 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1361 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1362 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1363 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1364 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1365 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1366 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1367
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1368 //----- (00492528) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1369 bool Player::CanFitItem(unsigned int uSlot, unsigned int uItemID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1370 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1371 unsigned int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1372 Texture *v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1373 unsigned int v5; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1374 signed int v6; // edi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1375 int *v7; // ecx@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1376 signed int v8; // edx@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1377 int *v9; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1378 Player *v11; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1379 unsigned int uItemIDa; // [sp+1Ch] [bp+Ch]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1380
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1381 v11 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1382 v3 = pIcons_LOD->LoadTexture(pItemsTable->pItems[uItemID].pIconName, TEXTURE_16BIT_PALETTE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1383 v4 = (Texture *)(v3 != -1 ? (int)&pIcons_LOD->pTextures[v3] : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1384 v5 = GetSizeInInventorySlots(v3 != -1 ? pIcons_LOD->pTextures[v3].uTextureWidth : 24);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1385 uItemIDa = GetSizeInInventorySlots(v4->uTextureHeight);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1386 if ( !areWeLoadingTexture )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1387 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1388 v4->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1389 pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1390 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1391 if ( (signed int)(v5 + (signed int)uSlot % 14) <= 14 && (signed int)(uItemIDa + (signed int)uSlot / 14) <= 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1392 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1393 v6 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1394 if ( (signed int)uItemIDa <= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1395 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1396 v7 = &v11->pInventoryIndices[uSlot];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1397 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1398 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1399 v8 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1400 if ( (signed int)v5 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1401 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1402 LABEL_11:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1403 ++v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1404 v7 += 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1405 if ( v6 >= (signed int)uItemIDa )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1406 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1407 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1408 v9 = v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1409 while ( !*v9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1410 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1411 ++v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1412 ++v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1413 if ( v8 >= (signed int)v5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1414 goto LABEL_11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1415 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1416 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1417 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1418 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1419 // 506128: using guessed type int areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1420
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1421 //----- (004925E6) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1422 unsigned int Player::FindFreeInventorySlot()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1423 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1424 unsigned int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1425 ItemGen *v2; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1426
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1427 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1428 v2 = this->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1429 while ( v2->uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1430 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1431 ++result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1432 ++v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1433 if ( (signed int)result >= 126 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1434 return -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1435 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1436 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1437 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1438
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1439 //----- (00492600) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1440 int Player::CreateItemInInventory(unsigned int uSlot, unsigned int uItemID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1441 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1442 signed int v3; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1443 ItemGen *v4; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1444 int result; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1445 unsigned int v6; // ebx@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1446 unsigned int v7; // eax@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1447 Texture *v8; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1448 void *v9; // esi@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1449 unsigned int v10; // [sp+0h] [bp-Ch]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1450 Player *v11; // [sp+4h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1451 signed int v12; // [sp+8h] [bp-4h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1452 unsigned int uItemIDa; // [sp+18h] [bp+Ch]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1453
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1454 v11 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1455 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1456 v4 = this->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1457 while ( v4->uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1458 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1459 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1460 ++v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1461 if ( v3 >= 126 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1462 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1463 v12 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1464 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1465 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1466 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1467 v12 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1468 LABEL_5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1469 if ( v12 == -1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1470 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1471 if ( uActiveCharacter )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1472 pPlayers[uActiveCharacter]->PlaySound(15, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1473 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1474 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1475 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1476 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1477 v6 = uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1478 v7 = pIcons_LOD->LoadTexture(pItemsTable->pItems[uItemID].pIconName, TEXTURE_16BIT_PALETTE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1479 v8 = (Texture *)(v7 != -1 ? (int)&pIcons_LOD->pTextures[v7] : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1480 v10 = GetSizeInInventorySlots(v7 != -1 ? pIcons_LOD->pTextures[v7].uTextureWidth : 24);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1481 uItemIDa = GetSizeInInventorySlots(v8->uTextureHeight);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1482 if ( !areWeLoadingTexture )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1483 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1484 v8->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1485 pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1486 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1487 if ( (signed int)uItemIDa > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1488 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1489 v9 = &v11->pInventoryIndices[uSlot];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1490 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1491 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1492 if ( (signed int)v10 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1493 memset32(v9, -1 - uSlot, v10);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1494 v9 = (char *)v9 + 56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1495 --uItemIDa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1496 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1497 while ( uItemIDa );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1498 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1499 result = v12 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1500 v11->pInventoryIndices[uSlot] = v12 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1501 v11->pInventoryItems[v12].uItemID = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1502 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1503 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1504 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1505 // 506128: using guessed type int areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1506
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1507 //----- (00492700) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1508 int Player::HasSkill(unsigned int uSkillType)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1509 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1510 signed int result; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1511
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1512 if ( (signed int)uSkillType >= 37 || this->pActiveSkills[uSkillType] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1513 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1514 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1515 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1516 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1517 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1518 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[67], this->pName);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1519 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1520 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1521 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1522 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1523 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1524
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1525 //----- (00492745) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1526 int Player::WearItem(unsigned int uItemID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1527 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1528 signed int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1529 ItemGen *v3; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1530 int v4; // edi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1531 char *v5; // eax@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1532 char *v6; // esi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1533
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1534 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1535 v3 = this->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1536 while ( v3->uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1537 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1538 ++v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1539 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1540 if ( v2 >= 126 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1541 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1542 v2 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1543 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1544 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1545 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1546 if ( v2 != -1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1547 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1548 v4 = v2 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1549 v5 = (char *)this + 36 * v2;
31
f4450ff595fe BLV loading (looks like) done.
Nomad
parents: 26
diff changeset
1550 v6 = &byte_4E8394[pItemsTable->pItems[uItemID].uEquipType + 4];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1551 *(&this->pEquipment.uOffHand + (unsigned __int8)*v6) = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1552 *((int *)v5 + 133) = uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1553 v5[556] = *v6 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1554 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1555 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1556 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1557
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1558 //----- (004927A8) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1559 int Player::AddItem(unsigned int uSlot, unsigned int uItemID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1560 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1561 signed int v3; // ebx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1562 signed int v4; // edi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1563 unsigned int v5; // esi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1564 unsigned int v7; // [sp-8h] [bp-18h]@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1565 unsigned int v8; // [sp-4h] [bp-14h]@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1566 Player *thisa; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1567
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1568 thisa = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1569 if ( uSlot == -1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1570 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1571 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1572 while ( 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1573 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1574 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1575 v5 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1576 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1577 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1578 if ( CanFitItem(v5, uItemID) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1579 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1580 v8 = uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1581 v7 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1582 return CreateItemInInventory(v7, v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1583 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1584 ++v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1585 v5 += 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1586 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1587 while ( v4 < 9 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1588 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1589 if ( v3 < 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1590 continue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1591 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1592 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1593 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1594 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1595 if ( !CanFitItem(uSlot, uItemID) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1596 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1597 pAudioPlayer->PlaySound(SOUND_27, 0, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1598 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1599 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1600 v8 = uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1601 v7 = uSlot;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1602 return CreateItemInInventory(v7, v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1603 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1604
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1605 //----- (00492826) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1606 int Player::AddItem2(unsigned int uSlot, ItemGen *Src)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1607 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1608 unsigned int v3; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1609 unsigned int v4; // esi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1610 signed int v5; // edi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1611 unsigned int v7; // [sp-8h] [bp-18h]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1612 ItemGen *v8; // [sp-4h] [bp-14h]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1613 Player *thisa; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1614 signed int uSlota; // [sp+18h] [bp+8h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1615
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1616 thisa = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1617 v3 = Src->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1618 pItemsTable->SetSpecialBonus(Src);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1619 if ( uSlot == -1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1620 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1621 uSlota = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1622 while ( 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1623 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1624 v4 = uSlota;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1625 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1626 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1627 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1628 if ( CanFitItem(v4, v3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1629 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1630 v8 = Src;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1631 v7 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1632 return CreateItemInInventory2(v7, v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1633 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1634 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1635 v4 += 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1636 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1637 while ( v5 < 14 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1638 ++uSlota;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1639 if ( uSlota < 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1640 continue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1641 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1642 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1643 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1644 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1645 if ( !CanFitItem(uSlot, v3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1646 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1647 v8 = Src;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1648 v7 = uSlot;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1649 return CreateItemInInventory2(v7, v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1650 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1651
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1652 //----- (0049289C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1653 int Player::CreateItemInInventory2(unsigned int uSlot, ItemGen *Src)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1654 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1655 signed int v3; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1656 ItemGen *v4; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1657 int result; // eax@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1658 unsigned int v6; // eax@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1659 Texture *v7; // esi@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1660 unsigned int v8; // edx@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1661 void *v9; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1662 unsigned int v10; // [sp+4h] [bp-Ch]@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1663 unsigned int v11; // [sp+8h] [bp-8h]@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1664 Player *v12; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1665 unsigned int uSlota; // [sp+18h] [bp+8h]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1666
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1667 v12 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1668 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1669 v4 = this->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1670 while ( v4->uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1671 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1672 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1673 ++v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1674 if ( v3 >= 126 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1675 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1676 v3 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1677 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1678 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1679 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1680 if ( v3 == -1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1681 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1682 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1683 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1684 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1685 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1686 v6 = pIcons_LOD->LoadTexture(
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1687 pItemsTable->pItems[Src->uItemID].pIconName,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1688 TEXTURE_16BIT_PALETTE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1689 v7 = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1690 v10 = GetSizeInInventorySlots(v6 != -1 ? pIcons_LOD->pTextures[v6].uTextureWidth : 24);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1691 v11 = GetSizeInInventorySlots(v7->uTextureHeight);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1692 if ( !areWeLoadingTexture )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1693 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1694 v7->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1695 pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1696 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1697 v8 = uSlot;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1698 if ( (signed int)v11 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1699 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1700 uSlota = v11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1701 v9 = &v12->pInventoryIndices[v8];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1702 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1703 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1704 if ( (signed int)v10 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1705 memset32(v9, -1 - v8, v10);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1706 v9 = (char *)v9 + 56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1707 --uSlota;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1708 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1709 while ( uSlota );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1710 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1711 v12->pInventoryIndices[v8] = v3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1712 memcpy(&v12->pInventoryItems[v3], Src, 0x24u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1713 result = v3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1714 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1715 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1716 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1717 // 506128: using guessed type int areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1718
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1719 //----- (0049298B) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1720 bool Player::_49298B(ItemGen *a2, int a3, int a4)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1721 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1722 Player *v4; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1723 unsigned int v5; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1724 Texture *v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1725 void *v7; // esi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1726 unsigned int v9; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1727 unsigned int a2a; // [sp+18h] [bp+8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1728
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1729 v4 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1730 v5 = pIcons_LOD->LoadTexture(pItemsTable->pItems[a2->uItemID].pIconName, TEXTURE_16BIT_PALETTE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1731 v6 = (Texture *)(v5 != -1 ? (int)&pIcons_LOD->pTextures[v5] : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1732 v9 = GetSizeInInventorySlots(v5 != -1 ? pIcons_LOD->pTextures[v5].uTextureWidth : 24);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1733 a2a = GetSizeInInventorySlots(v6->uTextureHeight);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1734 if ( !areWeLoadingTexture )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1735 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1736 v6->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1737 pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1738 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1739 if ( (signed int)a2a > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1740 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1741 v7 = &v4->pInventoryIndices[a4];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1742 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1743 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1744 if ( (signed int)v9 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1745 memset32(v7, -1 - a4, v9);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1746 v7 = (char *)v7 + 56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1747 --a2a;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1748 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1749 while ( a2a );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1750 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1751 v4->pInventoryIndices[a4] = a3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1752 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1753 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1754 // 506128: using guessed type int areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1755
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1756 //----- (00492A36) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1757 unsigned int Player::RemoveItemAtInventoryIndex(unsigned int uSlot)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1758 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1759 int *pIndices; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1760 ItemGen *v3; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1761 unsigned int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1762 unsigned int v5; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1763 Texture *v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1764 unsigned int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1765 unsigned int v8; // ebp@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1766 void *v9; // edx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1767 unsigned int uSlota; // [sp+14h] [bp+4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1768
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1769 pIndices = &this->pInventoryIndices[uSlot];
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
1770 v3 = (ItemGen *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *pIndices + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1771 v4 = v3->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1772 v3->Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1773 v5 = pIcons_LOD->LoadTexture(pItemsTable->pItems[v4].pIconName, TEXTURE_16BIT_PALETTE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1774 v6 = (Texture *)(v5 != -1 ? (int)&pIcons_LOD->pTextures[v5] : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1775 uSlota = GetSizeInInventorySlots(v5 != -1 ? pIcons_LOD->pTextures[v5].uTextureWidth : 24);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1776 result = GetSizeInInventorySlots(v6->uTextureHeight);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1777 v8 = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1778 if ( !areWeLoadingTexture )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1779 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1780 v6->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1781 result = pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1782 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1783 if ( (signed int)v8 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1784 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1785 v9 = pIndices;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1786 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1787 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1788 if ( (signed int)uSlota > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1789 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1790 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1791 memset(v9, 0, 4 * uSlota);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1792 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1793 v9 = (char *)v9 + 56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1794 --v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1795 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1796 while ( v8 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1797 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1798 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1799 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1800 // 506128: using guessed type int areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1801
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1802
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1803 //----- (00490EEE) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1804 int Player::_490EEE(ItemGen *pItem, int a3, int a4, int a5)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1805 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1806 int v5; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1807 int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1808 unsigned int v7; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1809 unsigned int v8; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1810 signed int v9; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1811 char v10; // zf@14
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1812 unsigned __int8 v11; // zf@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1813 char v12; // sf@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1814 unsigned __int8 v13; // of@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1815 float *v14; // esi@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1816 float v15; // ST04_4@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1817 signed int v16; // eax@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1818 int v17; // edi@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1819 float v18; // ST04_4@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1820 signed int v19; // eax@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1821 float v20; // ST04_4@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1822 signed int v21; // eax@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1823 signed int v22; // eax@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1824 float v23; // ST04_4@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1825 signed int v24; // eax@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1826 int v26; // [sp+10h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1827 Player *v27; // [sp+14h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1828
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1829 v27 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1830 LOBYTE(v5) = GetActualSkillLevel(PLAYER_SKILL_MERCHANT);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1831 v26 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1832 result = 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1833 v7 = pItem->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1834 v8 = pItem->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1835 v9 = pItemsTable->pItems[v8].uEquipType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1836 if ( (a3 != 4 || (signed int)v7 < 740 || (signed int)v7 > 771)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1837 && ((signed int)v7 >= 600 || (signed int)v7 >= 529 && (signed int)v7 <= 599) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1838 return 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1839 if ( a3 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1840 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1841 v13 = __OFSUB__(v9, 2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1842 v11 = v9 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1843 v12 = v9 - 2 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1844 goto LABEL_24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1845 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1846 if ( a3 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1847 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1848 if ( v9 < 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1849 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1850 v13 = __OFSUB__(v9, 9);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1851 v11 = v9 == 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1852 v12 = v9 - 9 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1853 LABEL_24:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1854 if ( !((unsigned __int8)(v12 ^ v13) | v11) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1855 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1856 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1857 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1858 if ( a3 == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1859 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1860 if ( pItemsTable->pItems[v8].uSkillType == 38 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1861 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1862 v10 = v9 == 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1863 goto LABEL_15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1864 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1865 if ( a3 != 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1866 goto LABEL_26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1867 if ( v9 < 13 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1868 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1869 if ( v9 > 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1870 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1871 v10 = v9 == 17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1872 LABEL_15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1873 if ( !v10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1874 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1875 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1876 LABEL_16:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
1877 if ( BYTE1(pItem->uAttributes) & 1 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1878 return 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1879 LABEL_26:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1880 //v14 = &p2DEvents_minus1__20[13 * a4];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1881 v14 = &p2DEvents[a4 - 1].fPriceMultiplier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1882 v15 = *v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1883 v16 = pItem->GetValue();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1884 v17 = _4B8142(v16, v15);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1885 if ( a5 == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1886 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1887 v23 = *v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1888 v24 = pItem->GetValue();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1889 v17 = v27->_4B8102(v24, v23);
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
1890 if ( !(pItem->uAttributes & 2) )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1891 goto LABEL_39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1892 goto LABEL_38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1893 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1894 if ( a5 == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1895 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1896 v22 = v27->_4B8179(*v14);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1897 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1898 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1899 if ( a5 == 5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1900 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1901 v20 = *v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1902 v21 = pItem->GetValue();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1903 v22 = v27->_4B81C3(v21, v20);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1904 LABEL_35:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1905 v17 = v22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1906 goto LABEL_39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1907 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1908 if ( a5 != 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1909 goto LABEL_39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1910 v18 = *v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1911 v19 = pItem->GetValue();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1912 v17 = v27->_4B8102(v19, v18) / 2;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
1913 if ( pItem->uAttributes & 2 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1914 v17 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1915 if ( v17 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1916 goto LABEL_39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1917 LABEL_38:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1918 v17 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1919 LABEL_39:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1920 if ( v26 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1921 result = (v17 == pItem->GetValue()) + 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1922 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1923 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1924 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1925 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1926
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1927
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1928 //----- (0049107D) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1929 int Player::GetBodybuilding()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1930 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1931 char v1; // al@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1932 int v2; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1933 int v4; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1934 signed int v6; // [sp-4h] [bp-4h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1935
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1936 v1 = GetActualSkillLevel(PLAYER_SKILL_BODYBUILDING);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1937 v2 = v1 & 0x3F;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
1938 if ( v1 & 0x100 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1939 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1940 v6 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1941 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1942 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1943 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1944 if ( v1 >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1945 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1946 v4 = ((v1 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1947 return v2 * v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1948 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1949 v6 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1950 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1951 v4 = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1952 return v2 * v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1953 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1954
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1955 //----- (004910A8) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1956 int Player::GetMediatation()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1957 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1958 char v1; // al@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1959 int v2; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1960 int v4; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1961 signed int v6; // [sp-4h] [bp-4h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1962
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1963 v1 = GetActualSkillLevel(PLAYER_SKILL_MEDITATION);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1964 v2 = v1 & 0x3F;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
1965 if ( v1 & 0x100 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1966 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1967 v6 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1968 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1969 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1970 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1971 if ( v1 >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1972 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1973 v4 = ((v1 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1974 return v2 * v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1975 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1976 v6 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1977 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1978 v4 = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1979 return v2 * v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1980 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1981
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1982 //----- (004910D3) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1983 int Player::CanIdentify(ItemGen *pItem)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1984 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1985 unsigned __int16 v2; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1986 unsigned __int16 v3; // bx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1987 int uSkillMult; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1988 int v5; // edi@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1989 signed int v6; // ebp@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1990 char *v7; // esi@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1991 signed int uSkillMultiplier; // [sp-4h] [bp-14h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1992
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1993 LOBYTE(v2) = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_ITEM_ID);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1994 v3 = v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1995 if ( HIBYTE(v2) & 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1996 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1997 uSkillMultiplier = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1998 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
1999 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2000 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2001 if ( (v2 & 0x80u) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2002 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2003 uSkillMult = ((v2 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2004 goto LABEL_7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2005 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2006 uSkillMultiplier = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2007 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2008 uSkillMult = uSkillMultiplier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2009 LABEL_7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2010 v5 = uSkillMult * (v3 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2011 v6 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2012 v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2013 if ( CheckHiredNPCSpeciality(4u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2014 goto LABEL_15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2015 if ( (signed int)SkillToMastery(v3) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2016 v6 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2017 if ( v5 >= (unsigned __int8)v7[46] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2018 LABEL_15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2019 v6 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2020 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2021 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2022
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2023 //----- (00491151) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2024 int Player::CanRepair(ItemGen *a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2025 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2026 unsigned __int16 v2; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2027 unsigned __int16 v3; // bx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2028 int v4; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2029 int v5; // edi@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2030 signed int v6; // ebp@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2031 char v8; // al@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2032 signed int v10; // [sp-4h] [bp-14h]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2033
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2034 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_REPAIR);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2035 v3 = v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2036 if ( HIBYTE(v2) & 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2037 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2038 v10 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2039 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2040 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2041 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2042 if ( (v2 & 0x80u) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2043 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2044 v4 = ((v2 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2045 goto LABEL_7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2046 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2047 v10 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2048 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2049 v4 = v10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2050 LABEL_7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2051 v5 = v4 * (v3 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2052 v6 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2053 auto v7 = &pItemsTable->pItems[a2->uItemID];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2054 if (CheckHiredNPCSpeciality(1) && v7->uEquipType <= 2 ||
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2055 CheckHiredNPCSpeciality(2) && v7->uEquipType >= 3 && v7->uEquipType <= 9 ||
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2056 CheckHiredNPCSpeciality(3) && v7->uEquipType >= 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2057 return true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2058 if ( (signed int)SkillToMastery(v3) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2059 return true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2060 if ( v5 >= *((char *)(v7 + 1) + 2) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2061 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2062 __debugbreak(); // really odd
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2063 return true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2064 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2065 return false;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2066 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2067
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2068 //----- (004911F3) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2069 int Player::GetMerchant()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2070 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2071 Player *v1; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2072 unsigned __int16 v2; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2073 unsigned __int16 v3; // bx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2074 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2075 int v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2076 int v7; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2077 int v8; // ecx@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2078 signed int v9; // [sp-4h] [bp-10h]@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2079
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2080 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2081 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_MERCHANT);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2082 v3 = v1->pActiveSkills[22];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2083 v4 = v2 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2084 v5 = v1->pActiveSkills[22] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2085 if ( (signed int)SkillToMastery(v2) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2086 return 10000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2087 v7 = GetPartyReputation();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2088 if ( !v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2089 return -v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2090 if ( HIBYTE(v3) & 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2091 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2092 v9 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2093 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2094 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2095 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2096 if ( (v3 & 0x80u) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2097 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2098 v8 = ((v3 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2099 return v5 * (v8 - 1) - v7 + v4 + 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2100 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2101 v9 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2102 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2103 v8 = v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2104 return v5 * (v8 - 1) - v7 + v4 + 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2105 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2106
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2107 //----- (0049125A) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2108 int Player::GetPerception()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2109 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2110 Player *v1; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2111 unsigned __int16 v2; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2112 unsigned __int16 v3; // bx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2113 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2114 int v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2115 int v7; // eax@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2116 signed int v8; // [sp-4h] [bp-10h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2117
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2118 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2119 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_PERCEPTION);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2120 v3 = v1->pActiveSkills[26];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2121 v4 = v2 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2122 v5 = v1->pActiveSkills[26] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2123 if ( (signed int)SkillToMastery(v2) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2124 return 10000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2125 if ( HIBYTE(v3) & 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2126 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2127 v8 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2128 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2129 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2130 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2131 if ( (v3 & 0x80u) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2132 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2133 v7 = ((v3 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2134 return v4 + v5 * (v7 - 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2135 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2136 v8 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2137 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2138 v7 = v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2139 return v4 + v5 * (v7 - 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2140 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2141
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2142 //----- (004912B0) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2143 int Player::GetDisarmTrap()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2144 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2145 Player *v1; // ebp@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2146 unsigned __int16 v2; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2147 unsigned __int16 v3; // bx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2148 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2149 int v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2150 int v7; // eax@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2151 signed int v8; // [sp-4h] [bp-14h]@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2152
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2153 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2154 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_TRAP_DISARM);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2155 v3 = v1->pActiveSkills[29];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2156 v4 = v2 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2157 v5 = v1->pActiveSkills[29] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2158 if ( (signed int)SkillToMastery(v2) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2159 return 10000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2160 if ( HasEnchantedItemEquipped(35) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2161 v4 *= 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2162 if ( HIBYTE(v3) & 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2163 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2164 v8 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2165 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2166 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2167 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2168 if ( (v3 & 0x80u) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2169 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2170 v7 = ((v3 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2171 return v4 + v5 * (v7 - 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2172 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2173 v8 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2174 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2175 v7 = v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2176 return v4 + v5 * (v7 - 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2177 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2178
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2179 //----- (00491317) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2180 char Player::GetLearningPercent()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2181 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2182 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2183 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2184 unsigned __int16 v3; // bx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2185 int v4; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2186 int v5; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2187 signed int v7; // [sp-4h] [bp-Ch]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2188
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2189 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2190 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_LEARNING);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2191 v3 = v1->pActiveSkills[36];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2192 v4 = v2 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2193 if ( v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2194 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2195 if ( HIBYTE(v3) & 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2196 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2197 v7 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2198 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2199 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2200 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2201 if ( (v3 & 0x80u) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2202 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2203 v5 = ((v3 & 0x40) != 0) + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2204 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2205 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2206 v7 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2207 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2208 v5 = v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2209 LABEL_8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2210 v2 = (v1->pActiveSkills[36] & 0x3F) * (v5 - 1) + v4 + 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2211 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2212 return v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2213 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2214
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2215 //----- (0048C6AF) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2216 Player::Player()
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2217 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2218 memset(&pEquipment, 0, sizeof(PlayerEquipment));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2219 memset(pInventoryIndices, 0, 126 * sizeof(int));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2220 for (uint i = 0; i < 126; ++i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2221 pInventoryItems[i].Reset();
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2222 for (uint i = 0; i < 12; ++i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2223 pEquippedItems[i].Reset();
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2224
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2225
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2226 for (uint i = 0; i < 24; ++i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2227 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2228 pPlayerBuffs[i].uSkill = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2229 pPlayerBuffs[i].uSkill = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2230 pPlayerBuffs[i].uPower = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2231 pPlayerBuffs[i].uExpireTime = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2232 pPlayerBuffs[i].uCaster = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2233 pPlayerBuffs[i].uFlags = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2234 }
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2235
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2236 pName[0] = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2237 uFace = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2238 uVoiceID = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2239 memset(pConditions, 0, 20 * sizeof(__int64));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2240
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2241 field_BB = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2242
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2243 uMight = uMightBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2244 uIntelligence = uIntelligenceBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2245 uWillpower = uWillpowerBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2246 uEndurance = uEnduranceBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2247 uSpeed = uSpeedBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2248 uAccuracy = uAccuracyBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2249 uLuck = uLuckBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2250 uLevel = sLevelModifier = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2251 sAgeModifier = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2252
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2253 memset(field_1F5, 0, 30);
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2254
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2255 sResFireBase = sResFireBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2256 sResAirBase = sResAirBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2257 sResWaterBase = sResWaterBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2258 sResEarthBase = sResEarthBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2259 sResMagicBase = sResMagicBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2260 sResSpiritBase = sResSpiritBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2261 sResMindBase = sResMindBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2262 sResBodyBase = sResBodyBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2263 sResLightBase = sResLightBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2264 sResDarkBase = sResDarkBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2265
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2266 uTimeToRecovery = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2267
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2268 uSkillPoints = 0;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2269
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2270 sHealth = 0;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2271 uFullHealthBonus = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2272 _health_related = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2273
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2274 sMana = 0;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2275 uFullManaBonus = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2276 _mana_related = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2277
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2278 uQuickSpell = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2279 memset(pInstalledBeacons, 0, 5 * sizeof(LloydBeacon));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2280
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2281 _some_attack_bonus = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2282 field_1A91 = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2283 _melee_dmg_bonus = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2284 field_1A93 = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2285 _ranged_atk_bonus = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2286 field_1A95 = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2287 _ranged_dmg_bonus = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2288 field_1A97 = 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2289
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2290 uExpressionID = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2291 uExpressionTimePassed = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2292 uExpressionTimeLength = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2293
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2294 uNumDivineInterventionCastsThisDay = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2295 uNumArmageddonCasts = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2296 uNumFireSpikeCasts = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2297
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2298 memset(field_1988, 0, 49 * sizeof(int));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2299 memset(field_1A50, 0, 64 * sizeof(char));
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2300
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2301 field_E0 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2302 field_E4 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2303 field_E8 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2304 field_EC = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2305 field_F0 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2306 field_F4 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2307 field_F8 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2308 field_FC = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2309 field_100 = 0;
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
2310 field_104 = 0;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2311 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2312
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2313 //----- (0048C6F6) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2314 bool Party::AddItem(ItemGen *pItem)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2315 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2316 unsigned int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2317 unsigned int v3; // ecx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2318 signed int v4; // edx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2319 char *v5; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2320 unsigned int v6; // eax@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2321 Texture *v7; // ebx@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2322 signed int v8; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2323 Player *v9; // edi@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2324 int v10; // eax@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2325 bool result; // eax@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2326 std::string v12; // [sp-18h] [bp-40h]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2327 const char *v13; // [sp-8h] [bp-30h]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2328 int v14; // [sp-4h] [bp-2Ch]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2329 int v15; // [sp+Ch] [bp-1Ch]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2330 int v16; // [sp+10h] [bp-18h]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2331 int v17; // [sp+14h] [bp-14h]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2332 int v18; // [sp+18h] [bp-10h]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2333 Player *v19; // [sp+1Ch] [bp-Ch]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2334 Party *v20; // [sp+20h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2335 int v21; // [sp+24h] [bp-4h]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2336
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2337 auto thos = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2338
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2339 v20 = thos;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2340 v2 = pItem->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2341 if ( !BYTE2(pItemsTable->pItems[v2 + 1].uItemID) )
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2342 pItem->uAttributes |= 1u;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2343 v15 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2344 v16 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2345 v18 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2346 v17 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2347 if ( uActiveCharacter )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2348 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2349 v3 = uActiveCharacter - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2350 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2351 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2352 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2353 *(&v15 + v4++) = v3++;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2354 if ( (signed int)v3 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2355 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2356 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2357 while ( v4 < 4 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2358 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2359 v5 = pItemsTable->pItems[v2].pIconName;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2360 if ( v5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2361 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2362 v6 = pIcons_LOD->LoadTexture(v5, TEXTURE_16BIT_PALETTE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2363 v7 = (Texture *)(v6 != -1 ? (int)&pIcons_LOD->pTextures[v6] : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2364 v21 = areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2365 v8 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2366 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2367 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2368 v9 = &v20->pPlayers[*(&v15 + v8)];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2369 v19 = &v20->pPlayers[*(&v15 + v8)];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2370 v10 = v19->AddItem(0xFFFFFFFFu, pItem->uItemID);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2371 if ( v10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2372 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2373 ++v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2374 if ( v8 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2375 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2376 if ( !v21 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2377 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2378 v7->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2379 pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2380 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2381 goto LABEL_15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2382 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2383 }
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2384 memcpy(&v9->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v10 + 5], pItem, 0x24u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2385 pItem->Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2386 pAudioPlayer->PlaySound(SOUND_GoldReceived, 0, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2387 v19->PlaySound(60, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2388 if ( !v21 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2389 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2390 v7->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2391 pIcons_LOD->_40F9C5();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2392 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2393 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2394 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2395 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2396 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2397 MessageBoxW(nullptr, L"Invalid picture_name detected ::addItem()", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Party.cpp:795", 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2398 LABEL_15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2399 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2400 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2401 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2402 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2403 // 506128: using guessed type int areWeLoadingTexture;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2404
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2405 //----- (0048C855) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2406 int Player::GetBaseStrength()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2407 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2408 return this->uMight + GetItemsBonus(CHARACTER_ATTRIBUTE_STRENGTH, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2409 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2410
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2411 //----- (0048C86C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2412 int Player::GetBaseIntelligence()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2413 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2414 return this->uIntelligence + GetItemsBonus(CHARACTER_ATTRIBUTE_INTELLIGENCE, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2415 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2416
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2417 //----- (0048C883) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2418 int Player::GetBaseWillpower()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2419 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2420 return this->uWillpower + GetItemsBonus(CHARACTER_ATTRIBUTE_WILLPOWER, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2421 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2422
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2423 //----- (0048C89A) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2424 int Player::GetBaseEndurance()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2425 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2426 return this->uEndurance + GetItemsBonus(CHARACTER_ATTRIBUTE_ENDURANCE, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2427 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2428
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2429 //----- (0048C8B1) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2430 int Player::GetBaseAccuracy()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2431 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2432 return this->uAccuracy + GetItemsBonus(CHARACTER_ATTRIBUTE_ACCURACY, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2433 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2434
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2435 //----- (0048C8C8) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2436 int Player::GetBaseSpeed()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2437 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2438 return this->uSpeed + GetItemsBonus(CHARACTER_ATTRIBUTE_SPEED, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2439 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2440
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2441 //----- (0048C8DF) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2442 int Player::GetBaseLuck()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2443 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2444 return this->uLuck + GetItemsBonus(CHARACTER_ATTRIBUTE_LUCK, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2445 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2446
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2447 //----- (0048C8F6) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2448 int Player::GetBaseLevel()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2449 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2450 return this->uLevel + GetItemsBonus(CHARACTER_ATTRIBUTE_LEVEL, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2451 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2452
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2453 //----- (0048C90D) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2454 int Player::GetActualLevel()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2455 {
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2456 return uLevel + sLevelModifier +
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2457 GetMagicalBonus(CHARACTER_ATTRIBUTE_LEVEL) +
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2458 GetItemsBonus(CHARACTER_ATTRIBUTE_LEVEL, 0);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2459 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2460
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2461 //----- (0048C93C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2462 int Player::GetActualMight()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2463 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2464 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2465 unsigned int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2466 signed int v3; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2467 signed int v4; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2468 int v5; // edi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2469 int v6; // ST14_4@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2470
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2471 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2472 v2 = this->sAgeModifier + GetBaseAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2473 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2474 while ( (signed int)v2 >= (signed int)pAgeingTable[v3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2475 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2476 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2477 if ( v3 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2478 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2479 v4 = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2480 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2481 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2482 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2483 v4 = pAgeingStrengthMultiplier[v3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2484 LABEL_5:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2485 v5 = pConditionStrengthMultiplier[GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2486 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_STRENGTH, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2487 return v5 * v4 * v1->uMight / 100 / 100 + GetMagicalBonus((CHARACTER_ATTRIBUTE_TYPE)0) + v6 + v1->uMightBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2488 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2489
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2490 //----- (0048C9C2) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2491 int Player::GetActualIntelligence()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2492 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2493 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2494 unsigned int sAge; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2495 signed int uAgeLevel; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2496 signed int v4; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2497 int v5; // edi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2498 int v6; // ebp@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2499
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2500 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2501 sAge = this->sAgeModifier + GetBaseAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2502 uAgeLevel = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2503 while ( (signed int)sAge >= (signed int)pAgeingTable[uAgeLevel] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2504 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2505 ++uAgeLevel;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2506 if ( uAgeLevel >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2507 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2508 v4 = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2509 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2510 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2511 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2512 v4 = pAgeingIntelligenceMultiplier[uAgeLevel];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2513 LABEL_5:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2514 v5 = pConditionIntelligenceMultiplier[GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2515 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_INTELLIGENCE, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2516 return v5 * v4 * v1->uIntelligence / 100 / 100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2517 + GetMagicalBonus(CHARACTER_ATTRIBUTE_INTELLIGENCE)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2518 + v6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2519 + v1->uIntelligenceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2520 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2521
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2522 //----- (0048CA3F) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2523 int Player::GetActualWillpower()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2524 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2525 int v5; // edi@5
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2526
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2527 uint uActualAge = GetBaseAge() + sAgeModifier;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2528 uint uAgeingMultiplier = 100;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2529 for (uint i = 0; i < 4; ++i)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2530 if (uActualAge >= pAgeingTable[i])
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2531 uAgeingMultiplier = pAgeingWillpowerMultiplier[i];
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2532 else break;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2533
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2534 v5 = pConditionWillpowerMultiplier[GetMajorConditionIdx()];
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2535 return v5 * uAgeingMultiplier * uWillpower / 100 / 100
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2536 + GetMagicalBonus(CHARACTER_ATTRIBUTE_WILLPOWER)
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2537 + GetItemsBonus(CHARACTER_ATTRIBUTE_WILLPOWER, 0)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
2538 + uWillpowerBonus;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2539 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2540
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2541 //----- (0048CABC) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2542 int Player::GetActualEndurance()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2543 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2544 int v6; // ebp@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2545
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2546 uint uActualAge = GetBaseAge() + sAgeModifier;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2547 uint uAgeingMultiplier = 100;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2548 for (uint i = 0; i < 4; ++i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2549 if (uActualAge >= pAgeingTable[i])
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2550 uAgeingMultiplier = pAgeingEnduranceMultiplier[i];
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2551 else break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2552
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2553 auto uConditionMult = pConditionEnduranceMultiplier[GetMajorConditionIdx()];
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2554 auto uItemBonus = GetItemsBonus(CHARACTER_ATTRIBUTE_ENDURANCE, 0);
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2555 return uConditionMult * uAgeingMultiplier * uEndurance / 100 / 100
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2556 + GetMagicalBonus(CHARACTER_ATTRIBUTE_ENDURANCE)
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2557 + uItemBonus
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2558 + uEnduranceBonus;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2559 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2560
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2561 //----- (0048CB39) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2562 int Player::GetActualAccuracy()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2563 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2564 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2565 unsigned int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2566 signed int v3; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2567 signed int v4; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2568 int v5; // edi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2569 int v6; // ebp@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2570
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2571 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2572 v2 = this->sAgeModifier + GetBaseAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2573 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2574 while ( (signed int)v2 >= (signed int)pAgeingTable[v3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2575 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2576 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2577 if ( v3 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2578 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2579 v4 = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2580 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2581 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2582 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2583 v4 = pAgeingAccuracyMultiplier[v3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2584 LABEL_5:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2585 v5 = pConditionAccuracyMultiplier[GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2586 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_ACCURACY, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2587 return v5 * v4 * v1->uAccuracy / 100 / 100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2588 + GetMagicalBonus(CHARACTER_ATTRIBUTE_ACCURACY)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2589 + v6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2590 + v1->uAccuracyBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2591 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2592
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2593 //----- (0048CBB6) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2594 int Player::GetActualSpeed()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2595 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2596 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2597 unsigned int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2598 signed int v3; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2599 signed int v4; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2600 int v5; // edi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2601 int v6; // ebp@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2602
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2603 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2604 v2 = this->sAgeModifier + GetBaseAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2605 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2606 while ( (signed int)v2 >= (signed int)pAgeingTable[v3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2607 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2608 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2609 if ( v3 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2610 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2611 v4 = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2612 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2613 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2614 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2615 v4 = pAgeingSpeedMultiplier[v3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2616 LABEL_5:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2617 v5 = pConditionSpeedMultiplier[GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2618 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_SPEED, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2619 return v5 * v4 * v1->uSpeed / 100 / 100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2620 + GetMagicalBonus(CHARACTER_ATTRIBUTE_SPEED)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2621 + v6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2622 + v1->uSpeedBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2623 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2624
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2625 //----- (0048CC33) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2626 int Player::GetActualLuck()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2627 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2628 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2629 unsigned int v2; // eax@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2630 signed int v3; // ecx@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2631 signed int v4; // ebx@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2632 int v5; // edi@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2633 int v6; // ebp@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2634 signed int v8; // [sp+10h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2635
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2636 v8 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2637 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2638 if ( CheckHiredNPCSpeciality(0x1Bu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2639 v8 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2640 if ( CheckHiredNPCSpeciality(0x1Cu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2641 v8 += 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2642 if ( CheckHiredNPCSpeciality(0x2Fu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2643 v8 += 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2644 v2 = v1->sAgeModifier + GetBaseAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2645 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2646 while ( (signed int)v2 >= (signed int)pAgeingTable[v3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2647 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2648 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2649 if ( v3 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2650 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2651 v4 = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2652 goto LABEL_11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2653 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2654 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2655 v4 = pAgeingLuckMultiplier[v3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2656 LABEL_11:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2657 v5 = pConditionLuckMultiplier[GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2658 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_LUCK, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2659 return GetMagicalBonus(CHARACTER_ATTRIBUTE_LUCK)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2660 + v6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2661 + v8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2662 + v5 * v4 * v1->uLuck / 100 / 100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2663 + v1->uLuckBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2664 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2665
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2666 //----- (0048CCF5) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2667 int Player::GetActualAttack(int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2668 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2669 Player *v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2670 int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2671 int v4; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2672 int v5; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2673 int v6; // ebp@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2674
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2675 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2676 v3 = GetActualAccuracy();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2677 v4 = _48EA1B_get_static_effect(v3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2678 v5 = GetSkillBonus(CHARACTER_ATTRIBUTE_ATTACK);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2679 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_ATTACK, a2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2680 return v4 + v5 + v6 + GetMagicalBonus(CHARACTER_ATTRIBUTE_ATTACK) + v2->_some_attack_bonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2681 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2682
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2683 //----- (0048CD45) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2684 int Player::GetMeleeDamageMinimal()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2685 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2686 Player *v1; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2687 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2688 int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2689 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2690 int v5; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2691 int v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2692 signed int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2693
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2694 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2695 v2 = GetActualMight();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2696 v3 = _48EA1B_get_static_effect(v2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2697 v4 = GetItemsBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_MIN, 0) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2698 v5 = GetSkillBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS) + v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2699 v6 = v1->_melee_dmg_bonus + GetMagicalBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS) + v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2700 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2701 if ( v6 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2702 result = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2703 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2704 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2705
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2706 //----- (0048CD90) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2707 int Player::GetMeleeDamageMaximal()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2708 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2709 Player *v1; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2710 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2711 int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2712 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2713 int v5; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2714 int v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2715 signed int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2716
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2717 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2718 v2 = GetActualMight();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2719 v3 = _48EA1B_get_static_effect(v2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2720 v4 = GetItemsBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_MAX, 0) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2721 v5 = GetSkillBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS) + v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2722 v6 = v1->_melee_dmg_bonus + GetMagicalBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS) + v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2723 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2724 if ( v6 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2725 result = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2726 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2727 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2728
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2729 //----- (0048CDDB) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2730 int Player::CalculateMeleeDamageTo(int a2, int a3, unsigned int uTargetActorID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2731 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2732 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2733 Player *v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2734 ItemGen *v6; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2735 unsigned int v7; // ebp@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2736 unsigned int v8; // esi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2737 int v9; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2738 int v10; // eax@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2739 char v11; // zf@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2740 int v12; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2741 int v13; // eax@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2742 enum MONSTER_SUPERTYPE v14; // edx@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2743 ItemGen *v15; // ebx@35
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2744 unsigned int v16; // ebp@35
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2745 unsigned int v17; // esi@35
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2746 int v18; // edx@38
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2747 int v19; // eax@40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2748 enum MONSTER_SUPERTYPE v20; // edx@53
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2749 int v21; // esi@62
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2750 int v22; // eax@63
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2751 int v23; // ebx@63
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2752 int v24; // ebx@63
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2753 signed int result; // eax@64
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2754 MONSTER_SUPERTYPE v26; // [sp-4h] [bp-24h]@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2755 MONSTER_SUPERTYPE v27; // [sp-4h] [bp-24h]@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2756 int v28; // [sp+10h] [bp-10h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2757 int v29; // [sp+10h] [bp-10h]@33
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2758 signed int v30; // [sp+14h] [bp-Ch]@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2759 signed int v31; // [sp+14h] [bp-Ch]@36
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2760 int v32; // [sp+18h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2761 int v33; // [sp+18h] [bp-8h]@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2762 int v34; // [sp+1Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2763 int v35; // [sp+28h] [bp+8h]@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2764
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2765 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2766 v5 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2767 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2768 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2769 v28 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2770 if ( IsUnarmed() == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2771 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2772 v32 = rand() % 3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2773 LABEL_61:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2774 v34 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2775 goto LABEL_62;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2776 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2777 if ( HasItemEquipped(EQUIP_TWO_HANDED) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2778 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2779 v6 = (ItemGen *)&v5->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v5->pEquipment.uMainHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2780 v7 = v6->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2781 v8 = v6->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2782 v9 = pItemsTable->pItems[v8].uDamageDice;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2783 if ( pItemsTable->pItems[v8].uSkillType == PLAYER_SKILL_SPEAR && !v5->pEquipment.uOffHand )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2784 ++v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2785 v30 = pItemsTable->pItems[v8].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2786 if ( v9 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2787 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2788 v33 = v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2789 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2790 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2791 v10 = rand();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2792 v11 = v33-- == 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2793 v28 += v10 % v30 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2794 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2795 while ( !v11 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2796 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2797 v12 = pItemsTable->pItems[v8].uDamageMod + v28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2798 if ( !uTargetActorID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2799 goto LABEL_28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2800 v13 = v6->uAdditionalValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2801 if ( v13 == 64 || v7 == 507 || v7 == 508 || v7 == 527 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2802 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2803 v14 = (MONSTER_SUPERTYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2804 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2805 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2806 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2807 if ( v13 == 39 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2808 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2809 v26 = MONSTER_SUPERTYPE_KREEGAN;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2810 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2811 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2812 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2813 if ( v13 == 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2814 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2815 v26 = MONSTER_SUPERTYPE_DRAGON;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2816 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2817 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2818 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2819 if ( v13 == 63 || v7 == 517 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2820 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2821 v26 = MONSTER_SUPERTYPE_ELF;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2822 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2823 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2824 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2825 if ( v13 != 65 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2826 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2827 LABEL_28:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2828 if ( (signed int)SkillToMastery(v5->pActiveSkills[2]) >= 3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2829 && pItemsTable->pItems[v6->uItemID].uSkillType == 2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2830 && rand() % 100 < 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2831 v12 *= 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2832 v32 = v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2833 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2834 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2835 v26 = MONSTER_SUPERTYPE_TITAN;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2836 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2837 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2838 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2839 v14 = v26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2840 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2841 if ( MonsterStats::BelongsToSupertype(uTargetActorID, v14) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2842 v12 *= 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2843 goto LABEL_28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2844 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2845 LABEL_33:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2846 v29 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2847 if ( !a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2848 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2849 if ( v5->HasItemEquipped((ITEM_EQUIP_TYPE)0) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2850 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2851 v15 = (ItemGen *)&v5->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v5->pEquipment.uOffHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2852 v16 = v15->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2853 v17 = v15->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2854 if ( pItemsTable->pItems[v17].uEquipType != 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2855 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2856 v31 = pItemsTable->pItems[v17].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2857 if ( (signed int)pItemsTable->pItems[v17].uDamageDice > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2858 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2859 v35 = pItemsTable->pItems[v17].uDamageDice;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2860 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2861 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2862 v18 = rand() % v31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2863 v11 = v35-- == 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2864 v29 += v18 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2865 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2866 while ( !v11 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2867 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2868 v4 = pItemsTable->pItems[v17].uDamageMod + v29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2869 if ( !uTargetActorID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2870 goto LABEL_57;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2871 v19 = v15->uAdditionalValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2872 if ( v19 == 64 || v16 == 507 || v16 == 508 || v16 == 527 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2873 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2874 v20 = (MONSTER_SUPERTYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2875 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2876 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2877 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2878 if ( v19 == 39 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2879 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2880 v27 = MONSTER_SUPERTYPE_KREEGAN;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2881 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2882 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2883 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2884 if ( v19 == 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2885 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2886 v27 = MONSTER_SUPERTYPE_DRAGON;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2887 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2888 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2889 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2890 if ( v19 == 63 || v16 == 517 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2891 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2892 v27 = MONSTER_SUPERTYPE_ELF;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2893 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2894 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2895 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2896 if ( v19 != 65 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2897 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2898 LABEL_57:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2899 if ( pItemsTable->pItems[v15->uItemID].uSkillType == PLAYER_SKILL_DAGGER
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2900 && SkillToMastery(v5->pActiveSkills[2] >= 3u)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2901 && rand() % 100 < 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2902 v4 *= 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2903 goto LABEL_61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2904 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2905 v27 = MONSTER_SUPERTYPE_TITAN;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2906 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2907 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2908 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2909 v20 = v27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2910 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2911 if ( MonsterStats::BelongsToSupertype(uTargetActorID, v20) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2912 v4 *= 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2913 goto LABEL_57;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2914 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2915 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2916 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2917 LABEL_62:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2918 v21 = v32 + v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2919 if ( !a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2920 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2921 v22 = GetActualMight();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2922 v23 = _48EA1B_get_static_effect(v22);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2923 v24 = GetSkillBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS) + v23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2924 v21 += v5->_melee_dmg_bonus + GetMagicalBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS) + v24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2925 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2926 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2927 if ( v21 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2928 result = v21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2929 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2930 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2931
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2932 //----- (0048D0B9) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2933 int Player::GetRangedAttack()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2934 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2935 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2936 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2937 int v3; // edi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2938 int v4; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2939 int v5; // edi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2940 int v6; // edi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2941 int v7; // edi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2942
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2943 v1 = this;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
2944 v2 = *(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * this->pEquipment.uMainHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2945 if ( v2 < 64 || v2 > 65 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2946 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2947 v4 = GetActualAccuracy();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2948 v5 = _48EA1B_get_static_effect(v4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2949 v6 = GetItemsBonus(CHARACTER_ATTRIBUTE_RANGED_ATTACK, 0) + v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2950 v7 = GetSkillBonus(CHARACTER_ATTRIBUTE_RANGED_ATTACK) + v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2951 v3 = v1->_ranged_atk_bonus + GetMagicalBonus(CHARACTER_ATTRIBUTE_RANGED_ATTACK) + v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2952 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2953 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2954 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2955 v3 = GetActualAttack(1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2956 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2957 return v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2958 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2959
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2960 //----- (0048D124) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2961 int Player::GetRangedDamageMin()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2962 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2963 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2964 int v2; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2965 int v3; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2966 int v4; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2967 unsigned __int16 v5; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2968 int result; // eax@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2969
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2970 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2971 v2 = GetItemsBonus(CHARACTER_ATTRIBUTE_RANGED_DAMAGE_MIN, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2972 v3 = GetSkillBonus(CHARACTER_ATTRIBUTE_RANGED_DAMAGE_BONUS) + v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2973 v4 = v1->_ranged_dmg_bonus + GetMagicalBonus(CHARACTER_ATTRIBUTE_RANGED_DAMAGE_BONUS) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2974 v5 = v1->pActiveSkills[5];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2975 if ( v5 && (signed int)SkillToMastery(v5) >= 4 && HasItemEquipped(EQUIP_BOW) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2976 v4 += v1->pActiveSkills[5] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2977 if ( v4 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2978 result = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2979 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2980 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2981 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2982 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2983
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2984 //----- (0048D191) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2985 int Player::GetRangedDamageMax()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2986 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2987 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2988 int v2; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2989 int v3; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2990 int v4; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2991 unsigned __int16 v5; // ax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2992 int result; // eax@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2993
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2994 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2995 v2 = GetItemsBonus(CHARACTER_ATTRIBUTE_RANGED_DAMAGE_MAX, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2996 v3 = GetSkillBonus(CHARACTER_ATTRIBUTE_RANGED_DAMAGE_BONUS) + v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2997 v4 = v1->_ranged_dmg_bonus + GetMagicalBonus(CHARACTER_ATTRIBUTE_RANGED_DAMAGE_BONUS) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2998 v5 = v1->pActiveSkills[5];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
2999 if ( v5 && (signed int)SkillToMastery(v5) >= 4 && HasItemEquipped(EQUIP_BOW) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3000 v4 += v1->pActiveSkills[5] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3001 if ( v4 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3002 result = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3003 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3004 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3005 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3006 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3007
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3008 //----- (0048D1FE) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3009 bool Player::CalculateRangedDamageTo(int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3010 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3011 Player *v2; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3012 bool result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3013 ItemGen *v4; // ebx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3014 unsigned int v5; // edi@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3015 unsigned int v6; // esi@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3016 int v7; // edx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3017 char v8; // zf@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3018 int v9; // esi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3019 int v10; // ebx@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3020 enum MONSTER_SUPERTYPE v11; // edx@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3021 unsigned __int16 v12; // ax@19
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3022 MONSTER_SUPERTYPE v13; // [sp-Ch] [bp-20h]@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3023 Player *v14; // [sp+4h] [bp-10h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3024 signed int v15; // [sp+8h] [bp-Ch]@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3025 int v16; // [sp+Ch] [bp-8h]@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3026 int v17; // [sp+10h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3027
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3028 v17 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3029 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3030 v14 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3031 result = HasItemEquipped(EQUIP_BOW);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3032 if ( !result )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3033 return result;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3034 v4 = (ItemGen *)&v2->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v2->pEquipment.uBow + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3035 v5 = v4->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3036 v6 = v4->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3037 v15 = pItemsTable->pItems[v6].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3038 if ( (signed int)pItemsTable->pItems[v6].uDamageDice > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3039 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3040 v16 = pItemsTable->pItems[v6].uDamageDice;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3041 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3042 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3043 v7 = rand() % v15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3044 v8 = v16-- == 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3045 v17 += v7 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3046 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3047 while ( !v8 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3048 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3049 v9 = pItemsTable->pItems[v6].uDamageMod + v17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3050 if ( a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3051 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3052 v10 = v4->uAdditionalValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3053 if ( v10 == 64 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3054 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3055 v11 = (MONSTER_SUPERTYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3056 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3057 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3058 if ( v10 == 39 || v5 == 508 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3059 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3060 v13 = MONSTER_SUPERTYPE_KREEGAN;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3061 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3062 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3063 if ( v10 == 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3064 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3065 v13 = MONSTER_SUPERTYPE_DRAGON;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3066 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3067 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3068 if ( v10 == 63 || v5 == 517 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3069 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3070 v13 = MONSTER_SUPERTYPE_ELF;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3071 LABEL_16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3072 v11 = v13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3073 LABEL_17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3074 if ( MonsterStats::BelongsToSupertype(a2, v11) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3075 v9 *= 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3076 goto LABEL_19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3077 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3078 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3079 LABEL_19:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3080 v12 = v14->pActiveSkills[5];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3081 if ( v12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3082 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3083 if ( (signed int)SkillToMastery(v12) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3084 v9 += v14->pActiveSkills[5] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3085 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3086 return v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3087 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3088
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3089 //----- (0048D2EA) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3090 char *Player::GetMeleeDamageString()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3091 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3092 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3093 signed int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3094 signed int v3; // edi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3095 signed int v4; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3096 signed int v5; // ST0C_4@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3097 char *v6; // edi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3098 signed int v7; // ST08_4@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3099 unsigned int v8; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3100 signed int v9; // esi@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3101
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3102 static char player__getmeleedamagestring_static_buff[40]; // idb
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3103
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3104 v1 = this;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3105 v2 = *(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * this->pEquipment.uMainHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3106 if ( v2 < 64 || v2 > 65 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3107 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3108 v3 = GetMeleeDamageMinimal();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3109 v4 = GetMeleeDamageMaximal();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3110 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3111 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3112 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3113 v3 = GetItemsBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_MIN, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3114 v4 = GetItemsBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_MAX, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3115 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3116 if ( v3 == v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3117 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3118 v5 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3119 v6 = player__getmeleedamagestring_static_buff;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3120 sprintfex(player__getmeleedamagestring_static_buff, "%d", v5);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3121 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3122 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3123 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3124 v7 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3125 v6 = player__getmeleedamagestring_static_buff;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3126 sprintfex(player__getmeleedamagestring_static_buff, "%d - %d", v7, v4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3127 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3128 v8 = v1->pEquipment.uMainHand;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3129 if ( v8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3130 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3131 v9 = *(int *)&v1->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v8 + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3132 if ( v9 >= 135 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3133 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3134 if ( v9 <= 159 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3135 strcpy(v6, pGlobalTXT_LocalizationStrings[595]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3136 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3137 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3138 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3139 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3140
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3141 //----- (0048D396) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3142 char *Player::GetRangedDamageString()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3143 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3144 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3145 signed int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3146 int v3; // edi@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3147 int v4; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3148 char *v5; // edi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3149 int v6; // ST0C_4@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3150 int v7; // ST08_4@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3151 unsigned int v8; // eax@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3152 signed int v9; // esi@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3153
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3154 static char player__getrangeddamagestring_static_buff[40]; // idb
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3155
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3156 v1 = this;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3157 v2 = *(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * this->pEquipment.uMainHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3158 if ( v2 < 64 || v2 > 65 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3159 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3160 v3 = GetRangedDamageMin();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3161 v4 = GetRangedDamageMax();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3162 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3163 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3164 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3165 v3 = GetItemsBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_MIN, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3166 v4 = GetItemsBonus(CHARACTER_ATTRIBUTE_MELEE_DMG_MAX, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3167 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3168 if ( v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3169 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3170 if ( v3 == v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3171 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3172 v6 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3173 v5 = player__getrangeddamagestring_static_buff;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3174 sprintfex(player__getrangeddamagestring_static_buff, "%d", v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3175 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3176 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3177 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3178 v7 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3179 v5 = player__getrangeddamagestring_static_buff;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3180 sprintfex(player__getrangeddamagestring_static_buff, "%d - %d", v7, v4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3181 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3182 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3183 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3184 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3185 v5 = player__getrangeddamagestring_static_buff;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3186 strcpy(player__getrangeddamagestring_static_buff, off_4EE75C);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3187 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3188 v8 = v1->pEquipment.uMainHand;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3189 if ( v8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3190 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3191 v9 = *(int *)&v1->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v8 + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3192 if ( v9 >= 135 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3193 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3194 if ( v9 <= 159 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3195 strcpy(v5, pGlobalTXT_LocalizationStrings[595]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3196 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3197 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3198 return v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3199 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3200
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3201 //----- (0048D45A) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3202 bool Player::CanTrainToNextLevel()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3203 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3204 int v1; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3205 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3206 int i; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3207
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3208 v1 = this->uLevel;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3209 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3210 for ( i = 0; i < v1; ++i )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3211 v2 += i + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3212 return (signed __int64)this->uExperience >= 1000 * v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3213 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3214
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3215 //----- (0048D498) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3216 unsigned int Player::GetExperienceDisplayColor()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3217 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3218 unsigned int result; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3219
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3220 if ( CanTrainToNextLevel() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3221 result = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3222 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3223 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3224 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3225 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3226
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3227 //----- (0048D4B3) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3228 int Player::CalculateIncommingDamage(int resistance, signed int type)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3229 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3230 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3231 int v4; // edi@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3232 int v6; // eax@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3233 signed int v7; // ebx@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3234 int v8; // eax@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3235 signed int v9; // ebx@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3236 int v10; // eax@23
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3237 signed int v11; // ebx@23
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3238 int v12; // eax@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3239 signed int v13; // edi@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3240 unsigned int v14; // eax@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3241 int v15; // eax@29
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3242 double v16; // st7@32
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3243 enum CHARACTER_ATTRIBUTE_TYPE v17; // [sp-4h] [bp-10h]@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3244 signed int v18; // [sp+8h] [bp-4h]@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3245
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3246 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3247 if ( !resistance )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3248 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3249 v17 = (CHARACTER_ATTRIBUTE_TYPE)10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3250 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3251 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3252 if ( resistance == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3253 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3254 v17 = (CHARACTER_ATTRIBUTE_TYPE)11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3255 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3256 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3257 if ( resistance == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3258 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3259 v17 = (CHARACTER_ATTRIBUTE_TYPE)12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3260 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3261 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3262 if ( resistance == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3263 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3264 v17 = (CHARACTER_ATTRIBUTE_TYPE)13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3265 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3266 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3267 if ( resistance == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3268 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3269 v17 = (CHARACTER_ATTRIBUTE_TYPE)33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3270 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3271 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3272 if ( resistance == 7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3273 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3274 v17 = (CHARACTER_ATTRIBUTE_TYPE)14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3275 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3276 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3277 if ( resistance == 8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3278 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3279 v17 = (CHARACTER_ATTRIBUTE_TYPE)15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3280 LABEL_16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3281 v4 = GetActualResistance(v17);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3282 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3283 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3284 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3285 LABEL_17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3286 v18 = type;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3287 if ( v3->uClass == 35 && v4 >= 200 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3288 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3289 if ( v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3290 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3291 v6 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3292 v7 = _48EA1B_get_static_effect(v6) + v4 + 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3293 if ( rand() % v7 >= 30 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3294 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3295 v18 = type >> 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3296 v8 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3297 v9 = _48EA1B_get_static_effect(v8) + v4 + 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3298 if ( rand() % v9 >= 30 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3299 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3300 v18 = type >> 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3301 v10 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3302 v11 = _48EA1B_get_static_effect(v10) + v4 + 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3303 if ( rand() % v11 >= 30 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3304 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3305 v18 = type >> 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3306 v12 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3307 v13 = _48EA1B_get_static_effect(v12) + v4 + 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3308 if ( rand() % v13 >= 30 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3309 v18 = type >> 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3310 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3311 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3312 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3313 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3314 if ( resistance == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3315 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3316 v14 = v3->pEquipment.uBody;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3317 if ( v14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3318 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3319 if ( !(v3->field_1F5[36 * v14 + 15] & 2) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3320 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3321 v15 = GetEquippedItemSkillType(EQUIP_ARMOUR) - 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3322 if ( v15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3323 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3324 if ( v15 != 1 || (signed int)SkillToMastery(v3->pActiveSkills[11]) < 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3325 return v18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3326 v16 = (double)v18 * 0.5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3327 return (signed __int64)v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3328 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3329 if ( (signed int)SkillToMastery(v3->pActiveSkills[10]) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3330 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3331 v16 = (double)v18 * 0.66670001;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3332 return (signed __int64)v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3333 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3334 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3335 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3336 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3337 return v18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3338 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3339
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3340 //----- (0048D62C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3341 int Player::GetEquippedItemEquipType(unsigned int uEquipSlot)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3342 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3343 return pItemsTable->pItems[*(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3344 * *(&this->pEquipment.uOffHand
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3345 + uEquipSlot)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3346 + 5]].uEquipType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3347 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3348
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3349 //----- (0048D651) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3350 int Player::GetEquippedItemSkillType(enum ITEM_EQUIP_TYPE uEquipSlot)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3351 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3352 return pItemsTable->pItems[*(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3353 * *(&this->pEquipment.uOffHand
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3354 + uEquipSlot)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3355 + 5]].uSkillType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3356 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3357
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3358 //----- (0048D676) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3359 bool Player::IsUnarmed()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3360 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3361 return HasItemEquipped(EQUIP_TWO_HANDED) != 1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3362 && (HasItemEquipped(EQUIP_ONE_OR_TWO_HANDS) != 1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3363 || GetEquippedItemEquipType(0) == EQUIP_SHIELD);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3364 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3365
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3366 //----- (0048D6AA) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3367 bool Player::HasItemEquipped(ITEM_EQUIP_TYPE uEquipIndex)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3368 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3369 auto i = pEquipment.pIndices[uEquipIndex];
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3370 if (i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3371 return ~pInventoryItems[i - 1].uAttributes & 0x02;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3372 else return false;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3373 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3374
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3375 //----- (0048D6D0) --------------------------------------------------------
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3376 bool Player::HasEnchantedItemEquipped(int uEnchantment)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3377 {
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3378 for (uint i = 0; i < 16; ++i)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3379 {
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3380 if (HasItemEquipped((ITEM_EQUIP_TYPE)i) &&
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3381 pInventoryItems[i].uAdditionalValue == uEnchantment)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3382 // *(int *)&this->field_1F6[36 * pEquipment[i] + 6] != uEnchantment)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3383 return true;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3384 }
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
3385 return false;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3386 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3387
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3388 //----- (0048D709) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3389 bool Player::WearsItem(int a1, signed int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3390 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3391 int v3; // edx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3392 Player *v4; // ecx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3393 int v6; // esi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3394 int v7; // edx@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3395
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3396 if ( a2 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3397 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3398 v6 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3399 while ( !HasItemEquipped((ITEM_EQUIP_TYPE)v6)
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3400 || *(int *)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(int *)v7 + 5] != a1 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3401 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3402 ++v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3403 if ( (signed int)v6 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3404 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3405 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3406 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3407 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3408 if ( HasItemEquipped((ITEM_EQUIP_TYPE)a2)
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3409 && *(int *)&v4->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(&v4->pEquipment.uOffHand + v3) + 5] == a1 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3410 return 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3411 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3412 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3413
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3414 //----- (0048D76C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3415 bool Player::StealFromShop(ItemGen *a2, int a3, int a4, int a5, int *a6)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3416 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3417 unsigned __int16 v6; // cx@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3418 int v7; // edi@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3419 unsigned int v8; // ebx@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3420 unsigned int v9; // esi@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3421 int v10; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3422 int v11; // edi@12
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3423 bool result; // eax@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3424
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3425 if ( !a2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3426 || this->pConditions[16]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3427 || this->pConditions[14]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3428 || this->pConditions[15]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3429 || this->pConditions[4]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3430 || this->pConditions[13]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3431 || this->pConditions[2] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3432 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3433 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3434 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3435 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3436 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3437 v6 = this->pActiveSkills[34];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3438 v7 = v6 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3439 v8 = SkillToMastery(v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3440 v9 = a2->GetValue();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3441 v10 = pItemsTable->pItems[a2->uItemID].uEquipType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3442 if ( !pItemsTable->pItems[a2->uItemID].uEquipType || v10 == 1 || v10 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3443 v9 *= 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3444 v11 = dword_4EDEB4[rand() % 100 / 20] + v7 * dword_4EDEA0[v8];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3445 *a6 = 100 * (a4 + a3) + v9 + (a5 != 0 ? 0x1F4 : 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3446 if ( rand() % 100 >= 5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3447 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3448 if ( *a6 > v11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3449 result = *a6 - v11 < 500;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3450 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3451 result = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3452 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3453 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3454 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3455 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3456 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3457 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3458 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3459 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3460 // 4EDEA0: using guessed type int dword_4EDEA0[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3461 // 4EDEB4: using guessed type int dword_4EDEB4[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3462
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3463 //----- (0048D88B) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3464 int Player::StealFromActor(unsigned int uActorID, int _steal_perm, int reputation)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3465 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3466 Player *v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3467 Actor *v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3468 unsigned __int16 v6; // cx@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3469 int v7; // ebx@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3470 unsigned int v8; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3471 int v9; // eax@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3472 int v10; // esi@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3473 int v11; // eax@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3474 signed int v12; // ebx@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3475 signed int v13; // edx@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3476 int v14; // ecx@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3477 unsigned __int16 v15; // si@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3478 unsigned int v16; // ebx@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3479 int v17; // esi@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3480 const void *v18; // eax@29
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3481 unsigned int v19; // esi@31
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3482 int v20; // eax@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3483 char v21; // zf@36
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3484 unsigned int v22; // ST0C_4@39
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3485 char *v23; // esi@39
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3486 const char *v25; // [sp-Ch] [bp-48h]@40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3487 int v26; // [sp-8h] [bp-44h]@40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3488 ItemGen v27; // [sp+8h] [bp-34h]@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3489 unsigned int v28; // [sp+2Ch] [bp-10h]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3490 int v29; // [sp+30h] [bp-Ch]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3491 int v30; // [sp+34h] [bp-8h]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3492 Player *v31; // [sp+38h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3493 signed int _steal_perma; // [sp+48h] [bp+Ch]@12
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3494
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3495 v4 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3496 v5 = &pActors[uActorID];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3497 v31 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3498 if ( &pActors[uActorID]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3499 && !this->pConditions[16]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3500 && !this->pConditions[14]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3501 && !this->pConditions[15]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3502 && !this->pConditions[4]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3503 && !this->pConditions[13]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3504 && !this->pConditions[2] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3505 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3506 if ( !(BYTE2(v5->uAttributes) & 0x80) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3507 pActors[uActorID].SetRandomGoldIfTheresNoItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3508 v6 = v4->pActiveSkills[34];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3509 v7 = v6 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3510 v8 = SkillToMastery(v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3511 v9 = rand();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3512 v28 = 4 * v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3513 v30 = dword_4EDEA0[v8];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3514 v29 = dword_4EDEB4[v9 % 100 / 20];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3515 v10 = v5->pMonsterInfo.uLevel + 100 * (_steal_perm + reputation);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3516 if ( rand() % 100 < 5 || v10 > v29 + v7 * v30 || (_steal_perma = 2, BYTE2(v5->uAttributes) & 8) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3517 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3518 Actor::_43AC45(uActorID, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3519 _steal_perma = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3520 v26 = (int)v31->pName;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3521 v25 = pGlobalTXT_LocalizationStrings[376];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3522 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3523 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3524 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3525 v11 = rand();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3526 if ( v11 % 100 >= 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3527 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3528 if ( v11 % 100 >= 70 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3529 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3530 v19 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3531 if ( v7 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3532 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3533 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3534 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3535 --v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3536 v19 += rand() % dword_4EDEC4[v28 / 4] + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3537 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3538 while ( v7 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3539 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3540 if ( pItemsTable->pItems[v5->array_000234[3].uItemID].uEquipType != 18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3541 return _steal_perma;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3542 v20 = (int)&v5->array_000234[3].uAdditionalValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3543 if ( (signed int)v19 > v5->array_000234[3].uAdditionalValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3544 v19 = v5->array_000234[3].uAdditionalValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3545 v21 = *(int *)v20 == v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3546 *(int *)v20 -= v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3547 if ( v21 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3548 v5->array_000234[3].uItemID = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3549 if ( v19 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3550 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3551 party_finds_gold(v19, 2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3552 v22 = v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3553 v23 = pTmpBuf2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3554 sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[302], v31->pName, v22);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3555 LABEL_43:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3556 ShowStatusBarString(v23, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3557 return _steal_perma;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3558 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3559 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3560 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3561 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3562 v27.Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3563 v12 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3564 v13 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3565 v14 = (int)v5->array_000234;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3566 while ( !*(int *)v14 || pItemsTable->pItems[*(int *)v14].uEquipType == 18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3567 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3568 ++v13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3569 v14 += 36;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3570 if ( v13 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3571 goto LABEL_21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3572 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3573 v12 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3574 LABEL_21:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3575 v15 = v5->uCarriedItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3576 if ( v15 || v12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3577 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3578 v27.Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3579 if ( v15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3580 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3581 v16 = (signed __int16)v15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3582 v5->uCarriedItemID = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3583 v27.uItemID = (signed __int16)v15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3584 v17 = (signed __int16)v15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3585 if ( pItemsTable->pItems[v17].uEquipType == 12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3586 v27.uNumCharges = rand() % 6 + pItemsTable->pItems[v17].uDamageMod + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3587 if ( pItemsTable->pItems[v17].uEquipType == 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3588 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3589 if ( v16 != 220 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3590 v27._bonus_type = 2 * rand() % 4 + 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3591 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3592 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3593 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3594 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3595 v18 = &v5->array_000234[rand() % 4];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3596 memcpy(&v27, v18, sizeof(v27));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3597 ((ItemGen *)v18)->Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3598 v16 = v27.uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3599 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3600 sub_421B2C_PlaceInInventory_or_DropPickedItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3601 sprintfex(
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3602 pTmpBuf2,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3603 pGlobalTXT_LocalizationStrings[304],
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3604 v31->pName,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3605 pItemsTable->pItems[v16].pUnidentifiedName);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3606 ShowStatusBarString(pTmpBuf2, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3607 sub_421B2C_PlaceInInventory_or_DropPickedItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3608 memcpy(&pParty->pPickedItem, &v27, sizeof(pParty->pPickedItem));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3609 pMouse->SetCursorBitmapFromItemID(v16);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3610 return _steal_perma;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3611 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3612 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3613 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3614 v26 = (int)v31->pName;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3615 v25 = pGlobalTXT_LocalizationStrings[377];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3616 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3617 v23 = pTmpBuf2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3618 sprintfex(pTmpBuf2, v25, v26);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3619 goto LABEL_43;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3620 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3621 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3622 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3623 // 4EDEA0: using guessed type int dword_4EDEA0[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3624 // 4EDEB4: using guessed type int dword_4EDEB4[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3625 // 4EDEC4: using guessed type int dword_4EDEC4[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3626
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3627 //----- (0048DBB9) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3628 void Player::Heal(int amount)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3629 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3630 Player *v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3631 signed int v3; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3632
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3633 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3634 if ( !this->pConditions[16] && !this->pConditions[14] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3635 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3636 v3 = GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3637 if ( v2->pConditions[17] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3638 v3 /= 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3639 v2->sHealth += amount;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3640 if ( v2->sHealth > v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3641 v2->sHealth = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3642 if ( v2->pConditions[13] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3643 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3644 if ( v2->sHealth > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3645 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3646 LODWORD(v2->pConditions[13]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3647 HIDWORD(v2->pConditions[13]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3648 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3649 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3650 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3651 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3652
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3653 //----- (0048DC1E) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3654 int Player::ReceiveDamage(signed int type, int resistance)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3655 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3656 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3657 signed int v4; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3658 int v5; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3659 bool v6; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3660 unsigned int v7; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3661 char *v8; // ecx@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3662 int v9; // eax@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3663 signed int typea; // [sp+14h] [bp+8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3664
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3665 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3666 this->pConditions[2] = 0i64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3667 v4 = CalculateIncommingDamage(resistance, type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3668 v3->sHealth -= v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3669 typea = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3670 v5 = v3->sHealth;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3671 v6 = v5 < -10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3672 LOBYTE(v6) = v5 <= -10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3673 if ( v5 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3674 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3675 if ( v3->sHealth + v3->uEndurance + GetItemsBonus(CHARACTER_ATTRIBUTE_ENDURANCE, 0) >= 1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3676 || (signed __int64)v3->pPlayerBuffs[11].uExpireTime > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3677 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3678 SetCondition(0xDu, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3679 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3680 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3681 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3682 SetCondition(0xEu, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3683 v6 = LODWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3684 if ( v3->sHealth > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3685 v3->sHealth = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3686 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3687 if ( v6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3688 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3689 v7 = v3->pEquipment.uBody;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3690 if ( v7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3691 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3692 v8 = &v3->field_1F5[36 * v7 + 15];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3693 v9 = *(int *)v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3694 if ( !(BYTE1(v9) & 2) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3695 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3696 LOBYTE(v9) = v9 | 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3697 *(int *)v8 = v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3698 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3699 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3700 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3701 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3702 if ( typea && CanAct() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3703 PlaySound(24, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3704 return typea;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3705 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3706
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3707 //----- (0048DCF6) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3708 int Player::_48DCF6(int a2, Actor *pActor)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3709 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3710 signed int v3; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3711 signed int v4; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3712 Player *v5; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3713 int v6; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3714 int v7; // eax@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3715 int v8; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3716 int v9; // ebx@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3717 int v10; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3718 int v11; // ebx@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3719 signed int v12; // edx@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3720 ItemGen *v13; // eax@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3721 int v14; // edx@16
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3722 unsigned int v15; // edx@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3723 int v16; // edx@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3724 unsigned int v17; // edx@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3725 Player *v18; // ecx@32
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3726 signed int v19; // edx@38
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3727 int *v20; // ecx@38
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3728 signed int v21; // eax@40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3729 int v22; // eax@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3730 signed int v23; // ebx@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3731 unsigned int v24; // eax@60
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3732 int v25; // ecx@61
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3733 int v26; // ebx@74
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3734 void *v27; // ecx@76
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3735 unsigned int v28; // ebx@78
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3736 signed int result; // eax@86
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3737 SoundID v30; // [sp-20h] [bp-C0h]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3738 signed int v31; // [sp-1Ch] [bp-BCh]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3739 unsigned int v32; // [sp-18h] [bp-B8h]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3740 signed int v33; // [sp-14h] [bp-B4h]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3741 signed int v34; // [sp-10h] [bp-B0h]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3742 int v35; // [sp-Ch] [bp-ACh]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3743 unsigned int v36; // [sp-8h] [bp-A8h]@51
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3744 unsigned int v37; // [sp-8h] [bp-A8h]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3745 unsigned int v38; // [sp-8h] [bp-A8h]@57
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3746 unsigned int v39; // [sp-8h] [bp-A8h]@68
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3747 enum CHARACTER_ATTRIBUTE_TYPE v40; // [sp-4h] [bp-A4h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3748 int v41; // [sp-4h] [bp-A4h]@51
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3749 int v42; // [sp-4h] [bp-A4h]@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3750 int v43; // [sp-4h] [bp-A4h]@57
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3751 signed int v44; // [sp-4h] [bp-A4h]@59
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3752 int v45; // [sp-4h] [bp-A4h]@68
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3753 char v46[140]; // [sp+Ch] [bp-94h]@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3754 unsigned int v47; // [sp+98h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3755 int v48; // [sp+9Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3756
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3757 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3758 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3759 v5 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3760 v47 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3761 v48 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3762 switch ( a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3763 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3764 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3765 v6 = GetActualWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3766 goto LABEL_46;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3767 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3768 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3769 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3770 case 9:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3771 case 10:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3772 case 11:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3773 case 13:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3774 case 21:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3775 v6 = GetActualEndurance();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3776 goto LABEL_46;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3777 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3778 case 12:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3779 case 23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3780 v40 = (CHARACTER_ATTRIBUTE_TYPE)14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3781 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3782 case 15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3783 v40 = (CHARACTER_ATTRIBUTE_TYPE)13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3784 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3785 case 6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3786 case 7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3787 case 8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3788 case 14:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3789 case 16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3790 v40 = (CHARACTER_ATTRIBUTE_TYPE)15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3791 LABEL_5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3792 v7 = GetActualResistance(v40);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3793 goto LABEL_47;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3794 case 22:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3795 v8 = GetActualWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3796 v9 = _48EA1B_get_static_effect(v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3797 v10 = GetActualIntelligence();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3798 v11 = (_48EA1B_get_static_effect(v10) + v9) >> 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3799 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3800 case 17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3801 v12 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3802 v13 = this->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3803 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3804 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3805 if ( (signed int)v13->uItemID > 0 && (signed int)v13->uItemID <= 134 && !(v13->uAttributes & 2) )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3806 v46[v4++] = v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3807 ++v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3808 ++v13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3809 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3810 while ( v12 < 138 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3811 goto LABEL_36;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3812 case 18:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3813 v14 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3814 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3815 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3816 if ( HasItemEquipped((ITEM_EQUIP_TYPE)v14) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3817 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3818 if ( v15 == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3819 v46[v4++] = LOBYTE(v5->pEquipment.uBody) - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3820 if ( (!v15 || v15 == 1) && GetEquippedItemEquipType(v15) == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3821 v46[v4++] = *((char *)&v5->pEquipment.uOffHand + 4 * v15) - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3822 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3823 v14 = v15 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3824 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3825 while ( v14 < 16 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3826 goto LABEL_36;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3827 case 19:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3828 v16 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3829 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3830 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3831 if ( HasItemEquipped((ITEM_EQUIP_TYPE)v16) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3832 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3833 if ( v17 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3834 v46[v4++] = LOBYTE(v5->pEquipment.uBow) - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3835 if ( (!v17 || v17 == 1)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3836 && (!GetEquippedItemEquipType(v17) || GetEquippedItemEquipType(v17) == 1) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3837 v46[v4++] = *((char *)&v5->pEquipment.uOffHand + 4 * v17) - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3838 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3839 v16 = v17 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3840 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3841 while ( v16 < 16 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3842 LABEL_36:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3843 if ( !v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3844 goto LABEL_87;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3845 v48 = (int)&v5->pInventoryItems[(unsigned __int8)v46[rand() % v4]];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3846 v11 = 3 * (pItemsTable->pItems[*(int *)v48].uMaterial + pItemsTable->pItems[*(int *)v48].uDamageMod);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3847 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3848 case 20:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3849 v19 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3850 v20 = this->pInventoryIndices;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3851 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3852 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3853 if ( *v20 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3854 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
3855 v21 = *(int *)&v5->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *v20 + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3856 if ( v21 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3857 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3858 if ( v21 <= 134 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3859 v46[v4++] = v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3860 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3861 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3862 ++v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3863 ++v20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3864 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3865 while ( v19 < 126 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3866 if ( !v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3867 goto LABEL_87;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3868 v47 = (unsigned __int8)v46[rand() % v4];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3869 v6 = GetActualAccuracy();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3870 LABEL_46:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3871 v7 = _48EA1B_get_static_effect(v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3872 LABEL_47:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3873 v11 = v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3874 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3875 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3876 v11 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3877 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3878 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3879 v22 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3880 v23 = _48EA1B_get_static_effect(v22) + v11 + 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3881 if ( rand() % v23 >= 30 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3882 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3883 LABEL_87:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3884 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3885 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3886 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3887 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3888 switch ( a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3889 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3890 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3891 v41 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3892 v36 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3893 goto LABEL_56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3894 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3895 v41 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3896 v36 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3897 goto LABEL_56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3898 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3899 v41 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3900 v36 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3901 goto LABEL_56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3902 case 23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3903 v41 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3904 v36 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3905 goto LABEL_56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3906 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3907 v41 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3908 v36 = 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3909 LABEL_56:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3910 SetCondition(v36, v41);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3911 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3912 v37 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3913 v35 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3914 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3915 v33 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3916 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3917 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3918 v30 = (SoundID)221;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3919 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3920 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3921 v43 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3922 v38 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3923 goto LABEL_70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3924 case 6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3925 case 7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3926 case 8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3927 if ( a2 == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3928 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3929 v44 = 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3930 goto LABEL_60;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3931 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3932 v25 = 2 * (a2 != 8) + 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3933 goto LABEL_65;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3934 case 9:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3935 if ( a2 == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3936 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3937 v44 = 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3938 LABEL_60:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3939 v24 = v44;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3940 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3941 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3942 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3943 v25 = 2 * (a2 != 8) + 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3944 LABEL_65:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3945 v24 = v25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3946 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3947 SetCondition(v24, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3948 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3949 v37 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3950 v35 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3951 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3952 v33 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3953 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3954 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3955 v30 = (SoundID)222;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3956 LABEL_83:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3957 pAudioPlayer->PlaySound(v30, v31, v32, v33, v34, v35, v37, v42);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3958 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3959 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3960 LABEL_84:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3961 if ( v5 == pPlayers[v3 + 1] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3962 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3963 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3964 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3965 while ( v3 < 4 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3966 pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3967 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3968 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3969 case 12:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3970 v43 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3971 v38 = 12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3972 goto LABEL_70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3973 case 15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3974 v45 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3975 v39 = 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3976 goto LABEL_73;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3977 case 13:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3978 v43 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3979 v38 = 13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3980 LABEL_70:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3981 SetCondition(v38, v43);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3982 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3983 v37 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3984 v35 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3985 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3986 v33 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3987 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3988 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3989 v30 = (SoundID)224;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3990 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3991 case 14:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3992 v45 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3993 v39 = 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3994 goto LABEL_73;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3995 case 16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3996 v45 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3997 v39 = 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3998 LABEL_73:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
3999 SetCondition(v39, v45);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4000 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4001 v37 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4002 v35 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4003 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4004 v33 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4005 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4006 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4007 v30 = (SoundID)225;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4008 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4009 case 17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4010 case 18:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4011 case 19:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4012 v26 = v48;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4013 if ( *(char *)(v48 + 21) & 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4014 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4015 PlaySound(40, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4016 *(int *)(v26 + 20) |= 2u;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4017 goto LABEL_79;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4018 case 20:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4019 PlaySound(40, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4020 v27 = pActor->array_000234;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4021 if ( pActor->array_000234[0].uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4022 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4023 v27 = &pActor->array_000234[1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4024 if ( pActor->array_000234[1].uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4025 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4026 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4027 v28 = v47;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4028 memcpy(v27, &v5->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v5->pInventoryIndices[v47] + 5], 0x24u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4029 RemoveItemAtInventoryIndex(v28);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4030 LABEL_79:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4031 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4032 v37 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4033 v35 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4034 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4035 v33 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4036 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4037 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4038 v30 = (SoundID)47;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4039 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4040 case 21:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4041 PlaySound(42, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4042 ++v5->sAgeModifier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4043 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4044 case 22:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4045 PlaySound(41, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4046 v5->sMana = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4047 LABEL_82:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4048 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4049 v37 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4050 v35 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4051 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4052 v33 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4053 v32 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4054 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4055 v30 = (SoundID)226;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4056 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4057 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4058 goto LABEL_87;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4059 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4060 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4061 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4062 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4063 // 48DCF6: using guessed type char var_94[140];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4064
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4065 //----- (0048E1A3) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4066 unsigned int Player::GetSpellSchool(unsigned int uSpellID)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4067 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4068 return LOBYTE(pSpellStats->pInfos[uSpellID].uSchool);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4069 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4070
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4071 //----- (0048E1B5) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4072 int Player::GetAttackRecoveryTime(int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4073 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4074 unsigned int v2; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4075 char *v3; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4076 Player *v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4077 int v5; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4078 int v6; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4079 int v7; // eax@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4080 int v8; // eax@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4081 int v9; // eax@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4082 int v10; // eax@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4083 int v11; // edx@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4084 int v12; // ecx@14
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4085 int v13; // eax@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4086 int v14; // ebx@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4087 int v15; // eax@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4088 double v16; // st7@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4089 double v17; // st7@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4090 unsigned __int16 v18; // cx@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4091 Player *v19; // ecx@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4092 int v20; // eax@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4093 int v21; // eax@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4094 int v22; // eax@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4095 int v23; // ecx@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4096 unsigned int v24; // eax@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4097 int v25; // eax@31
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4098 int v26; // ebx@32
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4099 int v27; // eax@32
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4100 unsigned __int16 *v28; // ebx@36
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4101 int v29; // eax@42
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4102 int v30; // edi@43
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4103 signed int v31; // eax@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4104 int v32; // ecx@50
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4105 int result; // eax@54
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4106 float v34; // [sp+8h] [bp-38h]@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4107 float v35; // [sp+Ch] [bp-34h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4108 float v36; // [sp+10h] [bp-30h]@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4109 float v37; // [sp+14h] [bp-2Ch]@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4110 float v38; // [sp+18h] [bp-28h]@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4111 int v39; // [sp+1Ch] [bp-24h]@31
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4112 int v40; // [sp+20h] [bp-20h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4113 int v41; // [sp+24h] [bp-1Ch]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4114 unsigned int v42; // [sp+28h] [bp-18h]@14
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4115 int v43; // [sp+2Ch] [bp-14h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4116 int v44; // [sp+30h] [bp-10h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4117 int v45; // [sp+34h] [bp-Ch]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4118 int v46; // [sp+38h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4119 int v47; // [sp+3Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4121 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4122 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4123 v4 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4124 v47 = (unsigned __int16)word_4EDED8[0];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4125 v43 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4126 v45 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4127 v40 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4128 v41 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4129 v44 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4130 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4131 if ( a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4132 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4133 if ( !HasItemEquipped(EQUIP_BOW) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4134 goto LABEL_17;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4135 v5 = (int)&v4->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v4->pEquipment.uBow + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4136 v46 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4137 v3 = (char *)&pItemsTable->pItems[*(int *)v5].pIconName;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4138 v6 = (unsigned __int16)word_4EDED8[(unsigned __int8)v3[29]];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4139 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4140 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4141 if ( IsUnarmed() == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4142 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4143 LOBYTE(v7) = GetActualSkillLevel(PLAYER_SKILL_UNARMED);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4144 if ( v7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4145 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4146 v6 = (unsigned __int16)word_4EDEDC;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4147 LABEL_4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4148 v47 = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4149 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4150 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4151 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4152 if ( HasItemEquipped(EQUIP_TWO_HANDED) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4153 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4154 v8 = (int)&v4->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v4->pEquipment.uMainHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4155 v46 = v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4156 v9 = *(int *)v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4157 v3 = (char *)&pItemsTable->pItems[v9].pIconName;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4158 if ( v3[28] == 12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4159 v10 = *(&pSpellDatas[0].field_A + 10 * *((int *)&pSpellDatas[66].field_8 + v9));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4160 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4161 v10 = (unsigned __int16)word_4EDED8[(unsigned __int8)v3[29]];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4162 v47 = v10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4163 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4164 if ( HasItemEquipped((ITEM_EQUIP_TYPE)0) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4165 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4166 v12 = (int)&v4->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v4->pEquipment.uOffHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4167 v42 = (unsigned __int16)word_4EDED8[pItemsTable->pItems[*(int *)v12].uSkillType];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4168 if ( (signed int)v42 > v47 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4169 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4170 v13 = *(int *)v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4171 v46 = v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4172 v3 = (char *)(v11 + 48 * v13);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4173 v47 = v42;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4174 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4175 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4176 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4177 LABEL_17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4178 if ( HasItemEquipped(EQUIP_ARMOUR) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4179 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4180 v14 = pItemsTable->pItems[*(int *)&v4->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v4->pEquipment.uBody + 5]].uSkillType;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4181 SkillToMastery(v4->pActiveSkills[9]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4182 v15 = (unsigned __int16)word_4EDED8[v14];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4183 v35 = 1.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4184 v43 = v15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4185 if ( v14 == 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4186 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4187 v36 = 0.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4188 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4189 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4190 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4191 if ( v14 != 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4192 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4193 if ( v14 != 11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4194 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4195 v36 = 1.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4196 v37 = 1.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4197 v16 = 1.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4198 LABEL_27:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4199 v18 = v4->pActiveSkills[v14];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4200 v38 = v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4201 v43 = (signed __int64)((double)v43 * *(&v34 + SkillToMastery(v18)));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4202 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4203 goto LABEL_28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4204 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4205 v17 = 0.5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4206 v36 = 0.5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4207 LABEL_26:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4208 v37 = v17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4209 v16 = 0.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4210 goto LABEL_27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4211 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4212 v36 = 0.5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4213 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4214 v17 = 0.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4215 goto LABEL_26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4216 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4217 LABEL_28:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4218 if ( HasItemEquipped((ITEM_EQUIP_TYPE)v2) && v19->GetEquippedItemEquipType(v2) == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4219 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4220 v20 = 9 * v4->pEquipment.uOffHand;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4221 v35 = 1.0;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4222 v21 = 3 * *(int *)&v4->spellbook.pDarkSpellbook.bIsSpellAvailable[4 * v20 + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4223 v36 = 0.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4224 v22 = pItemsTable->pItems[16 * v21 / 0x30u].uSkillType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4225 v37 = 0.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4226 v23 = (unsigned __int16)word_4EDED8[v22];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4227 v38 = 0.0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4228 v45 = v23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4229 v24 = SkillToMastery(v4->pActiveSkills[v22]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4230 v45 = (signed __int64)((double)v45 * *(&v34 + v24));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4231 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4232 v25 = GetActualSpeed();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4233 v39 = _48EA1B_get_static_effect(v25);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4234 v42 = v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4235 if ( v3 != (char *)v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4236 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4237 v26 = (unsigned __int8)v3[29];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4238 LOBYTE(v27) = GetActualSkillLevel((enum PLAYER_SKILL_TYPE)(unsigned __int8)v3[29]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4239 if ( v27 && (v26 == 1 || v26 == 3 || v26 == 5) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4240 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4241 v28 = &v4->pActiveSkills[v26];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4242 if ( (signed int)SkillToMastery(*v28) >= 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4243 v40 = *(char *)v28 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4244 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4245 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4246 if ( v3[29] == 7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4247 v42 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4248 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4249 if ( a2 == v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4250 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4251 if ( v42 == v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4252 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4253 LOBYTE(v29) = GetActualSkillLevel(PLAYER_SKILL_ARMSMASTER);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4254 if ( v29 != v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4255 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4256 v30 = v29 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4257 v44 = v29 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4258 if ( (signed int)SkillToMastery(v29) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4259 v44 += v30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4260 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4261 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4262 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4263 if ( SHIDWORD(v4->pPlayerBuffs[7].uExpireTime) >= (signed int)v2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4264 && (SHIDWORD(v4->pPlayerBuffs[7].uExpireTime) > (signed int)v2 || LODWORD(v4->pPlayerBuffs[7].uExpireTime) > v2) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4265 v41 = 25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4266 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4267 if ( v46 != v2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4268 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4269 v32 = *(int *)(v46 + 12);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4270 if ( v32 == 59 || v32 == 41 || *(int *)v46 == 500 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4271 v31 = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4272 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4273 result = v47 + v43 + v45 - v44 - v31 - v41 - v40 - v39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4274 if ( result < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4275 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4276 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4277 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4278
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4279 //----- (0048E4F8) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4280 int Player::GetMaxHealth()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4281 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4282 int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4283 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4284 int v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4285
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4286 v3 = _48EA1B_get_static_effect(GetActualEndurance());
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4287 v4 = pBaseHealthPerLevelByClass[uClass] * (GetActualLevel() + v3);
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4288 v6 = uFullHealthBonus
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4289 + pBaseHealthByClass[uClass / 4]
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4290 + GetSkillBonus(CHARACTER_ATTRIBUTE_HEALTH)
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4291 + GetItemsBonus(CHARACTER_ATTRIBUTE_HEALTH, 0) + v4;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4292 if (v6 <= 0)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4293 return 1;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4294 return v6;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4295 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4296
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4297 //----- (0048E565) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4298 int Player::GetMaxMana()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4299 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4300 int v2; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4301 int v3; // esi@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4302 int v4; // eax@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4303 int v5; // esi@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4304 int v6; // eax@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4305 int v7; // esi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4306 int v8; // esi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4307 int v9; // esi@6
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4308 int result; // eax@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4309
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4310 switch (uClass)
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4311 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4312 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4313 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4314 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4315 case 0x10u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4316 case 0x11u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4317 case 0x12u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4318 case 0x13u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4319 case 0x20u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4320 case 0x21u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4321 case 0x22u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4322 case 0x23u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4323 v2 = GetActualIntelligence();
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4324 v3 = _48EA1B_get_static_effect(v2);
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4325 goto LABEL_6;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4326 case 9u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4327 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4328 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4329 case 0xCu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4330 case 0xDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4331 case 0xEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4332 case 0xFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4333 case 0x18u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4334 case 0x19u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4335 case 0x1Au:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4336 case 0x1Bu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4337 v2 = GetActualWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4338 v3 = _48EA1B_get_static_effect(v2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4339 goto LABEL_6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4340 case 0x15u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4341 case 0x16u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4342 case 0x17u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4343 case 0x1Cu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4344 case 0x1Du:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4345 case 0x1Eu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4346 case 0x1Fu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4347 v4 = GetActualWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4348 v5 = _48EA1B_get_static_effect(v4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4349 v6 = GetActualIntelligence();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4350 v3 = _48EA1B_get_static_effect(v6) + v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4351 LABEL_6:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4352 v7 = pBaseManaPerLevelByClass[uClass] * (GetActualLevel() + v3);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4353 v8 = GetItemsBonus(CHARACTER_ATTRIBUTE_MANA, 0) + v7;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4354 v9 = uFullManaBonus
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4355 + pBaseManaByClass[uClass / 4]
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4356 + GetSkillBonus(CHARACTER_ATTRIBUTE_MANA)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4357 + v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4358 if ( v9 < 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4359 goto LABEL_7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4360 result = v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4361 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4362 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4363 LABEL_7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4364 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4365 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4366 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4367 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4368 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4369
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4370 //----- (0048E656) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4371 int Player::GetBaseAC()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4372 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4373 Player *v1; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4374 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4375 int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4376 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4377 int v5; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4378 int result; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4379
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4380 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4381 v2 = GetActualSpeed();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4382 v3 = _48EA1B_get_static_effect(v2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4383 v4 = GetItemsBonus(CHARACTER_ATTRIBUTE_AC_BONUS, 0) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4384 v5 = GetSkillBonus(CHARACTER_ATTRIBUTE_AC_BONUS) + v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4385 if ( v5 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4386 result = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4387 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4388 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4389 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4390 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4391
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4392 //----- (0048E68F) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4393 int Player::GetActualAC()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4394 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4395 Player *v1; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4396 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4397 int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4398 int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4399 int v5; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4400 int v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4401 int result; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4402
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4403 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4404 v2 = GetActualSpeed();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4405 v3 = _48EA1B_get_static_effect(v2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4406 v4 = GetItemsBonus(CHARACTER_ATTRIBUTE_AC_BONUS, 0) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4407 v5 = GetSkillBonus(CHARACTER_ATTRIBUTE_AC_BONUS) + v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4408 v6 = v1->sACModifier + GetMagicalBonus(CHARACTER_ATTRIBUTE_AC_BONUS) + v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4409 if ( v6 >= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4410 result = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4411 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4412 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4413 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4414 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4415
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4416 //----- (0048E6DC) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4417 unsigned int Player::GetBaseAge()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4418 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4419 return ((__int64)(pParty->uTimePlayed * 0.234375) / 60 / 60 / 24) / 7 / 4 / 12
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4420 - uBirthYear + 1168;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4421 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4422
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4423 //----- (0048E72C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4424 unsigned int Player::GetActualAge()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4425 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4426 return this->sAgeModifier + GetBaseAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4427 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4428
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4429 //----- (0048E73F) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4430 int Player::GetBaseResistance(enum CHARACTER_ATTRIBUTE_TYPE a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4431 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4432 Player *v2; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4433 signed int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4434 enum CHARACTER_RACE v4; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4435 signed int v5; // edi@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4436 char v6; // zf@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4437 int v7; // esi@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4438 int result; // eax@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4439 signed int v9; // [sp-4h] [bp-10h]@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4440
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4441 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4442 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4443 v4 = GetRace();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4444 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_FIRE )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4445 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4446 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4447 goto LABEL_16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4448 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4449 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_AIR )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4450 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4451 v5 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4452 LABEL_16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4453 v6 = v4 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4454 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4455 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4456 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_WATER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4457 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4458 v6 = v4 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4459 v5 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4460 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4461 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4462 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_EARTH )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4463 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4464 v5 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4465 v6 = v4 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4466 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4467 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4468 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_MIND )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4469 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4470 v5 = 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4471 if ( v4 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4472 goto LABEL_20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4473 v9 = 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4474 LABEL_19:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4475 v3 = v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4476 goto LABEL_20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4477 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4478 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_BODY || a2 == 33 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4479 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4480 v5 = 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4481 v6 = v4 == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4482 LABEL_17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4483 if ( !v6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4484 goto LABEL_20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4485 v9 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4486 goto LABEL_19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4487 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4488 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4489 LABEL_20:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4490 v7 = GetItemsBonus(a2, 0) + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4491 if ( v2->uClass != 35 || (result = 200, v7 + *(&v2->sResFireBase + v5) <= 200) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4492 result = v7 + *(&v2->sResFireBase + v5);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4493 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4494 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4495
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4496 //----- (0048E7D0) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4497 int Player::GetActualResistance(enum CHARACTER_ATTRIBUTE_TYPE a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4498 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4499 signed int v2; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4500 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4501 enum CHARACTER_RACE v4; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4502 Player *v5; // ecx@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4503 char v6; // zf@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4504 int v7; // ebx@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4505 int result; // eax@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4506 signed int v9; // [sp+10h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4507 signed int v10; // [sp+14h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4508
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4509 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4510 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4511 v10 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4512 v9 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4513 v4 = GetRace();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4514 if ( CheckHiredNPCSpeciality(0x25u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4515 v10 = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4516 if ( (a2 == CHARACTER_ATTRIBUTE_RESIST_FIRE
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4517 || a2 == CHARACTER_ATTRIBUTE_RESIST_AIR
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4518 || a2 == CHARACTER_ATTRIBUTE_RESIST_WATER
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4519 || a2 == CHARACTER_ATTRIBUTE_RESIST_EARTH)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4520 && SkillToMastery(v3->pActiveSkills[9]) == 4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4521 && HasItemEquipped(EQUIP_ARMOUR)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4522 && GetEquippedItemSkillType(EQUIP_ARMOUR) == PLAYER_SKILL_LEATHER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4523 v10 += v3->pActiveSkills[9] & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4524 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_FIRE )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4525 goto LABEL_25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4526 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_AIR )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4527 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4528 v2 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4529 LABEL_25:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4530 v6 = v4 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4531 LABEL_26:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4532 if ( v6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4533 v9 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4534 goto LABEL_28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4535 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4536 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_WATER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4537 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4538 v6 = v4 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4539 v2 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4540 goto LABEL_26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4541 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4542 if ( a2 == CHARACTER_ATTRIBUTE_RESIST_EARTH )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4543 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4544 v2 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4545 if ( v4 == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4546 v10 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4547 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4548 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4549 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4550 if ( a2 != CHARACTER_ATTRIBUTE_RESIST_MIND )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4551 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4552 if ( a2 != CHARACTER_ATTRIBUTE_RESIST_BODY && a2 != 33 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4553 goto LABEL_28;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4554 v2 = 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4555 v6 = v4 == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4556 goto LABEL_26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4557 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4558 v2 = 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4559 if ( v4 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4560 v9 = 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4561 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4562 LABEL_28:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4563 v7 = GetItemsBonus(a2, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4564 result = v10 + GetMagicalBonus(a2) + v7 + v9 + *(&v3->sResFireBonus + v2) + *(&v3->sResFireBase + v2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4565 if ( v3->uClass == 35 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4566 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4567 if ( result > 200 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4568 result = 200;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4569 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4570 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4571 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4572
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4573 //----- (0048E8F5) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4574 bool Player::Recover(signed int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4575 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4576 Player *v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4577 signed __int64 v3; // qax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4578 bool result; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4579
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4580 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4581 v3 = (signed __int64)((double)(a2 * _48EA46_calc_special_bonus_by_items(17)) * 0.01 + (double)a2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4582 if ( v2->uTimeToRecovery - (signed int)v3 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4583 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4584 v2->uTimeToRecovery -= v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4585 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4586 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4587 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4588 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4589 v2->uTimeToRecovery = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4590 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4591 if ( !uActiveCharacter )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4592 uActiveCharacter = pParty->GetNextActiveCharacter();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4593 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4594 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4595 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4596 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4597
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4598 //----- (0048E96A) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4599 void Player::SetRecoveryTime(signed int sRecoveryTime)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4600 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4601 signed int v2; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4602
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4603 v2 = sRecoveryTime;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4604 if ( sRecoveryTime < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4605 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4606 if ( v2 > this->uTimeToRecovery )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4607 this->uTimeToRecovery = v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4608 if ( pPlayers[uActiveCharacter] == this && !some_active_character )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4609 uActiveCharacter = pParty->GetNextActiveCharacter();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4610 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4611 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4612 // 50C0C4: using guessed type int some_active_character;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4613
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4614 //----- (0048E9B7) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4615 void Player::RandomizeName()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4616 {
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
4617 if (!uExpressionTimePassed)
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
4618 strcpy(pName, pNPCStats->pNPCNames[rand() % pNPCStats->uNumNPCNames[uSex]][uSex]);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4619 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4620
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4621 //----- (0048E9F4) --------------------------------------------------------
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4622 unsigned int Player::GetMajorConditionIdx()
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4623 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4624 for (uint i = 0; i < 18; ++i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4625 if (pConditions[pConditionImportancyTable[i]] != 0)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4626 return pConditionImportancyTable[i];
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4627
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4628 return 18;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4629 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4630
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4631 //----- (0048EA1B) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4632 int Player::_48EA1B_get_static_effect(int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4633 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4634 __int16 v2; // cx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4635 int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4636
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4637 v2 = word_4EDFFC[0];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4638 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4639 while ( a2 < v2 && v2 )
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4640 v2 = word_4EDFFC[v3++ + 1];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4641 return player_stat_bonuses[v3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4642 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4643
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4644 //----- (0048EA46) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4645 int Player::_48EA46_calc_special_bonus_by_items(int a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4646 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4647 int v2; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4648 int v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4649 int v4; // edx@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4650 int v5; // eax@3
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4651 char *v6; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4652
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4653 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4654 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4655 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4656 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4657 if ( !HasItemEquipped((ITEM_EQUIP_TYPE)v3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4658 goto LABEL_11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4659 v5 = *(int *)v4 - 1; // BUG
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4660 // v5 = _this->cEquippedItems.uOffHand - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4661 if ( a2 != 17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4662 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4663 v6 = (char *)this + 36 * v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4664 if ( *((int *)v6 + 133) == 533 || *((int *)v6 + 136) == 17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4665 return 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4666 LABEL_11:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4667 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4668 if ( (signed int)v3 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4669 return v2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4670 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4671 if ( a2 != 24 || this->pInventoryItems[v5].uAdditionalValue != 24 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4672 goto LABEL_11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4673 return 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4674 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4675
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4676 //----- (0048EAAE) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4677 int Player::GetItemsBonus(CHARACTER_ATTRIBUTE_TYPE attr, int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4678 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4679 CHARACTER_ATTRIBUTE_TYPE v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4680 signed int v4; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4681 int v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4682 Player *v6; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4683 Player *v8; // ecx@48
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4684 int v9; // eax@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4685 int v10; // edx@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4686 Player *v11; // ecx@55
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4687 int v12; // eax@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4688 int v13; // edx@56
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4689 int v14; // ecx@58
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4690 int v15; // eax@58
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4691 Player *v16; // ecx@61
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4692 int v17; // eax@62
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4693 Player *v18; // ecx@66
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4694 int v19; // eax@67
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4695 int v20; // eax@69
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4696 Player *v21; // ecx@75
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4697 int v22; // eax@76
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4698 int v23; // edx@76
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4699 int v24; // eax@79
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4700 int v25; // ecx@80
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4701 int v26; // edi@80
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4702 Player *v27; // ecx@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4703 int v28; // eax@85
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4704 int v29; // edx@85
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4705 Player *v30; // ecx@96
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4706 int v31; // ebp@97
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4707 int v32; // eax@98
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4708 unsigned int v33; // eax@100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4709 int v34; // eax@103
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4710 char v35; // zf@104
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4711 char v36; // zf@107
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4712 unsigned __int8 v37; // zf@119
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4713 char v38; // sf@119
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4714 unsigned __int8 v39; // of@119
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4715 char v40; // zf@122
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4716 char v41; // zf@145
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4717 char v42; // zf@164
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4718 char v43; // zf@173
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4719 char v44; // zf@189
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4720 char v45; // zf@198
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4721 char v46; // zf@239
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4722 int v47; // eax@268
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4723 int v48; // eax@269
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4724 int v49; // eax@291
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4725 char v50; // zf@295
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4726 int v51; // eax@306
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4727 int v52; // eax@307
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4728 char v53; // zf@312
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4729 char v54; // zf@336
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4730 char v55; // zf@348
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4731 int v56; // eax@365
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4732 int v57; // ebx@368
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4733 signed int v58; // [sp-4h] [bp-20h]@10
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4734 signed int v59; // [sp-4h] [bp-20h]@71
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4735 signed int v60; // [sp-4h] [bp-20h]@347
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4736 int v61; // [sp+10h] [bp-Ch]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4737 int v62; // [sp+14h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4738 int v63; // [sp+18h] [bp-4h]@101
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4739 ItemGen *attra; // [sp+20h] [bp+4h]@101
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4740 unsigned int v65; // [sp+24h] [bp+8h]@95
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4741
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4742 v3 = attr;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4743 v4 = 36;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4744 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4745 v6 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4746 v62 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4747 v61 = 0;
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4748
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4749 switch (attr)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4750 {
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4751 case CHARACTER_ATTRIBUTE_LEVEL:
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4752 if (HasEnchantedItemEquipped(25))
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4753 return 5;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4754 return 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4755 };
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
4756
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4757 if ( (signed int)attr > 36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4758 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4759 switch ( attr )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4760 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4761 case 37:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4762 v58 = 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4763 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4764 case 38:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4765 v58 = 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4766 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4767 case 39:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4768 v58 = 17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4769 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4770 case 40:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4771 v58 = 18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4772 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4773 case 41:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4774 v58 = 19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4775 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4776 case 42:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4777 v58 = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4778 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4779 case 43:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4780 v58 = 25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4781 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4782 case 44:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4783 v58 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4784 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4785 case 45:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4786 v58 = 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4787 goto LABEL_35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4788 case 46:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4789 goto LABEL_36;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4790 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4791 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4792 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4793 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4794 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4795 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4796 if ( attr == 36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4797 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4798 v58 = 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4799 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4800 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4801 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4802 if ( (signed int)attr > 21 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4803 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4804 switch ( attr )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4805 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4806 case 22:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4807 v58 = 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4808 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4809 case 23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4810 v58 = 31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4811 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4812 case 34:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4813 v58 = 12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4814 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4815 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4816 if ( attr != 35 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4817 goto LABEL_38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4818 v58 = 13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4819 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4820 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4821 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4822 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4823 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4824 switch ( attr )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4825 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4826 case 21:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4827 v58 = 33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4828 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4829 case 16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4830 v58 = 35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4831 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4832 case 17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4833 v58 = 34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4834 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4835 case 18:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4836 v58 = 29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4837 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4838 case 19:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4839 v58 = 21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4840 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4841 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4842 if ( attr != 20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4843 goto LABEL_38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4844 v58 = 32;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4845 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4846 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4847 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4848 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4849 LABEL_35:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4850 v4 = v58;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4851 LABEL_36:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4852 if ( !this->pActiveSkills[v4] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4853 return 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4854 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4855 LABEL_38:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4856 if ( (signed int)attr > 28 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4857 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4858 if ( (signed int)attr < 29 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4859 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4860 if ( (signed int)attr <= 30 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4861 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4862 if ( HasItemEquipped(EQUIP_BOW) )
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4863 v5 = pItemsTable->pItems[*(int *)&v6->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v6->pEquipment.uBow + 5]].uDamageMod;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4864 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4865 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4866 if ( attr == 31 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4867 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4868 if ( !HasItemEquipped(EQUIP_BOW) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4869 return v5 + v62 + v61;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4870 v57 = *(int *)&v6->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v6->pEquipment.uBow + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4871 v5 = pItemsTable->pItems[v57].uDamageMod;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4872 v56 = pItemsTable->pItems[v57].uDamageDice;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4873 goto LABEL_366;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4874 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4875 if ( attr == 32 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4876 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4877 if ( !HasItemEquipped(EQUIP_BOW) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4878 return v5 + v62 + v61;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
4879 v20 = *(int *)&v6->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v6->pEquipment.uBow + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4880 v5 = pItemsTable->pItems[v20].uDamageDice * pItemsTable->pItems[v20].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4881 LABEL_365:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4882 v56 = pItemsTable->pItems[v20].uDamageMod;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4883 LABEL_366:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4884 v5 += v56;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4885 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4886 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4887 if ( (signed int)attr <= 33 || (signed int)attr > 46 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4888 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4889 LABEL_95:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4890 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4891 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4892 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4893 if ( !HasItemEquipped((ITEM_EQUIP_TYPE)v65) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4894 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4895 v31 = *(&v6->pEquipment.uOffHand + v65) - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4896 if ( v3 == 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4897 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4898 v32 = GetEquippedItemEquipType(v65);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4899 if ( v32 >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4900 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4901 if ( v32 <= 11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4902 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4903 v33 = v6->pInventoryItems[v31].uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4904 v5 += pItemsTable->pItems[v33].uDamageDice + pItemsTable->pItems[v33].uDamageMod;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4905 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4906 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4907 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4908 v63 = (int)((char *)v6 + 36 * v31);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4909 attra = (ItemGen *)(v63 + 532);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4910 if ( pItemsTable->_456D5E_is_some_material((ItemGen *)(v63 + 532)) == 1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4911 && !pItemsTable->_456D43_is_material_equals_3(attra) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4912 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4913 v34 = attra->uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4914 switch ( attra->uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4915 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4916 case 0x1F4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4917 v35 = v3 == 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4918 goto LABEL_105;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4919 case 0x1F5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4920 v36 = v3 == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4921 goto LABEL_108;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4922 case 0x1F6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4923 if ( v3 == 21 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4924 v61 += 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4925 v36 = v3 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4926 goto LABEL_108;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4927 case 0x1F7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4928 if ( v3 == 17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4929 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4930 if ( v3 == 18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4931 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4932 v36 = v3 == 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4933 goto LABEL_108;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4934 case 0x1F8u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4935 goto LABEL_118;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4936 case 0x1F9u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4937 v40 = v3 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4938 goto LABEL_123;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4939 case 0x1FAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4940 v35 = v3 == 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4941 goto LABEL_105;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4942 case 0x1FEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4943 v35 = v3 == 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4944 goto LABEL_105;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4945 case 0x1FFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4946 if ( v3 == 23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4947 v61 += 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4948 if ( v3 == 22 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4949 v61 += 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4950 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4951 case 0x200u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4952 if ( v3 == 36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4953 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4954 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[14]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4955 v62 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4956 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4957 v36 = v3 == 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4958 LABEL_108:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4959 if ( v36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4960 v5 += 40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4961 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4962 case 0x201u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4963 if ( v3 == 39 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4964 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4965 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[17]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4966 v34 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4967 v62 = v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4968 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4969 goto LABEL_136;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4970 case 0x202u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4971 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4972 v5 += 150;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4973 if ( v3 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4974 v5 -= 40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4975 if ( v3 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4976 v5 -= 40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4977 goto LABEL_145;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4978 case 0x203u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4979 if ( v3 == 42 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4980 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4981 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[20]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4982 v62 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4983 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4984 if ( v3 == 43 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4985 v61 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4986 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4987 case 0x204u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4988 if ( v3 == 17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4989 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4990 if ( v3 == 18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4991 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4992 if ( v3 == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4993 v5 += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4994 if ( v3 == 11 || v3 == 10 || v3 == 12 || v3 == 13 || v3 == 33 || v3 == 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4995 goto LABEL_166;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4996 v42 = v3 == 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4997 goto LABEL_165;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4998 case 0x205u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
4999 if ( v3 == 18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5000 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5001 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5002 case 0x206u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5003 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5004 v5 += 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5005 if ( v3 == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5006 v5 += 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5007 v43 = v3 == 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5008 goto LABEL_174;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5009 case 0x207u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5010 if ( v3 == 45 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5011 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5012 if ( v3 == 15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5013 v5 -= 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5014 v42 = v3 == 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5015 LABEL_165:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5016 if ( v42 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5017 LABEL_166:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5018 v5 -= 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5019 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5020 case 0x208u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5021 v35 = v3 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5022 goto LABEL_105;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5023 case 0x209u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5024 if ( v3 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5025 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5026 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5027 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5028 v41 = v3 == 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5029 goto LABEL_146;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5030 case 0x20Au:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5031 if ( v3 == 46 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5032 v61 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5033 v44 = v3 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5034 goto LABEL_190;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5035 case 0x20Bu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5036 if ( v3 == 34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5037 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5038 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[12]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5039 v62 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5040 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5041 if ( v3 == 12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5042 v5 += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5043 if ( v3 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5044 v5 += 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5045 v45 = v3 == 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5046 goto LABEL_199;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5047 case 0x20Cu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5048 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5049 v5 += 75;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5050 goto LABEL_145;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5051 case 0x20Du:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5052 if ( v3 == 5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5053 v5 += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5054 if ( v3 == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5055 v5 += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5056 if ( v3 == 11 || v3 == 10 || v3 == 12 || v3 == 13 || v3 == 33 || v3 == 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5057 goto LABEL_374;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5058 v43 = v3 == 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5059 LABEL_174:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5060 if ( v43 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5061 LABEL_374:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5062 v5 -= 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5063 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5064 case 0x20Eu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5065 if ( v3 == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5066 v5 += 150;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5067 if ( v3 == 44 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5068 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5069 if ( v3 == 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5070 v5 -= 25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5071 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5072 case 0x20Fu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5073 if ( v3 == 39 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5074 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5075 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[17]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5076 v34 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5077 v62 = v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5078 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5079 if ( v3 == 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5080 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5081 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[18]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5082 v62 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5083 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5084 LABEL_145:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5085 v41 = v3 == 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5086 LABEL_146:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5087 if ( v41 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5088 v5 -= 40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5089 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5090 case 0x210u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5091 if ( v3 == 38 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5092 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5093 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[16]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5094 v62 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5095 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5096 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5097 v5 += 75;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5098 v44 = v3 == 11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5099 LABEL_190:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5100 if ( v44 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5101 v5 -= 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5102 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5103 case 0x211u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5104 if ( v3 == 5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5105 v5 += 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5106 if ( v3 == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5107 v5 += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5108 v35 = v3 == 11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5109 LABEL_105:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5110 if ( v35 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5111 v5 += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5112 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5113 case 0x212u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5114 if ( v3 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5115 v5 -= 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5116 v45 = v3 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5117 LABEL_199:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5118 if ( v45 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5119 v5 -= 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5120 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5121 case 0x214u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5122 if ( v3 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5123 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5124 v46 = v3 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5125 goto LABEL_240;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5126 case 0x215u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5127 if ( v3 == 5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5128 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5129 v46 = v3 == 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5130 goto LABEL_240;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5131 case 0x216u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5132 if ( v3 == 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5133 v5 += 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5134 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5135 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5136 goto LABEL_315;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5137 case 0x217u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5138 if ( v3 == 21 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5139 v61 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5140 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5141 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5142 goto LABEL_253;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5143 case 0x218u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5144 goto LABEL_253;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5145 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5146 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5147 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5148 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5149 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5150 if ( *(int *)(v63 + 536) == v3 + 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5151 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5152 if ( (signed int)v3 >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5153 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5154 if ( (signed int)v3 <= 15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5155 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5156 v5 += *((int *)v6->pConditions + 9 * v31 + 135);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5157 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5158 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5159 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5160 if ( (signed int)v3 <= 23 && v5 < *((int *)v6->pConditions + 9 * v31 + 135) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5161 v5 = *((int *)v6->pConditions + 9 * v31 + 135);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5162 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5163 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5164 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5165 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5166 v34 = *(int *)(v63 + 544);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5167 if ( v34 > 48 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5168 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5169 switch ( v34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5170 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5171 case 54:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5172 goto LABEL_315;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5173 case 49:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5174 if ( v3 == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5175 goto LABEL_121;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5176 v50 = v3 == 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5177 goto LABEL_296;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5178 case 51:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5179 if ( v3 != 5 && v3 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5180 goto LABEL_309;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5181 goto LABEL_121;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5182 case 52:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5183 if ( v3 == 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5184 goto LABEL_121;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5185 v50 = v3 == 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5186 goto LABEL_296;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5187 case 53:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5188 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5189 goto LABEL_121;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5190 v50 = v3 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5191 goto LABEL_296;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5192 case 55:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5193 v46 = v3 == 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5194 goto LABEL_240;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5195 case 56:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5196 if ( !v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5197 goto LABEL_351;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5198 v53 = v3 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5199 goto LABEL_350;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5200 case 57:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5201 if ( v3 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5202 goto LABEL_351;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5203 v53 = v3 == 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5204 goto LABEL_350;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5205 case 50:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5206 if ( v3 == 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5207 v5 += 30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5208 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5209 case 60:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5210 if ( v3 != 23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5211 goto LABEL_336;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5212 if ( v5 >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5213 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5214 v5 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5215 LABEL_336:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5216 v54 = v3 == 22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5217 goto LABEL_345;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5218 case 61:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5219 if ( v3 != 17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5220 goto LABEL_340;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5221 if ( v5 >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5222 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5223 v5 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5224 LABEL_340:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5225 v54 = v3 == 18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5226 goto LABEL_345;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5227 case 62:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5228 if ( v3 != 19 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5229 goto LABEL_344;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5230 if ( v5 >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5231 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5232 v5 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5233 LABEL_344:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5234 v54 = v3 == 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5235 LABEL_345:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5236 if ( !v54 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5237 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5238 if ( v5 >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5239 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5240 v60 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5241 goto LABEL_360;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5242 case 67:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5243 v55 = v3 == 18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5244 goto LABEL_357;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5245 case 68:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5246 v53 = v3 == 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5247 goto LABEL_350;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5248 case 69:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5249 if ( v3 == 11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5250 v5 += 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5251 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5252 case 70:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5253 if ( v3 == 12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5254 v5 += 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5255 v55 = v3 == 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5256 LABEL_357:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5257 if ( v55 && v5 < 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5258 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5259 v60 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5260 LABEL_360:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5261 v5 = v60;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5262 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5263 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5264 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5265 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5266 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5267 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5268 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5269 if ( v34 == 48 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5270 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5271 if ( v3 == 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5272 v5 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5273 LABEL_315:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5274 v46 = v3 == 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5275 LABEL_240:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5276 if ( v46 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5277 v5 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5278 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5279 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5280 if ( v34 > 32 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5281 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5282 if ( v34 > 44 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5283 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5284 v51 = v34 - 45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5285 if ( !v51 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5286 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5287 if ( v3 == 5 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5288 goto LABEL_351;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5289 v53 = v3 == 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5290 LABEL_350:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5291 if ( v53 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5292 LABEL_351:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5293 v5 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5294 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5295 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5296 v52 = v51 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5297 if ( !v52 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5298 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5299 v40 = v3 == 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5300 LABEL_123:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5301 if ( v40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5302 v5 += 25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5303 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5304 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5305 if ( v52 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5306 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5307 LABEL_309:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5308 v50 = v3 == 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5309 goto LABEL_296;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5310 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5311 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5312 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5313 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5314 if ( v34 == 44 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5315 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5316 v50 = v3 == 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5317 goto LABEL_296;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5318 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5319 v34 -= 33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5320 if ( !v34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5321 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5322 if ( v3 != 38 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5323 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5324 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[16]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5325 goto LABEL_138;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5326 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5327 --v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5328 if ( !v34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5329 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5330 if ( v3 != 36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5331 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5332 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[14]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5333 goto LABEL_138;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5334 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5335 v49 = v34 - 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5336 if ( !v49 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5337 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5338 if ( (signed int)v3 >= 0 && (signed int)v3 <= 15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5339 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5340 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5341 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5342 if ( v49 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5343 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5344 if ( v3 != 3 && v3 != 7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5345 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5346 v50 = v3 == 9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5347 LABEL_296:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5348 if ( !v50 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5349 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5350 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5351 LABEL_121:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5352 v5 += 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5353 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5354 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5355 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5356 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5357 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5358 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5359 if ( v34 == 32 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5360 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5361 if ( v3 != 39 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5362 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5363 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[17]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5364 goto LABEL_138;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5365 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5366 if ( v34 > 28 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5367 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5368 v34 -= 29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5369 if ( v34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5370 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5371 --v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5372 if ( v34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5373 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5374 --v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5375 if ( v34 || v3 != 41 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5376 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5377 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[19]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5378 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5379 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5380 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5381 if ( v3 != 34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5382 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5383 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[12]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5384 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5385 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5386 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5387 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5388 if ( v3 != 37 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5389 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5390 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[15]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5391 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5392 goto LABEL_138;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5393 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5394 if ( v34 == 28 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5395 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5396 LABEL_136:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5397 if ( v3 == 42 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5398 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5399 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[20]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5400 LABEL_138:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5401 v62 = ((unsigned int)v34 >> 1) & 0x1F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5402 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5403 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5404 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5405 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5406 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5407 v47 = v34 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5408 if ( v47 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5409 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5410 v48 = v47 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5411 if ( v48 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5412 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5413 v34 = v48 - 24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5414 if ( v34 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5415 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5416 --v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5417 if ( v34 || v3 != 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5418 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5419 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[18]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5420 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5421 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5422 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5423 if ( v3 != 35 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5424 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5425 LOBYTE(v34) = LOBYTE(v6->pActiveSkills[13]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5426 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5427 goto LABEL_138;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5428 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5429 LABEL_118:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5430 if ( (signed int)v3 < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5431 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5432 v39 = __OFSUB__((int)v3, 6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5433 v37 = v3 == 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5434 v38 = v3 - 6 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5435 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5436 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5437 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5438 LABEL_253:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5439 if ( (signed int)v3 < 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5440 goto LABEL_361;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5441 v39 = __OFSUB__((int)v3, 15);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5442 v37 = v3 == 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5443 v38 = v3 - 15 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5444 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5445 if ( (unsigned __int8)(v38 ^ v39) | v37 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5446 goto LABEL_121;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5447 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5448 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5449 LABEL_361:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5450 ++v65;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5451 if ( (signed int)v65 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5452 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5453 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5454 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5455 if ( attr == 28 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5456 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5457 if ( IsUnarmed() != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5458 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5459 if ( v6->HasItemEquipped(EQUIP_TWO_HANDED) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5460 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5461 v22 = v21->GetEquippedItemEquipType(1u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5462 if ( v22 >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5463 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5464 if ( v22 <= 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5465 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5466 if ( v6->pEquipment.uOffHand || (v24 = v23, pItemsTable->pItems[v23].uSkillType != 4) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5467 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5468 v24 = v23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5469 v26 = pItemsTable->pItems[v23].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5470 v25 = pItemsTable->pItems[v23].uDamageDice;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5471 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5472 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5473 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5474 v25 = pItemsTable->pItems[v24].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5475 v26 = pItemsTable->pItems[v24].uDamageDice + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5476 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5477 v5 = pItemsTable->pItems[v24].uDamageMod + v25 * v26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5478 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5479 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5480 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5481 if ( a3 || !v6->HasItemEquipped((ITEM_EQUIP_TYPE)0) || (v28 = v27->GetEquippedItemEquipType(0), v28 < 0) || v28 > 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5482 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5483 v15 = pItemsTable->pItems[v29].uDamageMod;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5484 v14 = pItemsTable->pItems[v29].uDamageDice * pItemsTable->pItems[v29].uDamageRoll;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5485 goto LABEL_88;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5486 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5487 v59 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5488 LABEL_74:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5489 v5 = v59;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5490 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5491 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5492 if ( (signed int)attr < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5493 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5494 if ( (signed int)attr <= 23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5495 goto LABEL_95;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5496 if ( (signed int)attr <= 24 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5497 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5498 if ( (signed int)attr <= 26 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5499 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5500 if ( IsUnarmed() == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5501 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5502 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5503 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5504 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5505 if ( v6->HasItemEquipped(EQUIP_TWO_HANDED) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5506 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5507 v17 = v16->GetEquippedItemEquipType(1u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5508 if ( v17 >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5509 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5510 if ( v17 <= 2 )
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
5511 v5 = pItemsTable->pItems[*(int *)&v6->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v6->pEquipment.uMainHand + 5]].uDamageMod;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5512 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5513 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5514 if ( a3 || !v6->HasItemEquipped((ITEM_EQUIP_TYPE)0) || (v19 = v18->GetEquippedItemEquipType(0), v19 < 0) || v19 > 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5515 return v5 + v62 + v61;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
5516 v20 = *(int *)&v6->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v6->pEquipment.uOffHand + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5517 goto LABEL_365;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5518 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5519 if ( attr == 27 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5520 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5521 if ( IsUnarmed() == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5522 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5523 v5 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5524 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5525 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5526 if ( v6->HasItemEquipped(EQUIP_TWO_HANDED) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5527 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5528 v9 = v8->GetEquippedItemEquipType(1u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5529 if ( v9 >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5530 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5531 if ( v9 <= 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5532 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5533 v5 = pItemsTable->pItems[v10].uDamageDice + pItemsTable->pItems[v10].uDamageMod;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5534 if ( !v6->pEquipment.uOffHand )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5535 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5536 if ( pItemsTable->pItems[v10].uSkillType == 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5537 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5538 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5539 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5540 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5541 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5542 if ( a3 || !v6->HasItemEquipped((ITEM_EQUIP_TYPE)0) || (v12 = v11->GetEquippedItemEquipType(0), v12 < 0) || v12 > 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5543 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5544 v14 = pItemsTable->pItems[v13].uDamageMod;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5545 v15 = pItemsTable->pItems[v13].uDamageDice;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5546 LABEL_88:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5547 v5 += v15 + v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5548 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5549 return v5 + v62 + v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5550 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5551
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5552 //----- (0048F73C) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5553 int Player::GetMagicalBonus(enum CHARACTER_ATTRIBUTE_TYPE a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5554 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5555 int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5556 int v3; // eax@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5557 int v4; // ecx@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5558
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5559 switch (a2)
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5560 {
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5561 case CHARACTER_ATTRIBUTE_LEVEL: return 0;
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5562 }
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5563
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5564 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5565 if ( (signed int)a2 > 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5566 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5567 if ( (signed int)a2 <= 15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5568 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5569 switch ( a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5570 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5571 case CHARACTER_ATTRIBUTE_RESIST_BODY:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5572 v3 = this->pPlayerBuffs[2].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5573 v4 = pParty->pPartyBuffs[1].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5574 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5575 case CHARACTER_ATTRIBUTE_RESIST_AIR:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5576 v3 = this->pPlayerBuffs[0].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5577 v4 = pParty->pPartyBuffs[0].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5578 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5579 case CHARACTER_ATTRIBUTE_RESIST_WATER:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5580 v3 = this->pPlayerBuffs[22].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5581 v4 = pParty->pPartyBuffs[17].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5582 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5583 case CHARACTER_ATTRIBUTE_RESIST_EARTH:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5584 v3 = this->pPlayerBuffs[3].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5585 v4 = pParty->pPartyBuffs[4].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5586 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5587 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5588 if ( a2 != 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5589 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5590 v3 = this->pPlayerBuffs[9].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5591 v4 = pParty->pPartyBuffs[12].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5592 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5593 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5594 return v4 + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5595 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5596 if ( a2 != CHARACTER_ATTRIBUTE_ATTACK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5597 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5598 if ( a2 == CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5599 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5600 v3 = this->pPlayerBuffs[8].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5601 v4 = pParty->pPartyBuffs[9].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5602 return v4 + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5603 }
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5604 if ( a2 != CHARACTER_ATTRIBUTE_RANGED_ATTACK )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5605 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5606 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5607 return this->pPlayerBuffs[1].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5608 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5609 if ( a2 == 10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5610 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5611 v3 = this->pPlayerBuffs[5].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5612 v4 = pParty->pPartyBuffs[6].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5613 return v4 + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5614 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5615 switch ( a2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5616 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5617 case CHARACTER_ATTRIBUTE_STRENGTH:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5618 v3 = pPlayerBuffs[19].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5619 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5620 case CHARACTER_ATTRIBUTE_INTELLIGENCE:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5621 v3 = pPlayerBuffs[17].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5622 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5623 case CHARACTER_ATTRIBUTE_WILLPOWER:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5624 v3 = pPlayerBuffs[20].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5625 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5626 case CHARACTER_ATTRIBUTE_ENDURANCE:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5627 v3 = pPlayerBuffs[16].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5628 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5629 case CHARACTER_ATTRIBUTE_ACCURACY:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5630 v3 = pPlayerBuffs[15].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5631 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5632 case CHARACTER_ATTRIBUTE_SPEED:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5633 v3 = pPlayerBuffs[21].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5634 goto LABEL_5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5635 case CHARACTER_ATTRIBUTE_LUCK:
24
74940016abc8 * on Players
Nomad
parents: 23
diff changeset
5636 v3 = pPlayerBuffs[18].uPower;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5637 LABEL_5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5638 v4 = pParty->pPartyBuffs[2].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5639 return v4 + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5640 case CHARACTER_ATTRIBUTE_AC_BONUS:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5641 v3 = this->pPlayerBuffs[14].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5642 v4 = pParty->pPartyBuffs[15].uPower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5643 return v4 + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5644 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5645 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5646 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5647 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5648 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5649
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5650 //----- (0048F882) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5651 char Player::GetActualSkillLevel(enum PLAYER_SKILL_TYPE uSkillType)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5652 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5653 signed int v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5654 unsigned __int16 v3; // ax@126
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5655 char result; // al@127
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5656 unsigned int v5; // [sp-4h] [bp-14h]@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5657 signed int v6; // [sp-4h] [bp-14h]@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5658 unsigned int v7; // [sp-4h] [bp-14h]@35
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5659 CHARACTER_ATTRIBUTE_TYPE v8; // [sp-4h] [bp-14h]@68
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5660 Player *v9; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5661
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5662 v2 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5663 v9 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5664 if ( uSkillType > PLAYER_SKILL_DODGE )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5665 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5666 if ( uSkillType != PLAYER_SKILL_UNARMED )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5667 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5668 if ( uSkillType == PLAYER_SKILL_MONSTER_ID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5669 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5670 if ( CheckHiredNPCSpeciality(0x3Au) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5671 v2 = 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5672 if ( CheckHiredNPCSpeciality(0x39u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5673 v2 += 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5674 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5675 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5676 if ( uSkillType == PLAYER_SKILL_ARMSMASTER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5677 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5678 if ( CheckHiredNPCSpeciality(0xFu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5679 v2 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5680 if ( CheckHiredNPCSpeciality(0x10u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5681 v2 += 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5682 goto LABEL_64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5683 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5684 if ( uSkillType == PLAYER_SKILL_STEALING )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5685 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5686 if ( CheckHiredNPCSpeciality(0x33u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5687 v2 = 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5688 goto LABEL_64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5689 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5690 if ( uSkillType == PLAYER_SKILL_ALCHEMY )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5691 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5692 if ( CheckHiredNPCSpeciality(0x17u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5693 v2 = 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5694 if ( CheckHiredNPCSpeciality(0x18u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5695 v2 += 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5696 goto LABEL_64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5697 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5698 if ( uSkillType == 36 ) // learning
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5699 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5700 if ( CheckHiredNPCSpeciality(0xDu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5701 v2 = 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5702 if ( CheckHiredNPCSpeciality(0xEu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5703 v2 += 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5704 if ( CheckHiredNPCSpeciality(4u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5705 v2 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5706 goto LABEL_64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5707 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5708 goto LABEL_86;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5709 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5710 if ( !CheckHiredNPCSpeciality(0x38u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5711 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5712 LABEL_85:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5713 v2 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5714 goto LABEL_86;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5715 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5716 if ( uSkillType == PLAYER_SKILL_DODGE )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5717 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5718 if ( !CheckHiredNPCSpeciality(0x38u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5719 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5720 v6 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5721 goto LABEL_51;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5722 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5723 if ( uSkillType <= PLAYER_SKILL_ITEM_ID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5724 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5725 if ( uSkillType != PLAYER_SKILL_ITEM_ID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5726 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5727 if ( (signed int)uSkillType < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5728 goto LABEL_86;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5729 if ( uSkillType > PLAYER_SKILL_PLATE )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5730 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5731 if ( uSkillType <= PLAYER_SKILL_EARTH )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5732 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5733 if ( CheckHiredNPCSpeciality(0x11u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5734 v2 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5735 if ( CheckHiredNPCSpeciality(0x12u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5736 v2 += 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5737 v5 = 19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5738 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5739 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5740 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5741 if ( uSkillType > PLAYER_SKILL_BODY )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5742 goto LABEL_86;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5743 if ( CheckHiredNPCSpeciality(0x35u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5744 v2 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5745 if ( CheckHiredNPCSpeciality(0x36u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5746 v2 += 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5747 v5 = 55;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5748 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5749 if ( CheckHiredNPCSpeciality(v5) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5750 v2 += 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5751 if ( v9->uClass == 31 && sub_476387() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5752 v2 += 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5753 LABEL_86:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5754 if ( uSkillType <= PLAYER_SKILL_DARK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5755 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5756 if ( uSkillType == PLAYER_SKILL_DARK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5757 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5758 v8 = (CHARACTER_ATTRIBUTE_TYPE)42;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5759 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5760 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5761 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5762 if ( uSkillType > PLAYER_SKILL_EARTH )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5763 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5764 switch ( uSkillType )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5765 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5766 case 16:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5767 v8 = (CHARACTER_ATTRIBUTE_TYPE)38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5768 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5769 case 17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5770 v8 = (CHARACTER_ATTRIBUTE_TYPE)39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5771 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5772 case 18:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5773 v8 = (CHARACTER_ATTRIBUTE_TYPE)40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5774 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5775 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5776 if ( uSkillType != 19 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5777 goto LABEL_126;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5778 v8 = (CHARACTER_ATTRIBUTE_TYPE)41;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5779 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5780 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5781 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5782 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5783 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5784 switch ( uSkillType )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5785 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5786 case PLAYER_SKILL_EARTH:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5787 v8 = (CHARACTER_ATTRIBUTE_TYPE)37;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5788 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5789 case PLAYER_SKILL_BOW:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5790 v8 = (CHARACTER_ATTRIBUTE_TYPE)44;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5791 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5792 case PLAYER_SKILL_SHIELD:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5793 v8 = (CHARACTER_ATTRIBUTE_TYPE)45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5794 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5795 case PLAYER_SKILL_FIRE:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5796 v8 = (CHARACTER_ATTRIBUTE_TYPE)34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5797 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5798 case PLAYER_SKILL_AIR:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5799 v8 = (CHARACTER_ATTRIBUTE_TYPE)35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5800 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5801 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5802 if ( uSkillType != 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5803 goto LABEL_126;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5804 v8 = (CHARACTER_ATTRIBUTE_TYPE)36;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5805 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5806 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5807 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5808 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5809 goto LABEL_125;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5810 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5811 if ( uSkillType <= PLAYER_SKILL_MONSTER_ID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5812 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5813 if ( uSkillType != PLAYER_SKILL_MONSTER_ID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5814 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5815 LABEL_83:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5816 v8 = (CHARACTER_ATTRIBUTE_TYPE)20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5817 goto LABEL_125;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5818 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5819 LABEL_64:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5820 switch ( uSkillType )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5821 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5822 case PLAYER_SKILL_ARMSMASTER:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5823 v8 = (CHARACTER_ATTRIBUTE_TYPE)21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5824 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5825 case PLAYER_SKILL_STEALING:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5826 v8 = (CHARACTER_ATTRIBUTE_TYPE)17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5827 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5828 case PLAYER_SKILL_ALCHEMY:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5829 v8 = (CHARACTER_ATTRIBUTE_TYPE)16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5830 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5831 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5832 if ( uSkillType != 36 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5833 goto LABEL_126;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5834 v8 = (CHARACTER_ATTRIBUTE_TYPE)46;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5835 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5836 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5837 goto LABEL_125;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5838 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5839 if ( !CheckHiredNPCSpeciality(0x2Eu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5840 goto LABEL_86;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5841 goto LABEL_85;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5842 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5843 if ( !CheckHiredNPCSpeciality(0x39u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5844 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5845 v6 = 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5846 LABEL_51:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5847 v2 = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5848 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5849 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5850 if ( uSkillType == PLAYER_SKILL_MERCHANT )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5851 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5852 if ( CheckHiredNPCSpeciality(0x14u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5853 v2 = 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5854 if ( CheckHiredNPCSpeciality(0x15u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5855 v2 += 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5856 if ( CheckHiredNPCSpeciality(0x30u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5857 v2 += 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5858 v7 = 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5859 LABEL_47:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5860 if ( CheckHiredNPCSpeciality(v7) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5861 v2 += 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5862 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5863 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5864 if ( uSkillType != PLAYER_SKILL_PERCEPTION )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5865 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5866 if ( uSkillType != PLAYER_SKILL_TRAP_DISARM )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5867 goto LABEL_86;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5868 if ( CheckHiredNPCSpeciality(0x19u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5869 v2 = 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5870 if ( CheckHiredNPCSpeciality(0x1Au) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5871 v2 += 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5872 v7 = 51;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5873 goto LABEL_47;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5874 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5875 if ( CheckHiredNPCSpeciality(0x16u) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5876 v2 = 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5877 if ( CheckHiredNPCSpeciality(0x2Fu) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5878 v2 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5879 LABEL_112:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5880 switch ( uSkillType )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5881 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5882 case PLAYER_SKILL_ITEM_ID:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5883 v8 = (CHARACTER_ATTRIBUTE_TYPE)19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5884 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5885 case PLAYER_SKILL_MEDITATION:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5886 v8 = (CHARACTER_ATTRIBUTE_TYPE)43;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5887 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5888 case PLAYER_SKILL_TRAP_DISARM:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5889 v8 = (CHARACTER_ATTRIBUTE_TYPE)18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5890 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5891 case PLAYER_SKILL_DODGE:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5892 v8 = (CHARACTER_ATTRIBUTE_TYPE)22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5893 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5894 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5895 if ( uSkillType != 31 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5896 goto LABEL_126;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5897 v8 = (CHARACTER_ATTRIBUTE_TYPE)23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5898 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5899 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5900 LABEL_125:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5901 v2 += v9->GetItemsBonus(v8, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5902 LABEL_126:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5903 v3 = v9->pActiveSkills[uSkillType];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5904 if ( v2 + (v9->pActiveSkills[uSkillType] & 0x3F) < 60 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5905 result = v2 + v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5906 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5907 result = v3 & 0xFC | 0x3C;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5908 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5909 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5910
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5911 //----- (0048FC00) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5912 int Player::GetSkillBonus(enum CHARACTER_ATTRIBUTE_TYPE a2)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5913 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5914 Player *v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5915 int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5916 char v4; // di@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5917 signed int v5; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5918 unsigned int v6; // eax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5919 unsigned __int8 v7; // sf@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5920 unsigned __int8 v8; // of@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5921 PlayerEquipment *v9; // ebx@19
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5922 Player *v10; // ecx@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5923 enum PLAYER_SKILL_TYPE v11; // edi@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5924 int v12; // eax@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5925 int v13; // edi@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5926 char v14; // di@25
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5927 signed int v15; // esi@25
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5928 char v16; // al@32
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5929 int v18; // eax@36
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5930 unsigned int v19; // eax@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5931 ITEM_EQUIP_TYPE v20; // edi@40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5932 int v21; // edx@41
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5933 int v22; // eax@42
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5934 enum PLAYER_SKILL_TYPE v23; // edi@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5935 unsigned __int16 v24; // ax@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5936 unsigned __int16 v25; // bx@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5937 unsigned int v26; // eax@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5938 unsigned __int8 v27; // sf@50
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5939 unsigned __int8 v28; // of@50
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5940 unsigned int v29; // eax@52
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5941 int v30; // eax@55
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5942 int v31; // eax@58
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5943 unsigned int v32; // eax@59
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5944 int v33; // eax@65
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5945 char v34; // si@65
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5946 ITEM_EQUIP_TYPE v35; // edi@69
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5947 int v36; // edx@70
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5948 int v37; // eax@71
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5949 enum PLAYER_SKILL_TYPE v38; // edi@74
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5950 int v39; // eax@74
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5951 int v40; // eax@89
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5952 char v41; // si@89
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5953 int v42; // eax@96
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5954 enum PLAYER_SKILL_TYPE v43; // edx@97
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5955 int v44; // eax@97
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5956 int v45; // eax@98
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5957 int v46; // eax@99
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5958 int v47; // eax@100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5959 int v48; // eax@101
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5960 int v49; // eax@102
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5961 unsigned __int16 v50; // ax@113
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5962 char v51; // di@113
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5963 unsigned int v52; // eax@113
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5964 int v53; // edi@113
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5965 signed int i; // ecx@113
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5966 unsigned __int16 v55; // ax@118
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5967 char v56; // si@118
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5968 unsigned int v57; // eax@118
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5969 int v58; // esi@121
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5970 signed int j; // ecx@121
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5971 int v60; // edi@126
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5972 int v61; // eax@126
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5973 signed int v62; // [sp-4h] [bp-30h]@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5974 signed int v63; // [sp-4h] [bp-30h]@80
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5975 int v64; // [sp+Ch] [bp-20h]@104
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5976 int v65; // [sp+10h] [bp-1Ch]@104
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5977 int v66; // [sp+14h] [bp-18h]@104
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5978 int v67; // [sp+18h] [bp-14h]@104
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5979 int v68; // [sp+1Ch] [bp-10h]@69
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5980 PlayerEquipment *v69; // [sp+20h] [bp-Ch]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5981 int v70; // [sp+24h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5982 ITEM_EQUIP_TYPE v71; // [sp+28h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5983 int a1; // [sp+34h] [bp+8h]@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5984 int a1a; // [sp+34h] [bp+8h]@74
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5985 signed int a1b; // [sp+34h] [bp+8h]@94
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5986
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5987 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5988 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5989 v69 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5990 v71 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5991 LOBYTE(v3) = GetActualSkillLevel(PLAYER_SKILL_ARMSMASTER);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5992 v4 = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5993 v5 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5994 if ( v3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5995 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5996 v6 = SkillToMastery(v3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5997 if ( a2 == CHARACTER_ATTRIBUTE_MELEE_DMG_BONUS )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5998 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
5999 if ( (signed int)v6 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6000 goto LABEL_4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6001 v8 = __OFSUB__(v6, 3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6002 v7 = ((v6 - 3) & 0x80000000u) != 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6003 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6004 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6005 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6006 if ( a2 != CHARACTER_ATTRIBUTE_ATTACK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6007 goto LABEL_11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6008 if ( (signed int)v6 >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6009 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6010 LABEL_4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6011 v71 = (ITEM_EQUIP_TYPE)2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6012 LABEL_11:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6013 v69 = (PlayerEquipment *)(v71 * (v4 & 0x3F));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6014 goto LABEL_12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6015 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6016 v8 = __OFSUB__(v6, 2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6017 v7 = ((v6 - 2) & 0x80000000u) != 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6018 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6019 if ( !(v7 ^ v8) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6020 v71 = (ITEM_EQUIP_TYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6021 goto LABEL_11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6022 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6023 LABEL_12:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6024 if ( a2 == CHARACTER_ATTRIBUTE_HEALTH )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6025 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6026 v60 = pBaseHealthPerLevelByClass[v2->uClass];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6027 v61 = v2->GetBodybuilding();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6028 return v60 * v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6029 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6030 if ( a2 == CHARACTER_ATTRIBUTE_MANA )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6031 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6032 v60 = pBaseManaPerLevelByClass[v2->uClass];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6033 v61 = v2->GetMediatation();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6034 return v60 * v61;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6035 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6036 if ( a2 != 9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6037 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6038 if ( a2 != CHARACTER_ATTRIBUTE_ATTACK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6039 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6040 if ( a2 <= CHARACTER_ATTRIBUTE_ATTACK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6041 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6042 if ( a2 > CHARACTER_ATTRIBUTE_MELEE_DMG_MAX )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6043 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6044 if ( a2 != CHARACTER_ATTRIBUTE_RANGED_ATTACK )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6045 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6046 v71 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6047 v9 = &v2->pEquipment;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6048 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6049 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6050 if ( v2->HasItemEquipped(v71) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6051 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6052 v11 = (PLAYER_SKILL_TYPE)pItemsTable->pItems[*(int *)&v2->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v9->uOffHand + 5]].uSkillType;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6053 LOBYTE(v12) = v10->GetActualSkillLevel(v11);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6054 a1 = v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6055 SkillToMastery(v12);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6056 v13 = v11 - 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6057 if ( !v13 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6058 return a1 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6059 if ( v13 == 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6060 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6061 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6062 v71 = (ITEM_EQUIP_TYPE)((int)v71 + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6063 v9 = (PlayerEquipment *)((char *)v9 + 4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6064 if ( (signed int)v71 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6065 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6066 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6067 v14 = a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6068 v15 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6069 if ( (signed int)SkillToMastery(a1) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6070 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6071 v62 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6072 goto LABEL_31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6073 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6074 if ( (signed int)SkillToMastery(a1) >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6075 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6076 v62 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6077 goto LABEL_31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6078 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6079 if ( (signed int)SkillToMastery(a1) < 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6080 goto LABEL_32;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6081 goto LABEL_30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6082 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6083 if ( v2->IsUnarmed() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6084 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6085 LOBYTE(v18) = v2->GetActualSkillLevel(PLAYER_SKILL_UNARMED);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6086 v14 = v18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6087 if ( !v18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6088 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6089 v15 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6090 v19 = SkillToMastery(v18);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6091 if ( (signed int)v19 < 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6092 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6093 if ( (signed int)v19 >= 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6094 v15 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6095 LABEL_32:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6096 v16 = v14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6097 return v15 * (v16 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6098 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6099 LABEL_30:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6100 v62 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6101 LABEL_31:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6102 v15 = v62;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6103 goto LABEL_32;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6104 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6105 v20 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6106 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6107 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6108 if ( v2->HasItemEquipped(v20) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6109 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6110 v22 = *(int *)&v2->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(int *)v21 + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6111 if ( pItemsTable->pItems[v22].uEquipType <= 1u )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6112 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6113 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6114 v20 = (ITEM_EQUIP_TYPE)((int)v20 + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6115 if ( (signed int)v20 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6116 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6117 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6118 v71 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6119 v23 = (PLAYER_SKILL_TYPE)pItemsTable->pItems[v22].uSkillType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6120 LOBYTE(v24) = v2->GetActualSkillLevel(v23);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6121 v25 = v24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6122 v26 = SkillToMastery(v24);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6123 if ( !v23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6124 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6125 if ( (signed int)SkillToMastery(v25) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6126 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6127 LOBYTE(v31) = v2->GetActualSkillLevel(PLAYER_SKILL_UNARMED);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6128 LOBYTE(v25) = v31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6129 if ( v31 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6130 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6131 v15 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6132 v32 = SkillToMastery(v31);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6133 if ( (signed int)v32 < 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6134 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6135 if ( (signed int)v32 >= 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6136 v15 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6137 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6138 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6139 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6140 v15 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6141 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6142 v16 = v25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6143 return v15 * (v16 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6144 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6145 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6146 goto LABEL_55;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6147 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6148 if ( v23 == PLAYER_SKILL_DAGGER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6149 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6150 v29 = SkillToMastery(v25);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6151 v28 = __OFSUB__(v29, 4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6152 v27 = ((v29 - 4) & 0x80000000u) != 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6153 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6154 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6155 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6156 if ( v23 <= PLAYER_SKILL_DAGGER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6157 goto LABEL_55;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6158 if ( v23 > PLAYER_SKILL_SPEAR )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6159 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6160 if ( v23 == PLAYER_SKILL_MACE )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6161 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6162 v28 = __OFSUB__(v26, 2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6163 v27 = ((v26 - 2) & 0x80000000u) != 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6164 goto LABEL_53;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6165 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6166 LABEL_55:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6167 v30 = v71 * (v25 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6168 return (int)((char *)v69 + v30);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6169 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6170 v28 = __OFSUB__(v26, 3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6171 v27 = ((v26 - 3) & 0x80000000u) != 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6172 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6173 LABEL_53:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6174 if ( !(v27 ^ v28) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6175 v71 = (ITEM_EQUIP_TYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6176 goto LABEL_55;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6177 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6178 if ( v2->IsUnarmed() == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6179 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6180 LOBYTE(v33) = v2->GetActualSkillLevel(PLAYER_SKILL_UNARMED);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6181 v34 = v33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6182 if ( !v33 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6183 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6184 if ( (signed int)SkillToMastery(v33) >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6185 v5 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6186 v30 = v5 * (v34 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6187 return (int)((char *)v69 + v30);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6188 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6189 v35 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6190 v68 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6191 while ( 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6192 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6193 if ( v2->HasItemEquipped(v35) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6194 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6195 v37 = *(int *)&v2->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(int *)v36 + 5];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6196 if ( pItemsTable->pItems[v37].uEquipType <= 1u )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6197 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6198 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6199 v35 = (ITEM_EQUIP_TYPE)((int)v35 + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6200 if ( (signed int)v35 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6201 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6202 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6203 v38 = (PLAYER_SKILL_TYPE)pItemsTable->pItems[v37].uSkillType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6204 LOBYTE(v39) = v2->GetActualSkillLevel(v38);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6205 a1a = v39;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6206 SkillToMastery(v39);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6207 v71 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6208 if ( v38 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6209 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6210 if ( (signed int)v38 > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6211 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6212 if ( (signed int)v38 <= 4 || v38 == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6213 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6214 v71 = (ITEM_EQUIP_TYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6215 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6216 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6217 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6218 if ( v38 == 7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6219 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6220 if ( (signed int)SkillToMastery(a1a) < 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6221 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6222 if ( (signed int)SkillToMastery(a1a) < 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6223 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6224 if ( (signed int)SkillToMastery(a1a) < 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6225 return v5 * (a1a & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6226 v63 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6227 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6228 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6229 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6230 v63 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6231 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6232 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6233 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6234 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6235 v63 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6236 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6237 v5 = v63;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6238 return v5 * (a1a & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6239 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6240 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6241 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6242 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6243 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6244 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6245 v71 = (ITEM_EQUIP_TYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6246 if ( (signed int)SkillToMastery(a1a) >= 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6247 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6248 LOBYTE(v40) = v2->GetActualSkillLevel(PLAYER_SKILL_UNARMED);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6249 v41 = v40;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6250 if ( v40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6251 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6252 if ( (signed int)SkillToMastery(v40) >= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6253 v5 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6254 v68 = v5 * (v41 & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6255 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6256 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6257 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6258 v30 = v68 + v71 * (a1a & 0x3F);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6259 return (int)((char *)v69 + v30);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6260 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6261 a1b = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6262 v71 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6263 v68 = 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6264 v69 = &v2->pEquipment;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6265 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6266 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6267 if ( !v69->uOffHand || (v42 = (int)((char *)v2 + 36 * v69->uOffHand), *(char *)(v42 + 516) & 2) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6268 goto LABEL_117;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6269 v43 = (PLAYER_SKILL_TYPE)pItemsTable->pItems[*(int *)(v42 + 496)].uSkillType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6270 v44 = pItemsTable->pItems[*(int *)(v42 + 496)].uSkillType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6271 if ( !v44 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6272 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6273 v64 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6274 v65 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6275 LABEL_111:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6276 v66 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6277 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6278 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6279 v45 = v44 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6280 if ( !v45 || (v46 = v45 - 3) == 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6281 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6282 v64 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6283 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6284 v66 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6285 v67 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6286 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6287 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6288 v47 = v46 - 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6289 if ( v47 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6290 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6291 v48 = v47 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6292 if ( v48 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6293 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6294 v49 = v48 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6295 if ( v49 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6296 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6297 if ( v49 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6298 goto LABEL_117;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6299 a1b = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6300 v64 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6301 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6302 v66 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6303 v67 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6304 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6305 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6306 a1b = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6307 v64 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6308 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6309 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6310 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6311 v71 = (ITEM_EQUIP_TYPE)1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6312 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6313 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6314 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6315 a1b = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6316 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6317 v64 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6318 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6319 v66 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6320 LABEL_112:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6321 v67 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6322 LABEL_113:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6323 LOBYTE(v50) = v2->GetActualSkillLevel(v43);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6324 v51 = v50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6325 v52 = SkillToMastery(v50);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6326 v53 = v51 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6327 for ( i = 0; i < (signed int)v52; ++i )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6328 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6329 if ( *(&v64 + i) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6330 v70 += v53;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6331 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6332 LABEL_117:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6333 v69 = (PlayerEquipment *)((char *)v69 + 4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6334 --v68;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6335 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6336 while ( v68 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6337 v64 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6338 v65 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6339 v66 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6340 v67 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6341 LOBYTE(v55) = v2->GetActualSkillLevel(PLAYER_SKILL_DODGE);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6342 v56 = v55;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6343 v57 = SkillToMastery(v55);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6344 if ( !a1b && (!v71 || v57 == 4) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6345 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6346 v58 = v56 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6347 for ( j = 0; j < (signed int)v57; ++j )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6348 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6349 if ( *(&v64 + j) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6350 v70 += v58;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6351 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6352 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6353 return v70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6354 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6355
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6356 //----- (00490109) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6357 // faces are: 0 1 2 3 human males
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6358 // 4 5 6 7 human females
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6359 // 8 9 elf males
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6360 // 10 11 elf females
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6361 // 12 13 dwarf males
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6362 // 14 15 dwarf females
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6363 // 16 17 goblin males
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6364 // 18 19 goblin females
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6365 // 20 lich male
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6366 // 21 lich female
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6367 // 22 underwater suits (unused)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6368 // 23 zombie male
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6369 // 24 zombie female
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6370 enum CHARACTER_RACE Player::GetRace()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6371 {
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6372 if ( uFace > 15 )
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6373 {
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6374 if ( uFace >= 16 && uFace <= 19 )
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6375 return CHARACTER_RACE_GOBLIN;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6376 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6377 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6378 {
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6379 if ( uFace >= 12 )
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6380 {
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6381 return CHARACTER_RACE_DWARF;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6382 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6383 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6384 {
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6385 if ( uFace >= 0 )
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6386 {
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6387 if ( uFace <= 7 )
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6388 {
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6389 return CHARACTER_RACE_HUMAN;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6390 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6391 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6392 {
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6393 if ( uFace <= 11 )
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6394 return CHARACTER_RACE_ELF;
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6395 }
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6396 }
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6397 }
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6398 }
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6399 return CHARACTER_RACE_HUMAN;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6400 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6401
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6402 //----- (00490141) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6403 int Player::GetSexByVoice()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6404 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6405 signed int result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6406
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6407 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6408 switch ( this->uVoiceID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6409 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6410 case 0u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6411 case 1u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6412 case 2u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6413 case 3u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6414 case 8u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6415 case 9u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6416 case 0xCu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6417 case 0xDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6418 case 0x10u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6419 case 0x11u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6420 case 0x14u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6421 case 0x17u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6422 result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6423 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6424 case 4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6425 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6426 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6427 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6428 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6429 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6430 case 0xEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6431 case 0xFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6432 case 0x12u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6433 case 0x13u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6434 case 0x15u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6435 case 0x18u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6436 result = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6437 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6438 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6439 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6440 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6441 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6442 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6443
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6444 //----- (00490188) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6445 void Player::SetInitialStats()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6446 {
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6447 auto v1 = GetRace();
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6448 uMight = stru_4ED7B0.race[v1].attr[0].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6449 uIntelligence = stru_4ED7B0.race[v1].attr[1].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6450 uWillpower = stru_4ED7B0.race[v1].attr[2].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6451 uEndurance = stru_4ED7B0.race[v1].attr[3].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6452 uAccuracy = stru_4ED7B0.race[v1].attr[4].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6453 uSpeed = stru_4ED7B0.race[v1].attr[5].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6454 uLuck = stru_4ED7B0.race[v1].attr[6].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6455 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6456
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6457 //----- (004901FC) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6458 int Player::SetSexByVoice()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6459 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6460 __int64 v1; // qax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6461
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6462 v1 = this->uVoiceID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6463 switch ( (int)v1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6464 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6465 case 0:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6466 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6467 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6468 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6469 case 8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6470 case 9:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6471 case 0xC:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6472 case 0xD:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6473 case 0x10:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6474 case 0x11:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6475 case 0x14:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6476 case 0x17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6477 BYTE4(v1) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6478 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6479 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6480 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6481 case 6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6482 case 7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6483 case 0xA:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6484 case 0xB:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6485 case 0xE:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6486 case 0xF:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6487 case 0x12:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6488 case 0x13:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6489 case 0x15:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6490 case 0x18:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6491 BYTE4(v1) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6492 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6493 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6494 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6495 }
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
6496 this->uSex = (PLAYER_SEX)BYTE4(v1);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6497 return v1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6498 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6499
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6500 //----- (0049024A) --------------------------------------------------------
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6501 void Player::Reset(unsigned __int8 classID)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6502 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6503 sLevelModifier = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6504 sAgeModifier = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6505
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6506 uClass = classID;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6507 uLuckBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6508 uSpeedBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6509 uAccuracyBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6510 uEnduranceBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6511 uWillpowerBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6512 uIntelligenceBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6513 uMightBonus = 0;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6514 uLevel = 1;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6515 uExperience = 251 + rand() % 100;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6516 uBirthYear = 1147 - rand() % 6;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6517 memset(pActiveSkills, 0, 32 * sizeof(short));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6518 memset(field_152, 0, 64);
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6519 memset(&spellbook, 0, sizeof(PlayerSpells));
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6520
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6521 for (uint i = 0; i < 37; ++i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6522 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6523 if (pSkillAvailabilityPerClass[uClass / 4][i] != 2)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6524 continue;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6525
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6526 pActiveSkills[i] = 1;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6527
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6528 switch (i)
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6529 {
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6530 case PLAYER_SKILL_FIRE: spellbook.pFireSpellbook.bIsSpellbookAvailable = true; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6531 case PLAYER_SKILL_AIR: spellbook.pAirSpellbook.bIsSpellbookAvailable = true; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6532 case PLAYER_SKILL_WATER: spellbook.pWaterSpellbook.bIsSpellbookAvailable = true; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6533 case PLAYER_SKILL_EARTH: spellbook.pEarthSpellbook.bIsSpellbookAvailable = true; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6534 case PLAYER_SKILL_SPIRIT: spellbook.pSpiritSpellbook.bIsSpellbookAvailable = true; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6535 case PLAYER_SKILL_MIND: spellbook.pMindSpellbook.bIsSpellbookAvailable = 1; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6536 case PLAYER_SKILL_BODY: spellbook.pBodySpellbook.bIsSpellbookAvailable = 1; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6537 case PLAYER_SKILL_LIGHT: spellbook.pLightSpellbook.bIsSpellbookAvailable = 1; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6538 case PLAYER_SKILL_DARK: spellbook.pDarkSpellbook.bIsSpellbookAvailable = 1; break;
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6539 }
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6540 }
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6541
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6542 sHealth = GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6543 sMana = GetMaxMana();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6544 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6545
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6546 //----- (004903C9) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6547 enum PLAYER_SKILL_TYPE Player::GetSkillIdxByOrder(signed int order)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6548 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6549 enum PLAYER_SKILL_TYPE result; // eax@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6550 int v3; // edx@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6551 char *v4; // ecx@5
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6552 int v5; // esi@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6553 unsigned __int16 *v6; // edx@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6554 int v7; // esi@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6555 unsigned __int16 *v8; // edx@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6556
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6557 if ( order >= 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6558 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6559 if ( order <= 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6560 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6561 result = (PLAYER_SKILL_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6562 v7 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6563 v8 = this->pActiveSkills;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6564 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6565 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6566 if ( *v8 && pSkillAvailabilityPerClass[uClass / 4][result] == 2 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6567 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6568 if ( v7 == order )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6569 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6570 ++v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6571 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6572 result = (PLAYER_SKILL_TYPE)((int)result + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6573 ++v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6574 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6575 while ( (signed int)result < 37 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6576 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6577 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6578 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6579 if ( order <= 3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6580 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6581 result = (PLAYER_SKILL_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6582 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6583 v6 = this->pActiveSkills;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6584 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6585 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6586 if ( *v6 && pSkillAvailabilityPerClass[uClass / 4][result] == 1 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6587 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6588 if ( v5 == order - 2 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6589 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6590 ++v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6591 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6592 result = (PLAYER_SKILL_TYPE)((int)result + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6593 ++v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6594 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6595 while ( (signed int)result < 37 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6596 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6597 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6598 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6599 if ( order <= 12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6600 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6601 result = (PLAYER_SKILL_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6602 v3 = 0;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
6603 v4 = (char *)pSkillAvailabilityPerClass[uClass / 4];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6604 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6605 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6606 if ( *v4 == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6607 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6608 if ( v3 == order - 4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6609 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6610 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6611 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6612 result = (PLAYER_SKILL_TYPE)((int)result + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6613 ++v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6614 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6615 while ( (signed int)result < 37 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6616 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6617 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6618 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6619 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6620 return (PLAYER_SKILL_TYPE)37;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6621 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6622
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6623
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6624
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6625 //----- (0049048D) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6626 //unsigned __int16 PartyCreation_BtnMinusClick(Player *_this, int eAttribute)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6627 unsigned __int16 Player::DecreaseAttribute(int eAttribute)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6628 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6629 int v2; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6630 Player *v3; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6631 int v4; // ecx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6632 int v5; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6633 int v6; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6634 unsigned __int16 result; // ax@7
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6635 int v8; // edi@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6636 int v9; // edi@12
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6637 int v10; // edi@16
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6638 int v11; // edi@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6639 int v12; // edi@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6640 int v13; // edi@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6641 int v14; // edi@32
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6642 int uMinValue; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6643
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6644 v2 = eAttribute + 7 * GetRace();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6645 v4 = stru_4ED7B0.race[0].attr[v2].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6646 v5 = stru_4ED7B0.race[0].attr[v2].uDroppedStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6647 uMinValue = v4 - 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6648 v6 = stru_4ED7B0.race[0].attr[v2].uBaseStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6649 if ( eAttribute )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6650 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6651 switch ( eAttribute )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6652 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6653 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6654 result = v3->uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6655 v13 = v3->uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6656 if ( v13 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6657 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6658 if ( v13 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6659 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6660 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6661 v3->uIntelligence = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6662 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6663 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6664 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6665 result = v3->uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6666 v12 = v3->uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6667 if ( v12 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6668 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6669 if ( v12 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6670 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6671 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6672 v3->uWillpower = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6673 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6674 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6675 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6676 result = v3->uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6677 v11 = v3->uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6678 if ( v11 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6679 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6680 if ( v11 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6681 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6682 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6683 v3->uEndurance = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6684 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6685 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6686 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6687 result = v3->uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6688 v10 = v3->uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6689 if ( v10 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6690 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6691 if ( v10 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6692 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6693 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6694 v3->uAccuracy = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6695 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6696 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6697 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6698 result = v3->uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6699 v9 = v3->uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6700 if ( v9 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6701 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6702 if ( v9 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6703 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6704 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6705 v3->uSpeed = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6706 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6707 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6708 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6709 result = eAttribute - 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6710 if ( eAttribute == 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6711 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6712 result = v3->uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6713 v8 = v3->uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6714 if ( v8 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6715 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6716 if ( v8 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6717 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6718 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6719 v3->uLuck = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6720 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6721 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6722 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6723 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6724 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6725 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6726 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6727 result = v3->uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6728 v14 = v3->uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6729 if ( v14 <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6730 v6 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6731 if ( v14 - v6 >= uMinValue )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6732 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6733 result -= v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6734 v3->uMight = result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6735 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6736 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6737 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6738 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6739
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6740 //----- (004905F5) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6741 //signed int __thiscall PartyCreation_BtnPlusClick(Player *this, int eAttribute)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6742 int Player::IncreaseAttribute(int eAttribute)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6743 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6744 Player *v2; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6745 int v3; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6746 int v4; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6747 signed int v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6748 int v6; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6749 signed int v7; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6750 signed int result; // eax@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6751 int v9; // [sp+Ch] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6752 signed int v10; // [sp+10h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6753
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6754 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6755 v3 = eAttribute + 7 * GetRace();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6756 v4 = stru_4ED7B0.race[0].attr[v3].uMaxValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6757 v5 = stru_4ED7B0.race[0].attr[v3].uBaseStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6758 v9 = stru_4ED7B0.race[0].attr[v3].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6759 v10 = stru_4ED7B0.race[0].attr[v3].uDroppedStep;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6760 PlayerCreation_ComputeAttributeBonus();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6761 if ( eAttribute )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6762 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6763 switch ( eAttribute )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6764 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6765 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6766 v6 = v2->uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6767 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6768 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6769 v6 = v2->uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6770 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6771 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6772 v6 = v2->uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6773 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6774 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6775 v6 = v2->uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6776 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6777 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6778 v6 = v2->uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6779 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6780 case 6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6781 v6 = v2->uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6782 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6783 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6784 v6 = eAttribute;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6785 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6786 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6787 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6788 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6789 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6790 v6 = v2->uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6791 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6792 if ( v6 < v9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6793 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6794 v7 = v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6795 v5 = v10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6796 v10 = v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6797 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6798 result = PlayerCreation_ComputeAttributeBonus();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6799 if ( result >= v10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6800 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6801 if ( eAttribute )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6802 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6803 switch ( eAttribute )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6804 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6805 case 1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6806 result = (signed int)&v2->uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6807 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6808 case 2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6809 result = (signed int)&v2->uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6810 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6811 case 3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6812 result = (signed int)&v2->uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6813 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6814 case 4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6815 result = (signed int)&v2->uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6816 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6817 case 5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6818 result = (signed int)&v2->uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6819 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6820 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6821 result = eAttribute - 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6822 if ( eAttribute != 6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6823 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6824 result = (signed int)&v2->uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6825 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6826 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6827 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6828 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6829 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6830 result = (signed int)&v2->uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6831 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6832 if ( v5 + *(short *)result <= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6833 *(short *)result += v5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6834 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6835 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6836 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6837
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6838 //----- (0049070F) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6839 void Player::Zero()
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6840 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6841 Player *v1; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6842 void *result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6843
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6844 v1 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6845 this->sLevelModifier = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6846 this->sACModifier = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6847 this->uLuckBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6848 this->uAccuracyBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6849 this->uSpeedBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6850 this->uEnduranceBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6851 this->uWillpowerBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6852 this->uIntelligenceBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6853 this->uMightBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6854 this->field_100 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6855 this->field_FC = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6856 this->field_F8 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6857 this->field_F4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6858 this->field_F0 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6859 this->field_EC = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6860 this->field_E8 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6861 this->field_E4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6862 this->field_E0 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6863 result = memset(&this->sResFireBonus, 0, 0x16u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6864 v1->field_1A97 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6865 v1->_ranged_dmg_bonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6866 v1->field_1A95 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6867 v1->_ranged_atk_bonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6868 v1->field_1A93 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6869 v1->_melee_dmg_bonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6870 v1->field_1A91 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6871 v1->_some_attack_bonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6872 v1->_mana_related = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6873 v1->uFullManaBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6874 v1->_health_related = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6875 v1->uFullHealthBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6876 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6877
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6878 //----- (004907E7) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6879 __int16 Player::GetStatColor(unsigned int uStat)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6880 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6881 Player *v2; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6882 __int16 v3; // si@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6883 int v4; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6884 int v5; // edx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6885 unsigned __int8 v6; // zf@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6886 char v7; // sf@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6887 unsigned __int8 v8; // of@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6888 __int16 result; // ax@2
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6889 __int16 v10; // [sp+8h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6890 __int16 v11; // [sp+Ch] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6891
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6892 v2 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6893 v11 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0x23u, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6894 v10 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6895 v3 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0xFFu);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6896 v4 = stru_4ED7B0.race[0].attr[uStat + 7 * GetRace()].uBaseValue;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6897 v8 = __OFSUB__(v5, v4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6898 v6 = v5 == v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6899 v7 = v5 - v4 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6900 if ( v5 >= v4 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6901 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6902 result = v10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6903 if ( (unsigned __int8)(v7 ^ v8) | v6 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6904 result = v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6905 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6906 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6907 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6908 result = v11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6909 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6910 return result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6911 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6912
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6913 //----- (004908A8) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6914 bool Player::DiscardConditionIfLastsLongerThan(unsigned int uCondition, unsigned __int64 uTime)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6915 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6916 unsigned __int64 *result; // eax@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6917
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6918 result = (unsigned __int64 *)((char *)this + 8 * uCondition);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6919 if ( *result && (signed __int64)uTime < (signed __int64)*result )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6920 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6921 *(int *)result = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6922 *((int *)result + 1) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6923 LOBYTE(result) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6924 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6925 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6926 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6927 LOBYTE(result) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6928 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6929 return (bool)result;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6930 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6931
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6932 //----- (004680ED) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6933 void Player::UseItem_DrinkPotion_etc(signed int a2, int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6934 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6935 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6936 unsigned int v4; // ebx@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6937 signed int v5; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6938 unsigned int v6; // eax@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6939 unsigned __int8 v7; // cf@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6940 int v8; // edx@39
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6941 int v9; // edx@40
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6942 int v10; // edx@41
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6943 int v11; // edx@42
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6944 int v12; // edx@43
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6945 char *v13; // eax@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6946 AudioPlayer *v14; // ecx@62
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6947 signed int v15; // edi@68
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6948 int v16; // edx@73
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6949 unsigned __int16 *v17; // edi@73
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6950 unsigned int v18; // eax@73
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6951 int v19; // eax@74
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6952 int v20; // eax@75
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6953 signed int v21; // eax@81
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6954 const char *v22; // eax@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6955 char *v23; // ecx@90
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6956 int v24; // esi@96
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6957 int v25; // eax@109
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6958 int v26; // eax@113
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6959 char *v27; // edi@114
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6960 signed __int64 v28; // qax@120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6961 char *v29; // ecx@120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6962 int v30; // edi@137
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6963 int v31; // ST30_4@137
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6964 int v32; // ST3C_4@137
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6965 int v33; // ST40_4@137
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6966 int v34; // ST34_4@137
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6967 int v35; // ST38_4@137
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6968 unsigned __int8 v36; // al@173
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6969 SoundID v37; // [sp-20h] [bp-4Ch]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6970 SoundID v38; // [sp-20h] [bp-4Ch]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6971 signed int v39; // [sp-1Ch] [bp-48h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6972 signed int v40; // [sp-1Ch] [bp-48h]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6973 unsigned int v41; // [sp-18h] [bp-44h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6974 unsigned int v42; // [sp-18h] [bp-44h]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6975 signed int v43; // [sp-14h] [bp-40h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6976 signed int v44; // [sp-14h] [bp-40h]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6977 signed int v45; // [sp-10h] [bp-3Ch]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6978 unsigned __int16 v46; // [sp-10h] [bp-3Ch]@120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6979 signed int v47; // [sp-10h] [bp-3Ch]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6980 int v48; // [sp-Ch] [bp-38h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6981 unsigned int v49; // [sp-Ch] [bp-38h]@33
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6982 unsigned __int16 v50; // [sp-Ch] [bp-38h]@120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6983 int v51; // [sp-Ch] [bp-38h]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6984 unsigned int v52; // [sp-8h] [bp-34h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6985 char *v53; // [sp-8h] [bp-34h]@33
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6986 int v54; // [sp-8h] [bp-34h]@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6987 unsigned int v55; // [sp-8h] [bp-34h]@60
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6988 int v56; // [sp-8h] [bp-34h]@66
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6989 const char *v57; // [sp-8h] [bp-34h]@69
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6990 const char *v58; // [sp-8h] [bp-34h]@89
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6991 int v59; // [sp-8h] [bp-34h]@120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6992 unsigned int v60; // [sp-8h] [bp-34h]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6993 int v61; // [sp-4h] [bp-30h]@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6994 char *v62; // [sp-4h] [bp-30h]@33
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6995 char *v63; // [sp-4h] [bp-30h]@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6996 int v64; // [sp-4h] [bp-30h]@60
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6997 int v65; // [sp-4h] [bp-30h]@66
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6998 const char *v66; // [sp-4h] [bp-30h]@69
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
6999 signed int v67; // [sp-4h] [bp-30h]@77
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7000 const char *v68; // [sp-4h] [bp-30h]@89
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7001 int v69; // [sp-4h] [bp-30h]@110
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7002 unsigned __int8 v70; // [sp-4h] [bp-30h]@120
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7003 int v71; // [sp-4h] [bp-30h]@174
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7004 char *v72; // [sp+20h] [bp-Ch]@68
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7005 signed int v73; // [sp+24h] [bp-8h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7006 char *v74; // [sp+24h] [bp-8h]@23
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7007 int v75; // [sp+24h] [bp-8h]@73
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7008 Player *thisb; // [sp+28h] [bp-4h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7009 unsigned int thisa; // [sp+28h] [bp-4h]@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7010
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7011 thisb = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7012 v3 = (Player *)&stru_AA1058[3].pSounds[6972 * a2 + 40552];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7013 v73 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7014 if ( pParty->bTurnBasedModeOn == 1 && (pTurnEngine->field_4 == 1 || pTurnEngine->field_4 == 3) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7015 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7016 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7017 if ( pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType == 13 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7018 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7019 if ( pParty->pPickedItem.uItemID != 160 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7020 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7021 if ( pParty->pPickedItem.uItemID == 161 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7022 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7023 v27 = (char *)&v3->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7024 *(int *)v27 += 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7025 LABEL_170:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7026 if ( *(int *)v27 > v3->GetMaxMana() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7027 *(int *)v27 = v3->GetMaxMana();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7028 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7029 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7030 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7031 if ( pParty->pPickedItem.uItemID != 162 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7032 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7033 LABEL_167:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7034 v68 = pParty->pPickedItem.GetDisplayName();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7035 v58 = pGlobalTXT_LocalizationStrings[36];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7036 goto LABEL_90;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7037 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7038 v69 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7039 LABEL_111:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7040 ((Player *)&stru_AA1058[3].pSounds[6972 * a2 + 40552])->Heal(v69);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7041 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7042 LABEL_112:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7043 v3->PlaySound(36, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7044 goto LABEL_173;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7045 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7046 LABEL_172:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7047 ((Player *)&stru_AA1058[3].pSounds[6972 * a2 + 40552])->SetCondition(6u, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7048 goto LABEL_173;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7049 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7050 if ( pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType == 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7051 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7052 switch ( pParty->pPickedItem.uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7053 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7054 case 0xDEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7055 v25 = pParty->pPickedItem._bonus_type + 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7056 goto LABEL_110;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7057 case 0xDFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7058 v26 = pParty->pPickedItem._bonus_type + 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7059 goto LABEL_114;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7060 case 0xE0u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7061 LODWORD(v3->pConditions[1]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7062 HIDWORD(v3->pConditions[1]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7063 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7064 case 0xE1u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7065 LODWORD(v3->pConditions[11]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7066 HIDWORD(v3->pConditions[11]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7067 LODWORD(v3->pConditions[9]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7068 HIDWORD(v3->pConditions[9]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7069 LODWORD(v3->pConditions[7]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7070 HIDWORD(v3->pConditions[7]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7071 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7072 case 0xE2u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7073 LODWORD(v3->pConditions[10]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7074 HIDWORD(v3->pConditions[10]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7075 LODWORD(v3->pConditions[8]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7076 HIDWORD(v3->pConditions[8]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7077 LODWORD(v3->pConditions[6]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7078 HIDWORD(v3->pConditions[6]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7079 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7080 case 0xE3u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7081 LODWORD(v3->pConditions[2]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7082 HIDWORD(v3->pConditions[2]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7083 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7084 case 0xE4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7085 if ( v3->pConditions[1] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7086 goto LABEL_173;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7087 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7088 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7089 v50 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7090 v46 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7091 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7092 v29 = (char *)&v3->pPlayerBuffs[7];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7093 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7094 case 0xE5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7095 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7096 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7097 v50 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7098 v46 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7099 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7100 v29 = (char *)&v3->pPlayerBuffs[8];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7101 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7102 case 0xE6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7103 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7104 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7105 v50 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7106 v46 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7107 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7108 v29 = (char *)&v3->pPlayerBuffs[1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7109 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7110 case 0xE7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7111 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7112 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7113 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7114 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7115 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7116 v29 = (char *)&v3->pPlayerBuffs[11];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7117 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7118 case 0xE8u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7119 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7120 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7121 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7122 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7123 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7124 v29 = (char *)&v3->pPlayerBuffs[13];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7125 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7126 case 0xEAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7127 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7128 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7129 v50 = 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7130 v46 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7131 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7132 v29 = (char *)&v3->pPlayerBuffs[14];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7133 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7134 case 0xEBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7135 v3->pPlayerBuffs[23].Apply(
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7136 pParty->uTimePlayed + (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335),
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7137 3u,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7138 5u,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7139 0,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7140 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7141 goto LABEL_173;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7142 case 0xEDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7143 LODWORD(v3->pConditions[3]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7144 HIDWORD(v3->pConditions[3]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7145 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7146 case 0xEEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7147 LODWORD(v3->pConditions[0]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7148 HIDWORD(v3->pConditions[0]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7149 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7150 case 0xEFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7151 LODWORD(v3->pConditions[5]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7152 HIDWORD(v3->pConditions[5]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7153 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7154 case 0xF0u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7155 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7156 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7157 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7158 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7159 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7160 v29 = (char *)&v3->pPlayerBuffs[19];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7161 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7162 case 0xF1u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7163 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7164 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7165 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7166 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7167 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7168 v29 = (char *)&v3->pPlayerBuffs[17];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7169 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7170 case 0xF2u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7171 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7172 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7173 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7174 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7175 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7176 v29 = (char *)&v3->pPlayerBuffs[20];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7177 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7178 case 0xF3u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7179 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7180 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7181 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7182 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7183 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7184 v29 = (char *)&v3->pPlayerBuffs[16];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7185 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7186 case 0xF4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7187 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7188 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7189 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7190 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7191 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7192 v29 = (char *)&v3->pPlayerBuffs[21];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7193 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7194 case 0xF5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7195 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7196 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7197 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7198 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7199 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7200 v29 = (char *)&v3->pPlayerBuffs[15];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7201 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7202 case 0xFBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7203 LODWORD(v3->pConditions[12]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7204 HIDWORD(v3->pConditions[12]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7205 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7206 case 0xFCu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7207 v30 = LODWORD(v3->pConditions[14]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7208 v31 = HIDWORD(v3->pConditions[14]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7209 v32 = LODWORD(v3->pConditions[15]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7210 v33 = HIDWORD(v3->pConditions[15]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7211 v34 = LODWORD(v3->pConditions[16]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7212 v35 = HIDWORD(v3->pConditions[16]);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7213 memset(&stru_AA1058[3].pSounds[6972 * a2 + 40552], 0, 0xA0u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7214 HIDWORD(v3->pConditions[14]) = v31;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7215 LODWORD(v3->pConditions[15]) = v32;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7216 HIDWORD(v3->pConditions[15]) = v33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7217 LODWORD(v3->pConditions[16]) = v34;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7218 LODWORD(v3->pConditions[14]) = v30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7219 HIDWORD(v3->pConditions[16]) = v35;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7220 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7221 case 0xFDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7222 v25 = 5 * pParty->pPickedItem._bonus_type;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7223 LABEL_110:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7224 v69 = v25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7225 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7226 case 0xFEu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7227 v26 = 5 * pParty->pPickedItem._bonus_type;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7228 LABEL_114:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7229 v27 = (char *)&v3->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7230 *(int *)v27 += v26;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7231 goto LABEL_170;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7232 case 0xFFu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7233 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7234 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7235 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7236 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7237 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7238 v29 = (char *)&v3->pPlayerBuffs[18];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7239 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7240 case 0x100u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7241 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7242 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7243 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7244 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7245 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7246 v29 = (char *)&v3->pPlayerBuffs[5];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7247 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7248 case 0x101u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7249 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7250 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7251 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7252 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7253 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7254 v29 = (char *)v3->pPlayerBuffs;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7255 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7256 case 0x102u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7257 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7258 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7259 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7260 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7261 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7262 v29 = (char *)&v3->pPlayerBuffs[22];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7263 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7264 case 0x103u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7265 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7266 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7267 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7268 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7269 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7270 v29 = (char *)&v3->pPlayerBuffs[3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7271 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7272 case 0x104u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7273 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7274 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7275 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7276 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7277 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7278 v29 = (char *)&v3->pPlayerBuffs[9];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7279 goto LABEL_147;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7280 case 0x105u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7281 v70 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7282 v59 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7283 v50 = 3 * LOWORD(pParty->pPickedItem._bonus_type);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7284 v46 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7285 v28 = (signed __int64)((double)(230400 * pParty->pPickedItem._bonus_type) * 0.033333335);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7286 v29 = (char *)&v3->pPlayerBuffs[2];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7287 LABEL_147:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7288 ((SpellBuff *)v29)->Apply(pParty->uTimePlayed + v28, v46, v50, v59, v70);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7289 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7290 case 0x106u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7291 LODWORD(v3->pConditions[15]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7292 HIDWORD(v3->pConditions[15]) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7293 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7294 case 0x108u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7295 if ( !*(int *)&v3->field_1F5[3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7296 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7297 v3->uLuck += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7298 *(int *)&v3->field_1F5[3] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7299 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7300 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7301 case 0x109u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7302 if ( !*(int *)&v3->field_1F5[7] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7303 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7304 v3->uSpeed += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7305 *(int *)&v3->field_1F5[7] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7306 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7307 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7308 case 0x10Au:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7309 if ( !*(int *)&v3->field_1F5[11] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7310 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7311 v3->uIntelligence += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7312 *(int *)&v3->field_1F5[11] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7313 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7314 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7315 case 0x10Bu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7316 if ( !*(int *)&v3->field_1F5[15] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7317 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7318 v3->uEndurance += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7319 *(int *)&v3->field_1F5[15] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7320 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7321 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7322 case 0x10Cu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7323 if ( !*(int *)&v3->field_1F5[19] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7324 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7325 v3->uWillpower += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7326 *(int *)&v3->field_1F5[19] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7327 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7328 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7329 case 0x10Du:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7330 if ( !*(int *)&v3->field_1F5[23] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7331 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7332 v3->uAccuracy += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7333 *(int *)&v3->field_1F5[23] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7334 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7335 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7336 case 0x10Eu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7337 if ( !*(int *)&v3->field_1F5[27] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7338 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7339 v3->uMight += 50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7340 *(int *)&v3->field_1F5[27] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7341 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7342 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7343 case 0x10Fu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7344 v3->sAgeModifier = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7345 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7346 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7347 goto LABEL_167;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7348 case 0xDDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7349 goto LABEL_172;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7350 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7351 goto LABEL_172;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7352 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7353 if ( pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType != 15 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7354 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7355 if ( pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType != 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7356 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7357 if ( pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType != 17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7358 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7359 if ( pParty->pPickedItem.uItemID == 616 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7360 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7361 thisa = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7362 if ( pParty->uCurrentMonth >= 7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7363 v74 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7364 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7365 v74 = aAttributeNames[pParty->uCurrentMonth];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7366 switch ( pParty->uCurrentMonth )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7367 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7368 case 0u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7369 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7370 v3->uMight += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7371 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7372 case 1u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7373 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7374 v3->uIntelligence += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7375 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7376 case 2u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7377 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7378 v3->uWillpower += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7379 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7380 case 3u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7381 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7382 v3->uEndurance += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7383 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7384 case 4u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7385 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7386 v3->uAccuracy += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7387 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7388 case 5u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7389 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7390 v3->uSpeed += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7391 goto LABEL_33;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7392 case 6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7393 v6 = pParty->uCurrentMonthWeek + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7394 v3->uLuck += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7395 LABEL_33:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7396 v62 = pGlobalTXT_LocalizationStrings[121];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7397 v53 = v74;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7398 v49 = v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7399 goto LABEL_53;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7400 case 7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7401 party_finds_gold(1000 * thisa, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7402 v63 = pGlobalTXT_LocalizationStrings[97];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7403 v54 = 1000 * thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7404 goto LABEL_38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7405 case 8u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7406 Party::GiveFood(5 * thisa);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7407 v63 = pGlobalTXT_LocalizationStrings[653];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7408 v54 = 5 * thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7409 goto LABEL_38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7410 case 9u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7411 v63 = pGlobalTXT_LocalizationStrings[207];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7412 v3->uSkillPoints += 2 * thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7413 v54 = 2 * thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7414 goto LABEL_38;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7415 case 0xAu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7416 v63 = pGlobalTXT_LocalizationStrings[83];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7417 v54 = 2500 * thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7418 v7 = __CFADD__(2500 * thisa, LODWORD(v3->uExperience));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7419 LODWORD(v3->uExperience) += 2500 * thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7420 HIDWORD(v3->uExperience) += ((unsigned __int64)(signed int)(2500 * thisa) >> 32) + v7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7421 LABEL_38:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7422 sprintfex(pTmpBuf, "+%u %s", v54, v63);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7423 goto LABEL_54;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7424 case 0xBu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7425 v8 = rand() % 6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7426 if ( v8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7427 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7428 v9 = v8 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7429 if ( v9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7430 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7431 v10 = v9 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7432 if ( v10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7433 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7434 v11 = v10 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7435 if ( v11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7436 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7437 v12 = v11 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7438 if ( v12 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7439 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7440 if ( v12 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7441 goto LABEL_52;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7442 v3->sResBodyBase += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7443 v13 = pGlobalTXT_LocalizationStrings[29];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7444 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7445 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7446 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7447 v3->sResMindBase += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7448 v13 = pGlobalTXT_LocalizationStrings[142];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7449 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7450 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7451 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7452 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7453 v3->sResEarthBase += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7454 v13 = pGlobalTXT_LocalizationStrings[70];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7455 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7456 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7457 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7458 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7459 v3->sResWaterBase += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7460 v13 = pGlobalTXT_LocalizationStrings[240];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7461 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7462 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7463 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7464 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7465 v3->sResAirBase += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7466 v13 = pGlobalTXT_LocalizationStrings[6];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7467 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7468 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7469 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7470 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7471 v3->sResFireBase += thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7472 v13 = pGlobalTXT_LocalizationStrings[87];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7473 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7474 v74 = v13;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7475 LABEL_52:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7476 v62 = pGlobalTXT_LocalizationStrings[121];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7477 v53 = v74;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7478 v49 = thisa;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7479 LABEL_53:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7480 sprintfex(pTmpBuf, "+%u %s %s", v49, v53, v62);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7481 LABEL_54:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7482 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7483 pMouse->RemoveHoldingItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7484 pGame->pStru6Instance->SetPlayerBuffAnim(0x97u, a2 - 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7485 v3->PlaySound(93, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7486 pAudioPlayer->PlaySound((SoundID)(SOUND_Bell|0x2), 0, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7487 if ( pParty->uDaysPlayed == 6 || pParty->uDaysPlayed == 20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7488 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7489 v64 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7490 v55 = 16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7491 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7492 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7493 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7494 if ( pParty->uDaysPlayed == 12 || pParty->uDaysPlayed == 26 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7495 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7496 v64 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7497 v55 = 14;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7498 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7499 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7500 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7501 if ( pParty->uDaysPlayed != 4 && pParty->uDaysPlayed != 25 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7502 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7503 v64 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7504 v55 = 15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7505 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7506 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7507 v3->SetCondition(v55, v64);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7508 v61 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7509 v52 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7510 v48 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7511 v45 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7512 v43 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7513 v41 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7514 v39 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7515 v37 = (SoundID)215;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7516 v14 = pAudioPlayer;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7517 goto LABEL_63;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7518 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7519 goto LABEL_54;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7520 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7521 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7522 if ( pParty->pPickedItem.uItemID == 630 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7523 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7524 Party::GiveFood(1u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7525 pAudioPlayer->PlaySound((SoundID)(SOUND_PlayerCantCastSpell|0x2), 0, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7526 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7527 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7528 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7529 if ( pParty->pPickedItem.uItemID == 632 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7530 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7531 v61 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7532 v52 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7533 v48 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7534 v45 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7535 v43 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7536 v41 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7537 v39 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7538 v37 = (SoundID)133;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7539 goto LABEL_93;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7540 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7541 if ( pParty->pPickedItem.uItemID == 633 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7542 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7543 v61 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7544 v52 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7545 v48 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7546 v45 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7547 v43 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7548 v41 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7549 v39 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7550 v37 = (SoundID)134;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7551 goto LABEL_93;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7552 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7553 if ( pParty->pPickedItem.uItemID == 634 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7554 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7555 v61 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7556 v52 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7557 v48 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7558 v45 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7559 v43 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7560 v41 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7561 v39 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7562 v37 = (SoundID)135;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7563 goto LABEL_93;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7564 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7565 if ( pParty->pPickedItem.uItemID != 646 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7566 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7567 if ( pParty->pPickedItem.uItemID == 650 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7568 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7569 sub_44C28F_open_nwc_dungeon();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7570 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7571 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7572 goto LABEL_167;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7573 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7574 pGame->pStru6Instance->SetPlayerBuffAnim(0x97u, a2 - 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7575 v5 = 8 * a2 + 392;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7576 LOBYTE(v5) = (8 * a2 - 120) | 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7577 pAudioPlayer->PlaySound(SOUND_20001, v5, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7578 v3->AddVariable(VAR_NumSkillPoints, 2);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7579 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7580 LABEL_187:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7581 pMouse->RemoveHoldingItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7582 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7583 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7584 if ( ((Player *)&stru_AA1058[3].pSounds[6972 * a2 + 40552])->CanAct() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7585 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7586 sub_467F48(pParty->pPickedItem.uItemID);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7587 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7588 v56 = 37;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7589 LABEL_67:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7590 v3->PlaySound(v56, v65);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7591 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7592 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7593 LABEL_89:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
7594 v68 = aCharacterConditionNames[v3->GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7595 v58 = pGlobalTXT_LocalizationStrings[382];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7596 LABEL_90:
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
7597 sprintf(pTmpBuf, v58, v68);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7598 v23 = pTmpBuf;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7599 LABEL_91:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7600 ShowStatusBarString(v23, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7601 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7602 goto LABEL_92;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7603 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7604 v15 = pParty->pPickedItem.uItemID - 400;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7605 v72 = (char *)&v3->pConditions[0] + pParty->pPickedItem.uItemID + 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7606 if ( *v72 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7607 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7608 v66 = pParty->pPickedItem.GetDisplayName();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7609 v57 = pGlobalTXT_LocalizationStrings[380];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7610 LABEL_72:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7611 sprintfex(pTmpBuf, v57, v66);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7612 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7613 LABEL_92:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7614 v61 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7615 v52 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7616 v48 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7617 v45 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7618 v43 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7619 v41 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7620 v39 = v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7621 v37 = (SoundID)27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7622 LABEL_93:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7623 v14 = pAudioPlayer;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7624 LABEL_63:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7625 pAudioPlayer->PlaySound(v37, v39, v41, v43, v45, v48, v52, v61);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7626 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7627 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7628 if ( !((Player *)&stru_AA1058[3].pSounds[6972 * a2 + 40552])->CanAct() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7629 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
7630 v66 = aCharacterConditionNames[v3->GetMajorConditionIdx()];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7631 v57 = pGlobalTXT_LocalizationStrings[382];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7632 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7633 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7634 v16 = v15 % 11 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7635 v17 = &v3->pActiveSkills[v15 / 11 + 12];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7636 v75 = v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7637 v18 = SkillToMastery(*v17) - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7638 if ( v18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7639 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7640 v19 = v18 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7641 if ( v19 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7642 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7643 v20 = v19 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7644 if ( v20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7645 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7646 if ( v20 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7647 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7648 v21 = a2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7649 LABEL_83:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7650 if ( v75 > v21 || !*v17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7651 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7652 v22 = pParty->pPickedItem.GetDisplayName();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7653 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[381], v22);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7654 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7655 v65 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7656 v56 = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7657 goto LABEL_67;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7658 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7659 *v72 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7660 v3->PlaySound(21, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7661 v73 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7662 LABEL_173:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7663 v36 = pItemsTable->pItems[pParty->pPickedItem.uItemID].uEquipType;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7664 if ( v36 == 14 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7665 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7666 v71 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7667 v60 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7668 v51 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7669 v47 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7670 v44 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7671 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7672 v40 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7673 v38 = (SoundID)210;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7674 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7675 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7676 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7677 if ( v36 != 13 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7678 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7679 LABEL_178:
2
2ca04ccb612a NoCD, main menu, various
Nomad
parents: 0
diff changeset
7680 if ( pGUIWindow_CurrentMenu && pGUIWindow_CurrentMenu->eWindowType != WINDOW_null)
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7681 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7682 if ( !v73 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7683 goto LABEL_187;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7684 if ( (signed int)pMessageQueue_50CBD0->uNumMessages < 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7685 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7686 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = (UIMessageType)113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7687 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7688 *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7689 ++pMessageQueue_50CBD0->uNumMessages;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7690 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7691 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7692 if ( v73 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7693 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7694 if ( pParty->bTurnBasedModeOn )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7695 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7696 *(&pParty->field_16140 + a2) = 100;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7697 thisb->SetRecoveryTime(100);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7698 pTurnEngine->_40471C();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7699 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7700 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7701 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7702 thisb->SetRecoveryTime((signed __int64)(flt_6BE3A4_debug_recmod1 * 213.3333333333333));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7703 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7704 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7705 goto LABEL_187;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7706 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7707 v71 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7708 v60 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7709 v51 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7710 v47 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7711 v44 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7712 v42 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7713 v40 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7714 v38 = (SoundID)211;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7715 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7716 pAudioPlayer->PlaySound(v38, v40, v42, v44, v47, v51, v60, v71);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7717 goto LABEL_178;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7718 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7719 v67 = 11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7720 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7721 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7722 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7723 v67 = 10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7724 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7725 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7726 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7727 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7728 v67 = 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7729 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7730 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7731 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7732 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7733 v67 = 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7734 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7735 v21 = v67;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7736 goto LABEL_83;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7737 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7738 if ( uGame_if_0_else_ui_id__11_save__else_load__8_drawSpellInfoPopup__22_final_window__26_keymapOptions__2_options__28_videoOptions == 23 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7739 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7740 if ( !((Player *)&stru_AA1058[3].pSounds[6972 * a2 + 40552])->CanAct() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7741 goto LABEL_89;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7742 if ( bUnderwater == 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7743 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7744 v23 = pGlobalTXT_LocalizationStrings[652];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7745 goto LABEL_91;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7746 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7747 dword_50C9AC = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7748 v24 = pParty->pPickedItem.uItemID - 299;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7749 if ( pParty->pPickedItem.uItemID == 329 || v24 == 4 || v24 == 91 || v24 == 28 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7750 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7751 pMouse->RemoveHoldingItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7752 pGUIWindow_CurrentMenu->Release();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7753 pIcons_LOD->_4114F2();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7754 uGame_if_0_else_ui_id__11_save__else_load__8_drawSpellInfoPopup__22_final_window__26_keymapOptions__2_options__28_videoOptions = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7755 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7756 _42777D_CastSpell_UseWand_ShootArrow(v24, a2 - 1, 0x85u, 1, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7757 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7758 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7759 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7760 _720984_unused = pParty->pPickedItem.uItemID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7761 pMouse->RemoveHoldingItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7762 if ( dword_50C9E8 < 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7763 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7764 dword_50C9EC[3 * dword_50C9E8] = 146;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7765 dword_50C9F0[3 * dword_50C9E8] = v24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7766 *(&dword_50C9E8 + 3 * dword_50C9E8 + 3) = a2 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7767 ++dword_50C9E8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7768 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7769 if ( uGame_if_0_else_ui_id__11_save__else_load__8_drawSpellInfoPopup__22_final_window__26_keymapOptions__2_options__28_videoOptions
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7770 && pGUIWindow_CurrentMenu
2
2ca04ccb612a NoCD, main menu, various
Nomad
parents: 0
diff changeset
7771 && pGUIWindow_CurrentMenu->eWindowType != WINDOW_null
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7772 && (signed int)pMessageQueue_50CBD0->uNumMessages < 40 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7773 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7774 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].eType = (UIMessageType)113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7775 pMessageQueue_50CBD0->pMessages[pMessageQueue_50CBD0->uNumMessages].param = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7776 *(&pMessageQueue_50CBD0->uNumMessages + 3 * pMessageQueue_50CBD0->uNumMessages + 3) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7777 ++pMessageQueue_50CBD0->uNumMessages;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7778 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7779 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7780 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7781 // 4E28F8: using guessed type int uGame_if_0_else_ui_id__11_save__else_load__8_drawSpellInfoPopup__22_final_window__26_keymapOptions__2_options__28_videoOptions;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7782 // 50C9AC: using guessed type int dword_50C9AC;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7783 // 50C9EC: using guessed type int dword_50C9EC[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7784 // 6BE3C4: using guessed type char bUnderwater;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7785 // 720984: using guessed type int 720984_unused;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7786
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7787
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7788
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7789 //----- (00449BB4) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7790 char Player::CompareVariable(enum VariableType var, signed int a1)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7791 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7792 Player *v3; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7793 signed int v4; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7794 unsigned int v5; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7795 int v6; // eax@9
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7796 enum CHARACTER_RACE v7; // eax@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7797 signed int v8; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7798 unsigned __int8 v9; // sf@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7799 unsigned __int8 v10; // of@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7800 int v11; // eax@19
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7801 unsigned int v12; // eax@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7802 unsigned int v13; // eax@25
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7803 unsigned __int8 v14; // cl@25
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7804 signed int v15; // ecx@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7805 ItemGen *v16; // eax@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7806 char v17; // zf@31
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7807 int v18; // edi@90
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7808 DDM_DLV_Header *v19; // eax@122
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7809 char v20; // cl@124
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7810 DDM_DLV_Header *v21; // eax@126
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7811 unsigned int v22; // edi@129
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7812 ItemGen *v23; // esi@134
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7813 ItemGen *v24; // ecx@135
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7814 signed int v25; // edx@135
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7815 ITEM_EQUIP_TYPE v26; // ebx@155
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7816 char *v27; // edi@155
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7817 int v28; // ebx@161
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7818 int v29; // eax@161
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7819
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7820 v3 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7821 v4 = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7822 if ( var > VAR_AutoNotes )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7823 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7824 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7825 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7826 case VAR_Invisible:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7827 if ( SHIDWORD(pParty->pPartyBuffs[11].uExpireTime) >= 0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7828 && (SHIDWORD(pParty->pPartyBuffs[11].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[11].uExpireTime) > 0) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7829 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7830 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7831 case VAR_NumDeaths:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7832 v4 = pParty->uNumDeaths;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7833 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7834 case VAR_NumBounties:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7835 v4 = pParty->uNumBountiesCollected;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7836 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7837 case VAR_PrisonTerms:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7838 v4 = pParty->uNumPrisonTerms;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7839 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7840 case VAR_ArenaWinsPage:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7841 v4 = (unsigned __int8)pParty->uNumArenaPageWins;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7842 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7843 case VAR_ArenaWinsSquire:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7844 v4 = (unsigned __int8)pParty->uNumArenaSquireWins;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7845 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7846 case VAR_ArenaWinsKnight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7847 v4 = (unsigned __int8)pParty->uNumArenaKnightWins;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7848 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7849 case VAR_ArenaWinsLord:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7850 v4 = (unsigned __int8)pParty->uNumArenaLordWins;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7851 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7852 case VAR_ReputationInCurrentLocation:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7853 v19 = &pOutdoor->ddm;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7854 if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7855 v19 = &pIndoor->dlv;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7856 v20 = v19->uReputation >= a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7857 goto _return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7858 case VAR_History_28|VAR_Sex:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7859 v21 = &pOutdoor->ddm;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7860 if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7861 v21 = &pIndoor->dlv;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7862 v20 = v21->field_C_alert == a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7863 _return:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7864 LOBYTE(v6) = v20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7865 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7866 case VAR_MonthEquals2|VAR_Sex:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7867 case VAR_MonthEquals2|VAR_Class:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7868 case VAR_Counter1:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7869 case VAR_Counter2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7870 case VAR_Counter3:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7871 case VAR_Counter4:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7872 case VAR_Counter5:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7873 case VAR_Counter6:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7874 case VAR_Counter7:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7875 case VAR_Counter8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7876 v22 = *(int *)&stru_AA1058[3].pSounds[8 * var + 44304];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7877 if ( v22 | *(int *)&stru_AA1058[3].pSounds[8 * var + 44300]
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7878 && (signed __int64)(__PAIR__(v22, *(int *)&stru_AA1058[3].pSounds[8 * var + 44300])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7879 + (signed __int64)((double)(460800 * a1) * 0.033333335)) <= (signed __int64)pParty->uTimePlayed )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7880 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7881 goto _return_false;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7882 case VAR_NumSkillPoints:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7883 v4 = this->uSkillPoints;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7884 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7885 case VAR_CircusPrises:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7886 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7887 v23 = pParty->pPlayers[0].pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7888 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7889 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7890 v24 = v23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7891 v25 = 138;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7892 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7893 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7894 switch ( v24->uItemID )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7895 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7896 case 0x1D6u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7897 ++v4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7898 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7899 case 0x1D7u:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7900 v4 += 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7901 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7902 case 0x1DDu:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7903 v4 += 5;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7904 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7905 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7906 ++v24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7907 --v25;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7908 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7909 while ( v25 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7910 v23 = (ItemGen *)((char *)v23 + 6972);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7911 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7912 while ( (signed int)v23 < (signed int)&pParty->field_777C[85] );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7913 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7914 case VAR_MonthEquals2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7915 v17 = pParty->uCurrentMonth == a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7916 goto _return2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7917 case VAR_IsFlying:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7918 if ( pParty->bFlying
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7919 && SHIDWORD(pParty->pPartyBuffs[7].uExpireTime) >= 0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7920 && (SHIDWORD(pParty->pPartyBuffs[7].uExpireTime) > 0 || LODWORD(pParty->pPartyBuffs[7].uExpireTime) > 0) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7921 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7922 goto _return_false;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7923 case VAR_HiredNPCHasSpeciality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7924 LOBYTE(v6) = CheckHiredNPCSpeciality(a1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7925 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7926 case VAR_NPCs2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7927 return pNPCStats->pNewNPCData[a1].uFlags & 0x80;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7928 case VAR_MonthEquals|VAR_CurrentSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7929 v13 = 0x80u >> ((signed __int16)a1 - 1) % 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7930 v14 = this->field_1A50[((signed __int16)a1 - 1) >> 3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7931 goto LABEL_108;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7932 case VAR_ItemEquipped:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7933 v26 = (ITEM_EQUIP_TYPE)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7934 v27 = (char *)&this->pEquipment;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7935 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7936 case VAR_GoldInBank:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7937 v4 = pParty->uNumGoldInBank;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7938 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7939 case VAR_ThieverySkill|0x80:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7940 v28 = GetActualMight();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7941 v29 = v3->GetBaseStrength();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7942 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7943 case VAR_DisarmTrapSkill|0x80:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7944 v28 = GetActualIntelligence();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7945 v29 = v3->GetBaseIntelligence();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7946 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7947 case VAR_MonthEquals:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7948 v28 = GetActualWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7949 v29 = v3->GetBaseWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7950 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7951 case VAR_MonthEquals|VAR_Sex:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7952 v28 = GetActualEndurance();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7953 v29 = v3->GetBaseEndurance();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7954 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7955 case VAR_IdentifyMonsterSkill|0x80:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7956 v28 = GetActualSpeed();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7957 v29 = v3->GetBaseSpeed();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7958 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7959 case VAR_ArmsmasterSkill|0x80:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7960 v28 = GetActualAccuracy();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7961 v29 = v3->GetBaseAccuracy();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7962 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7963 case VAR_MonthEquals|VAR_MaxHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7964 v28 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7965 v29 = v3->GetBaseLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7966 LABEL_168:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7967 v10 = __OFSUB__(v28, v29);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7968 v9 = v28 - v29 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7969 LABEL_169:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7970 if ( v9 ^ v10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7971 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7972 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7973 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7974 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7975 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7976 while ( !v3->HasItemEquipped(v26)
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
7977 || *(int *)&v3->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(int *)v27 + 5] != a1 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7978 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7979 v26 = (ITEM_EQUIP_TYPE)((int)v26 + 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7980 v27 += 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7981 if ( (signed int)v26 >= 16 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7982 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7983 _return_false:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7984 LOBYTE(v6) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7985 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7986 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7987 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7988 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7989 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7990 if ( var == VAR_AutoNotes )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7991 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7992 v13 = 0x80u >> ((signed __int16)(a1 - 1) - 1) % 8;
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
7993 v14 = pParty->_autonote_bits[((signed __int16)(a1 - 1) - 1) >> 3];
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7994 LABEL_108:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7995 if ( !((unsigned __int8)v13 & v14) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7996 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7997 goto LABEL_109;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7998 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
7999 if ( var <= VAR_BaseLuck )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8000 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8001 if ( var != VAR_BaseLuck )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8002 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8003 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8004 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8005 case VAR_Hour:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8006 if ( (signed __int64)((double)(signed __int64)pParty->uTimePlayed * 0.234375) / 60 / 60 % 24 == a1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8007 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8008 goto _return_false;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8009 case VAR_DayOfYear:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8010 v5 = (unsigned int)((signed __int64)((double)(signed __int64)pParty->uTimePlayed * 0.234375) / 60 / 60) / 0x18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8011 % 0x150
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8012 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8013 goto LABEL_9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8014 case VAR_DayOfWeek:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8015 v5 = (unsigned int)((signed __int64)((double)(signed __int64)pParty->uTimePlayed * 0.234375) / 60 / 60) / 0x18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8016 % 7;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8017 LABEL_9:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8018 LOBYTE(v6) = v5 == a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8019 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8020 case VAR_Sex:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8021 v7 = (CHARACTER_RACE)this->uSex;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8022 goto _cmp_against_arg2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8023 case VAR_Class:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8024 v7 = (CHARACTER_RACE)this->uClass;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8025 goto _cmp_against_arg2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8026 case VAR_Race:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8027 v7 = GetRace();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8028 _cmp_against_arg2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8029 if ( a1 == v7 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8030 goto _return_true;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8031 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8032 case VAR_CurrentHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8033 v4 = this->sHealth;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8034 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8035 case VAR_MaxHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8036 v8 = GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8037 v10 = __OFSUB__(v3->sHealth, v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8038 v9 = v3->sHealth - v8 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8039 goto LABEL_169;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8040 case VAR_CurrentSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8041 v4 = this->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8042 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8043 case VAR_MaxSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8044 v11 = GetMaxMana();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8045 v10 = __OFSUB__(v3->sMana, v11);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8046 v9 = v3->sMana - v11 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8047 goto LABEL_169;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8048 case VAR_ActualAC:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8049 v12 = GetActualAC();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8050 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8051 case VAR_ACModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8052 v4 = this->sACModifier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8053 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8054 case VAR_BaseLevel:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8055 v4 = this->uLevel;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8056 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8057 case VAR_LevelModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8058 v4 = this->sLevelModifier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8059 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8060 case VAR_Age:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8061 v12 = GetActualAge();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8062 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8063 case VAR_Award:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8064 v13 = 0x80u >> ((signed __int16)a1 - 1) % 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8065 v14 = this->field_152[((signed __int16)a1 - 1) >> 3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8066 goto LABEL_108;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8067 case VAR_Experience:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8068 v4 = LODWORD(this->uExperience);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8069 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8070 case VAR_QBits_QuestsDone:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8071 v13 = 0x80u >> ((signed __int16)a1 - 1) % 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8072 v14 = pParty->_award_bits[((signed __int16)a1 - 1) >> 3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8073 goto LABEL_108;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8074 case VAR_PlayerItemInHands:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8075 v15 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8076 v16 = v3->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8077 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8078 case VAR_FixedGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8079 v4 = pParty->uNumGold;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8080 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8081 case VAR_MightBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8082 v4 = this->uMightBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8083 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8084 case VAR_IntellectBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8085 v4 = this->uIntelligenceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8086 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8087 case VAR_PersonalityBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8088 v4 = this->uWillpowerBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8089 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8090 case VAR_EnduranceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8091 v4 = this->uEnduranceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8092 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8093 case VAR_SpeedBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8094 v4 = this->uSpeedBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8095 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8096 case VAR_AccuracyBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8097 v4 = this->uAccuracyBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8098 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8099 case VAR_LuckBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8100 v4 = this->uLuckBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8101 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8102 case VAR_BaseMight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8103 v4 = this->uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8104 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8105 case VAR_BaseIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8106 v4 = this->uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8107 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8108 case VAR_BasePersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8109 v4 = this->uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8110 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8111 case VAR_BaseEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8112 v4 = this->uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8113 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8114 case VAR_BaseSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8115 v4 = this->uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8116 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8117 case VAR_BaseAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8118 v4 = this->uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8119 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8120 case VAR_FixedFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8121 v4 = pParty->uNumFoodRations;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8122 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8123 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8124 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8125 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8126 while ( v16->uItemID != a1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8127 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8128 ++v15;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8129 ++v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8130 if ( v15 >= 138 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8131 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8132 v17 = pParty->pPickedItem.uItemID == a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8133 _return2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8134 LOBYTE(v6) = v17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8135 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8136 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8137 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8138 _return_true:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8139 LOBYTE(v6) = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8140 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8141 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8142 v4 = this->uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8143 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8144 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8145 if ( var <= VAR_MagicResistance )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8146 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8147 if ( var == VAR_MagicResistance )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8148 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8149 v4 = this->sResMagicBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8150 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8151 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8152 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8153 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8154 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8155 case VAR_FireResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8156 v4 = this->sResFireBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8157 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8158 case VAR_AirResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8159 v4 = this->sResAirBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8160 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8161 case VAR_WaterResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8162 v4 = this->sResWaterBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8163 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8164 case VAR_EarthResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8165 v4 = this->sResEarthBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8166 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8167 case VAR_SpiritResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8168 v4 = this->sResSpiritBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8169 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8170 case VAR_MindResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8171 v4 = this->sResMindBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8172 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8173 case VAR_BodyResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8174 v4 = this->sResBodyBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8175 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8176 case VAR_LightResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8177 v4 = this->sResLightBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8178 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8179 case VAR_DarkResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8180 v4 = this->sResDarkBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8181 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8182 case VAR_ActualMight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8183 v12 = GetActualMight();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8184 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8185 case VAR_ActualIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8186 v12 = GetActualIntelligence();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8187 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8188 case VAR_ActualPersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8189 v12 = GetActualWillpower();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8190 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8191 case VAR_ActualEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8192 v12 = GetActualEndurance();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8193 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8194 case VAR_ActualSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8195 v12 = GetActualSpeed();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8196 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8197 case VAR_ActualAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8198 v12 = GetActualAccuracy();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8199 goto _j_cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8200 case VAR_ActualLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8201 v12 = GetActualLuck();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8202 _j_cmp_against_arg:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8203 v4 = v12;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8204 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8205 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8206 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8207 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8208 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8209 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8210 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8211 if ( var <= VAR_DisarmTrapSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8212 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8213 if ( var != VAR_DisarmTrapSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8214 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8215 if ( var <= VAR_MindResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8216 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8217 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8218 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8219 case VAR_MindResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8220 v4 = this->sResMindBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8221 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8222 case VAR_FireResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8223 v4 = this->sResFireBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8224 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8225 case VAR_AirResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8226 v4 = this->sResAirBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8227 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8228 case VAR_WaterResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8229 v4 = this->sResWaterBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8230 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8231 case VAR_EarthResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8232 v4 = this->sResEarthBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8233 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8234 case VAR_SpiritResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8235 v4 = this->sResSpiritBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8236 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8237 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8238 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8239 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8240 if ( var == VAR_BodyResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8241 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8242 v4 = this->sResBodyBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8243 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8244 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8245 if ( var == VAR_LightResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8246 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8247 v4 = this->sResLightBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8248 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8249 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8250 if ( var == VAR_DarkResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8251 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8252 v4 = this->sResDarkBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8253 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8254 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8255 if ( var == VAR_MagicResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8256 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8257 v4 = this->sResMagicBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8258 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8259 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8260 if ( var <= VAR_MagicResistanceBonus || var > VAR_DiplomacySkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8261 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8262 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8263 LABEL_90:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8264 v18 = *((short *)&this->pConditions[16] + var);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8265 if ( a1 <= 63 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8266 v4 = v18 & 0x3F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8267 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8268 v4 = a1 & v18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8269 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8270 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8271 if ( var == 104 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8272 goto LABEL_90;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8273 if ( (signed int)var <= 104 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8274 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8275 if ( (signed int)var > 0x79 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8276 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8277 if ( var != 122 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8278 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8279 if ( (signed int)var > 122 && var <= VAR_ActiveSpells )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8280 v4 = (unsigned __int8)byte_5E4C15[var];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8281 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8282 }
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
8283 v4 = GetMajorConditionIdx();
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8284 if ( v4 != 18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8285 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8286 _cmp_against_arg:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8287 LOBYTE(v6) = v4 >= a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8288 return v6;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8289 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8290 LABEL_109:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8291 v4 = a1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8292 goto _cmp_against_arg;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8293 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8294 return *((int *)this + 2 * var - 210);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8295 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8296
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8297
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8298 //----- (0044A5CB) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8299 void Player::SetVariable(enum VariableType var, signed int a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8300 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8301 signed int v3; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8302 Player *v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8303 unsigned int v5; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8304 unsigned int v6; // esi@13
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8305 unsigned int v7; // esi@14
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8306 signed int v8; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8307 ItemGen *v9; // ecx@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8308 int v10; // eax@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8309 signed int v11; // eax@30
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8310 Player *v12; // ecx@44
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8311 char *v13; // ecx@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8312 Player *v14; // ecx@49
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8313 int v15; // ecx@86
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8314 int v16; // esi@106
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8315 char v17; // al@106
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8316 int v18; // eax@107
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8317 Player *v19; // ecx@112
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8318 Player *v20; // ecx@127
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8319 int v21; // eax@127
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8320 int v22; // eax@145
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8321 char v23; // zf@146
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8322 DDM_DLV_Header *v24; // ecx@148
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8323 signed int v25; // eax@172
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8324 int v26; // [sp-8h] [bp-3Ch]@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8325 signed int v27; // [sp-4h] [bp-38h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8326 int v28; // [sp-4h] [bp-38h]@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8327 ItemGen item; // [sp+Ch] [bp-28h]@52
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8328 char v30; // [sp+32h] [bp-2h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8329 char v31; // [sp+33h] [bp-1h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8330
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8331 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8332 v30 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8333 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8334 v4 = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8335 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8336 if ( this == pPlayers[2] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8337 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8338 v3 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8339 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8340 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8341 if ( this == pPlayers[3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8342 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8343 v27 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8344 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8345 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8346 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8347 if ( this != pPlayers[4] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8348 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8349 v27 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8350 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8351 v3 = v27;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8352 LABEL_8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8353 if ( var > VAR_AutoNotes )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8354 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8355 if ( var <= VAR_GoldInBank )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8356 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8357 if ( var == VAR_GoldInBank )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8358 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8359 pParty->uNumGoldInBank = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8360 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8361 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8362 if ( var <= VAR_Counter8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8363 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8364 if ( (signed int)var >= 245 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8365 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8366 *(int *)&stru_AA1058[3].pSounds[8 * var + 44300] = LODWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8367 *(int *)&stru_AA1058[3].pSounds[8 * var + 44304] = HIDWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8368 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8369 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8370 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8371 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8372 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8373 case VAR_MonthEquals|VAR_CurrentSP:
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
8374 _449B7E_toggle_bit((unsigned char *)field_1A50, a3, 1u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8375 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8376 case VAR_NPCs2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8377 pParty->field_709 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8378 LOBYTE(pNPCStats->pNewNPCData[a3].uFlags) |= 0x80u;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8379 sub_44A56A();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8380 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8381 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8382 case VAR_NumSkillPoints:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8383 this->uSkillPoints = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8384 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8385 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8386 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8387 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8388 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8389 if ( var < VAR_Counter9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8390 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8391 if ( (signed int)var <= 274 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8392 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8393 *(int *)&stru_AA1058[3].pSounds[8 * var + 44532] = LODWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8394 *(int *)&stru_AA1058[3].pSounds[8 * var + 44536] = HIDWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8395 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8396 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8397 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8398 if ( var == VAR_ReputationInCurrentLocation )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8399 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8400 v24 = &pOutdoor->ddm;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8401 if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8402 v24 = &pIndoor->dlv;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8403 v24->uReputation = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8404 if ( a3 > 10000 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8405 v24->uReputation = 10000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8406 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8407 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8408 if ( var <= VAR_ReputationInCurrentLocation
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8409 || var > VAR_History_28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8410 || (v22 = var - 276, pParty->field_3C.field_4F0[2 * v22 + 1] | pParty->field_3C.field_4F0[2 * v22])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8411 || (pParty->field_3C.field_4F0[2 * (var - 276)] = LODWORD(pParty->uTimePlayed),
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8412 v23 = *(&pStorylineText->field_0 + 3 * v22) == 0,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8413 pParty->field_3C.field_4F0[2 * (var - 276) + 1] = HIDWORD(pParty->uTimePlayed),
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8414 v23) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8415 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8416 bFlashHistoryBook = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8417 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8418 LABEL_172:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8419 v25 = 8 * v3 + 400;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8420 LOBYTE(v25) = (8 * v3 - 112) | 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8421 pAudioPlayer->PlaySound(SOUND_20001, v25, v5, -1, v5, v5, v5, v5);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8422 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8423 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8424 if ( var != 307 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8425 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8426 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8427 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8428 case 308:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8429 pParty->uNumBountiesCollected = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8430 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8431 case 309:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8432 pParty->uNumPrisonTerms = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8433 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8434 case 310:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8435 pParty->uNumArenaPageWins = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8436 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8437 case 311:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8438 pParty->uNumArenaSquireWins = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8439 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8440 case 312:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8441 pParty->uNumArenaKnightWins = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8442 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8443 case 313:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8444 pParty->uNumArenaLordWins = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8445 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8446 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8447 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8448 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8449 pParty->uNumDeaths = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8450 LABEL_168:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8451 if ( v30 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8452 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8453 LABEL_170:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8454 if ( v31 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8455 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8456 v5 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8457 goto LABEL_172;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8458 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8459 LABEL_169:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8460 pGame->pStru6Instance->SetPlayerBuffAnim(0x96u, v3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8461 goto LABEL_170;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8462 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8463 if ( var == VAR_AutoNotes )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8464 {
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
8465 if ( !((unsigned __int8)(0x80u >> ((signed __int16)a3 - 1) % 8) & pParty->_autonote_bits[((signed __int16)a3 - 1) >> 3])
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8466 && (&dword_723718_autonote_related)[8 * a3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8467 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8468 v20 = pPlayers[v3 + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8469 v30 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8470 v20->PlaySound(96, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8471 v21 = dword_72371C[2 * a3];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8472 bFlashAutonotesBook = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8473 dword_506568 = v21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8474 }
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
8475 _449B7E_toggle_bit(pParty->_autonote_bits, a3, 1u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8476 v31 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8477 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8478 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8479 if ( var <= VAR_ActualMight )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8480 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8481 if ( var != VAR_ActualMight )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8482 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8483 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8484 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8485 case VAR_RandomGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8486 v6 = rand() % a3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8487 Party::SetGold(v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8488 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[500], v6);// You have %lu gold
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8489 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8490 GameUI_DrawFoodAndGold();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8491 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8492 case VAR_RandomFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8493 v7 = rand() % a3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8494 Party::SetFood(v7);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8495 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[501], v7);// You have %lu food
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8496 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8497 GameUI_DrawFoodAndGold();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8498 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8499 case VAR_Sex:
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
8500 this->uSex = (PLAYER_SEX)a3;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8501 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8502 case VAR_Class:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8503 this->uClass = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8504 if ( (char)a3 != 35 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8505 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8506 v8 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8507 v9 = this->pInventoryItems;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8508 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8509 case VAR_CurrentHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8510 this->sHealth = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8511 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8512 case VAR_MaxHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8513 this->sHealth = GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8514 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8515 case VAR_CurrentSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8516 this->sMana = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8517 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8518 case VAR_MaxSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8519 this->sMana = GetMaxMana();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8520 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8521 case VAR_ACModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8522 this->sACModifier = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8523 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8524 case VAR_BaseLevel:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8525 this->uLevel = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8526 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8527 case VAR_LevelModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8528 this->sLevelModifier = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8529 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8530 case VAR_Age:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8531 this->sAgeModifier = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8532 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8533 case VAR_Award:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8534 if ( !((unsigned __int8)(0x80u >> ((signed __int16)a3 - 1) % 8) & pPlayers[v3 + 1]->field_152[((signed __int16)a3 - 1) >> 3])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8535 && dword_723E80_award_related[2 * a3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8536 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8537 v12 = pPlayers[v3 + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8538 v30 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8539 v31 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8540 v12->PlaySound(96, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8541 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8542 v13 = v4->field_152;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8543 goto LABEL_51;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8544 case VAR_Experience:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8545 this->uExperience = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8546 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8547 case VAR_QBits_QuestsDone:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8548 if ( !((unsigned __int8)(0x80u >> ((signed __int16)a3 - 1) % 8) & pParty->_award_bits[((signed __int16)a3 - 1) >> 3])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8549 && (&dword_722F10)[4 * a3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8550 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8551 v14 = pPlayers[v3 + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8552 bFlashQuestBook = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8553 v30 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8554 v31 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8555 v14->PlaySound(93, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8556 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8557 v13 = (char *)pParty->_award_bits;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8558 LABEL_51:
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
8559 _449B7E_toggle_bit((unsigned char *)v13, a3, 1u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8560 goto LABEL_168;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8561 case VAR_PlayerItemInHands:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8562 item.Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8563 item.Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8564 item.uItemID = a3;
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
8565 item.uAttributes = 1;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8566 pParty->SetHoldingItem(&item);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8567 if ( a3 >= ITEM_ARTIFACT_PUCK && a3 <= ITEM_RELIC_MEKORIGS_HAMMER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8568 pParty->field_3C.pIsArtifactFound[a3] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8569 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8570 case VAR_FixedGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8571 Party::SetGold(a3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8572 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8573 case VAR_BaseMight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8574 this->uMight = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8575 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8576 case VAR_BaseIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8577 this->uIntelligence = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8578 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8579 case VAR_BasePersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8580 this->uWillpower = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8581 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8582 case VAR_BaseEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8583 this->uEndurance = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8584 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8585 case VAR_BaseSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8586 this->uSpeed = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8587 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8588 case VAR_BaseAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8589 this->uAccuracy = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8590 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8591 case VAR_BaseLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8592 this->uLuck = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8593 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8594 case VAR_FixedFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8595 Party::SetFood(a3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8596 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8597 case VAR_MightBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8598 goto LABEL_64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8599 case VAR_IntellectBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8600 goto LABEL_68;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8601 case VAR_PersonalityBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8602 goto LABEL_69;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8603 case VAR_EnduranceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8604 goto LABEL_70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8605 case VAR_SpeedBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8606 goto LABEL_71;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8607 case VAR_AccuracyBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8608 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8609 case VAR_LuckBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8610 goto LABEL_73;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8611 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8612 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8613 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8614 while ( v9->uItemID != 615 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8615 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8616 ++v8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8617 ++v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8618 if ( v8 >= 138 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8619 goto LABEL_22;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8620 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8621 v10 = (int)((char *)v4 + 36 * v8);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8622 *(int *)(v10 + 532) = 601;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8623 *(char *)(v10 + 558) = v3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8624 LABEL_22:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8625 if ( v4->sResFireBase < 20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8626 v4->sResFireBase = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8627 if ( v4->sResAirBase < 20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8628 v4->sResAirBase = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8629 if ( v4->sResWaterBase < 20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8630 v4->sResWaterBase = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8631 if ( v4->sResEarthBase < 20 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8632 v4->sResEarthBase = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8633 v4->sResMindBase = 200;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8634 v4->sResBodyBase = 200;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8635 v11 = v4->GetSexByVoice();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8636 v4->field_1924 = v4->uVoiceID;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8637 v4->field_1928 = v4->uFace;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8638 if ( v11 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8639 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8640 v4->uFace = 21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8641 v4->uVoiceID = 21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8642 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8643 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8644 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8645 v4->uFace = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8646 v4->uVoiceID = 20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8647 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8648 ReloadPlayerPortraits(v3, v4->uFace);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8649 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8650 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8651 LABEL_64:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8652 this->uMightBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8653 LABEL_111:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8654 v28 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8655 v26 = 91;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8656 LABEL_112:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8657 v19 = pPlayers[v3 + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8658 v31 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8659 v19->PlaySound(v26, v28);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8660 goto LABEL_169;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8661 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8662 if ( var <= VAR_FireResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8663 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8664 if ( var == VAR_FireResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8665 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8666 this->sResFireBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8667 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8668 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8669 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8670 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8671 case VAR_ActualIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8672 LABEL_68:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8673 this->uIntelligenceBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8674 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8675 case VAR_ActualPersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8676 LABEL_69:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8677 this->uWillpowerBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8678 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8679 case VAR_ActualEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8680 LABEL_70:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8681 this->uEnduranceBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8682 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8683 case VAR_ActualSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8684 LABEL_71:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8685 this->uSpeedBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8686 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8687 case VAR_ActualAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8688 LABEL_72:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8689 this->uAccuracyBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8690 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8691 case VAR_ActualLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8692 LABEL_73:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8693 this->uLuckBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8694 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8695 case VAR_FireResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8696 this->sResFireBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8697 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8698 case VAR_AirResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8699 this->sResAirBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8700 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8701 case VAR_WaterResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8702 this->sResWaterBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8703 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8704 case VAR_EarthResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8705 this->sResEarthBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8706 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8707 case VAR_SpiritResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8708 this->sResSpiritBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8709 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8710 case VAR_MindResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8711 this->sResMindBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8712 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8713 case VAR_BodyResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8714 this->sResBodyBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8715 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8716 case VAR_LightResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8717 this->sResLightBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8718 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8719 case VAR_DarkResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8720 this->sResDarkBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8721 goto LABEL_84;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8722 case VAR_MagicResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8723 this->sResMagicBase = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8724 LABEL_84:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8725 v28 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8726 v26 = 92;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8727 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8728 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8729 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8730 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8731 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8732 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8733 HIWORD(v15) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8734 if ( var > VAR_DisarmTrapSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8735 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8736 if ( var != VAR_LearningSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8737 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8738 if ( var <= VAR_LearningSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8739 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8740 if ( var <= VAR_Eradicated )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8741 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8742 v4->SetCondition(var - 105, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8743 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8744 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8745 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8746 if ( var != VAR_MajorCondition )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8747 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8748 if ( var > VAR_MajorCondition && var <= VAR_ActiveSpells )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8749 byte_5E4C15[var] = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8750 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8751 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8752 memset(v4, 0, 0xA0u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8753 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8754 LABEL_124:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8755 v31 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8756 goto LABEL_169;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8757 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8758 LABEL_106:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8759 v16 = (int)((char *)&v4->pConditions[16] + 2 * var);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8760 v17 = *(char *)v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8761 if ( a3 <= VAR_BodyResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8762 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8763 LOWORD(v15) = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8764 v18 = v15 | v17 & VAR_BodyResistanceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8765 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8766 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8767 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8768 LOWORD(v18) = (unsigned __int8)(a3 | v17 & 0xC0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8769 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8770 *(short *)v16 = v18;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8771 goto LABEL_124;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8772 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8773 if ( var == VAR_DisarmTrapSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8774 goto LABEL_106;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8775 if ( var <= VAR_BodyResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8776 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8777 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8778 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8779 case VAR_BodyResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8780 v4->sResBodyBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8781 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8782 case VAR_AirResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8783 v4->sResAirBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8784 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8785 case VAR_WaterResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8786 v4->sResWaterBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8787 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8788 case VAR_EarthResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8789 v4->sResEarthBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8790 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8791 case VAR_SpiritResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8792 v4->sResSpiritBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8793 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8794 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8795 if ( var != 62 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8796 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8797 v4->sResMindBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8798 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8799 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8800 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8801 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8802 if ( var == VAR_LightResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8803 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8804 v4->sResLightBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8805 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8806 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8807 if ( var == VAR_DarkResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8808 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8809 v4->sResDarkBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8810 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8811 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8812 if ( var == VAR_MagicResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8813 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8814 v4->sResMagicBonus = (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8815 goto LABEL_111;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8816 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8817 if ( var > VAR_MagicResistanceBonus && var <= VAR_DiplomacySkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8818 goto LABEL_106;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8819 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8820
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8821
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8822
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8823 //----- (0044AFFB) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8824 void Player::AddVariable(enum VariableType var, signed int val)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8825 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8826 char v3; // bl@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8827 Player *v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8828 signed int uPlayerIdx; // edi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8829 int v6; // eax@15
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8830 unsigned int v7; // esi@18
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8831 int *v8; // ebx@21
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8832 int v9; // eax@22
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8833 signed int v10; // eax@24
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8834 int v11; // eax@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8835 __int16 *v12; // esi@28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8836 Player *v13; // ecx@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8837 Player *v14; // ecx@36
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8838 char *v15; // ecx@37
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8839 unsigned __int8 v16; // cf@38
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8840 Player *v17; // ecx@42
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8841 __int16 *v18; // esi@53
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8842 __int16 *v19; // esi@62
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8843 char *v20; // esi@107
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8844 __int16 v21; // dx@107
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8845 int v22; // ecx@107
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8846 Player *v23; // ecx@132
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8847 int v24; // eax@132
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8848 int v25; // eax@150
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8849 char v26; // zf@151
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8850 DDM_DLV_Header *v27; // eax@153
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8851 signed int v28; // eax@176
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8852 int v29; // [sp-8h] [bp-40h]@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8853 signed int v30; // [sp-4h] [bp-3Ch]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8854 int v31; // [sp-4h] [bp-3Ch]@84
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8855 ItemGen item; // [sp+Ch] [bp-2Ch]@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8856 unsigned int v33; // [sp+30h] [bp-8h]@34
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8857 char v34; // [sp+37h] [bp-1h]@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8858
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8859 auto Dst = this;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8860 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8861 v34 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8862 v4 = Dst;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8863 uPlayerIdx = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8864 if ( Dst == pPlayers[2] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8865 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8866 uPlayerIdx = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8867 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8868 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8869 if ( Dst == pPlayers[3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8870 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8871 v30 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8872 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8873 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8874 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8875 if ( Dst != pPlayers[4] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8876 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8877 v30 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8878 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8879 uPlayerIdx = v30;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8880 LABEL_8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8881 if ( var <= VAR_AutoNotes )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8882 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8883 if ( var != VAR_AutoNotes )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8884 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8885 if ( var <= VAR_ActualMight )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8886 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8887 if ( var != VAR_ActualMight )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8888 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8889 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8890 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8891 case VAR_RandomGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8892 if ( !val )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8893 val = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8894 v6 = rand();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8895 party_finds_gold(v6 % val + 1, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8896 GameUI_DrawFoodAndGold();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8897 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8898 case VAR_RandomFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8899 if ( !val )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8900 val = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8901 v7 = rand() % val + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8902 Party::GiveFood(v7);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8903 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[502], v7);// You find %lu food
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8904 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8905 GameUI_DrawFoodAndGold();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8906 goto _play_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8907 case VAR_Sex:
25
2bbf33898c6b c/p error in prev commit
Nomad
parents: 24
diff changeset
8908 Dst->uSex = (PLAYER_SEX)val;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8909 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8910 case VAR_Class:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8911 Dst->uClass = val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8912 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8913 case VAR_CurrentHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8914 v8 = &Dst->sHealth;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8915 *v8 += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8916 if ( Dst->sHealth <= Dst->GetMaxHealth() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8917 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8918 v9 = v4->GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8919 goto LABEL_23;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8920 case VAR_MaxHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8921 v10 = Dst->GetMaxHealth();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8922 v4->_health_related = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8923 v4->uFullHealthBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8924 v4->sHealth = v10;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8925 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8926 case VAR_CurrentSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8927 v8 = &Dst->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8928 *v8 += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8929 if ( Dst->sMana > GetMaxMana() )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8930 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8931 v9 = v4->GetMaxMana();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8932 LABEL_23:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8933 *v8 = v9;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8934 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8935 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8936 case VAR_MaxSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8937 v11 = GetMaxMana();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8938 v4->_mana_related = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8939 v4->uFullManaBonus = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8940 v4->sMana = v11;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8941 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8942 case VAR_ACModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8943 v12 = &Dst->sACModifier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8944 goto LABEL_29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8945 case VAR_BaseLevel:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8946 v12 = (__int16 *)&Dst->uLevel;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8947 goto LABEL_29;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8948 case VAR_LevelModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8949 v12 = &Dst->sLevelModifier;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8950 LABEL_29:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8951 *v12 += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8952 if ( *v12 > 255 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8953 *v12 = 255;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8954 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8955 case VAR_Age:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8956 Dst->sAgeModifier += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8957 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8958 case VAR_Award:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8959 v13 = pPlayers[uPlayerIdx + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8960 v33 = 0x80u >> ((signed __int16)val - 1) % 8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8961 if ( !((unsigned __int8)(0x80u >> ((signed __int16)val - 1) % 8) & v13->field_152[((signed __int16)val - 1) >> 3])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8962 && dword_723E80_award_related[2 * val] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8963 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8964 v14 = pPlayers[uPlayerIdx + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8965 v34 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8966 v3 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8967 v14->PlaySound(96, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8968 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8969 v15 = v4->field_152;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8970 goto LABEL_44;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8971 case VAR_Experience:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8972 v16 = __CFADD__(val, LODWORD(Dst->uExperience));
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8973 LODWORD(Dst->uExperience) += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8974 HIDWORD(Dst->uExperience) += ((unsigned __int64)val >> 32) + v16;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8975 if ( (signed __int64)Dst->uExperience > 4000000000i64 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8976 Dst->uExperience = 4000000000i64;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8977 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8978 case VAR_QBits_QuestsDone:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8979 if ( !((unsigned __int8)(0x80u >> ((signed __int16)val - 1) % 8) & pParty->_award_bits[((signed __int16)val - 1) >> 3])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8980 && (&dword_722F10)[4 * val] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8981 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8982 v17 = pPlayers[uPlayerIdx + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8983 bFlashQuestBook = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8984 v34 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8985 v3 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8986 v17->PlaySound(93, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8987 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8988 v15 = (char *)pParty->_award_bits;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8989 LABEL_44:
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
8990 _449B7E_toggle_bit((unsigned char *)v15, val, 1u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8991 goto LABEL_173;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8992 case VAR_PlayerItemInHands:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8993 item.Reset();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8994 item.Reset();
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
8995 item.uAttributes = 1;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8996 item.uItemID = val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8997 if ( val >= ITEM_ARTIFACT_PUCK && val <= ITEM_RELIC_MEKORIGS_HAMMER )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8998 pParty->field_3C.pIsArtifactFound[val] = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
8999 if ( val >= ITEM_WAND_FIRE && val <= ITEM_WAND_INCENERATION )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9000 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9001 item.uNumCharges = rand() % 6 + pItemsTable->pItems[item.uItemID].uDamageMod + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9002 item.uMaxCharges = LOBYTE(item.uNumCharges);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9003 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9004 pParty->SetHoldingItem(&item);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9005 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9006 case VAR_FixedGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9007 party_finds_gold(val, 1);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9008 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9009 case VAR_BaseMight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9010 v18 = (__int16 *)&Dst->uMight;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9011 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9012 case VAR_BaseIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9013 v18 = (__int16 *)&Dst->uIntelligence;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9014 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9015 case VAR_BasePersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9016 v18 = (__int16 *)&Dst->uWillpower;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9017 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9018 case VAR_BaseEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9019 v18 = (__int16 *)&Dst->uEndurance;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9020 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9021 case VAR_BaseSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9022 v18 = (__int16 *)&Dst->uSpeed;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9023 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9024 case VAR_BaseAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9025 v18 = (__int16 *)&Dst->uAccuracy;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9026 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9027 case VAR_BaseLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9028 v18 = (__int16 *)&Dst->uLuck;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9029 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9030 case VAR_FixedFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9031 Party::GiveFood(val);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9032 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[502], val);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9033 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9034 if ( pParty->uNumFoodRations > 0xFFFF )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9035 Party::SetFood(0xFFFFu);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9036 goto _play_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9037 case VAR_MightBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9038 goto LABEL_62;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9039 case VAR_IntellectBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9040 goto LABEL_66;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9041 case VAR_PersonalityBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9042 goto LABEL_67;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9043 case VAR_EnduranceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9044 goto LABEL_68;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9045 case VAR_SpeedBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9046 goto LABEL_69;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9047 case VAR_AccuracyBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9048 goto LABEL_70;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9049 case VAR_LuckBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9050 goto LABEL_71;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9051 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9052 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9053 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9054 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9055 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9056 LABEL_62:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9057 v19 = (__int16 *)&Dst->uMightBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9058 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9059 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9060 if ( var <= VAR_FireResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9061 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9062 if ( var != VAR_FireResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9063 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9064 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9065 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9066 case VAR_ActualIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9067 LABEL_66:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9068 v19 = (__int16 *)&Dst->uIntelligenceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9069 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9070 case VAR_ActualPersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9071 LABEL_67:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9072 v19 = (__int16 *)&Dst->uWillpowerBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9073 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9074 case VAR_ActualEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9075 LABEL_68:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9076 v19 = (__int16 *)&Dst->uEnduranceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9077 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9078 case VAR_ActualSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9079 LABEL_69:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9080 v19 = (__int16 *)&Dst->uSpeedBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9081 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9082 case VAR_ActualAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9083 LABEL_70:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9084 v19 = (__int16 *)&Dst->uAccuracyBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9085 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9086 case VAR_ActualLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9087 LABEL_71:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9088 v19 = (__int16 *)&Dst->uLuckBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9089 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9090 case VAR_FireResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9091 v18 = &Dst->sResFireBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9092 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9093 case VAR_AirResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9094 v18 = &Dst->sResAirBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9095 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9096 case VAR_WaterResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9097 v18 = &Dst->sResWaterBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9098 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9099 case VAR_EarthResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9100 v18 = &Dst->sResEarthBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9101 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9102 case VAR_SpiritResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9103 v18 = &Dst->sResSpiritBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9104 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9105 case VAR_MindResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9106 v18 = &Dst->sResMindBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9107 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9108 case VAR_BodyResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9109 v18 = &Dst->sResBodyBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9110 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9111 case VAR_LightResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9112 v18 = &Dst->sResLightBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9113 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9114 case VAR_DarkResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9115 v18 = &Dst->sResDarkBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9116 goto LABEL_82;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9117 case VAR_MagicResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9118 v18 = &Dst->sResMagicBase;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9119 LABEL_82:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9120 *v18 += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9121 if ( *v18 > 255 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9122 *v18 = 255;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9123 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9124 v29 = 92;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9125 goto LABEL_116;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9126 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9127 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9128 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9129 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9130 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9131 v19 = &Dst->sResFireBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9132 LABEL_113:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9133 *v19 += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9134 if ( *v19 > 255 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9135 *v19 = 255;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9136 v31 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9137 v29 = 91;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9138 LABEL_116:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9139 v3 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9140 pPlayers[uPlayerIdx + 1]->PlaySound(v29, v31);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9141 goto _play_anim_and_maybe_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9142 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9143 if ( var <= VAR_DisarmTrapSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9144 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9145 if ( var != VAR_DisarmTrapSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9146 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9147 if ( var <= VAR_BodyResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9148 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9149 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9150 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9151 case VAR_BodyResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9152 v19 = &Dst->sResBodyBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9153 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9154 case VAR_AirResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9155 v19 = &Dst->sResAirBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9156 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9157 case VAR_WaterResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9158 v19 = &Dst->sResWaterBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9159 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9160 case VAR_EarthResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9161 v19 = &Dst->sResEarthBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9162 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9163 case VAR_SpiritResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9164 v19 = &Dst->sResSpiritBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9165 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9166 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9167 if ( var != 62 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9168 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9169 v19 = &Dst->sResMindBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9170 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9171 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9172 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9173 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9174 if ( var == VAR_LightResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9175 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9176 v19 = &Dst->sResLightBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9177 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9178 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9179 if ( var == VAR_DarkResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9180 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9181 v19 = &Dst->sResDarkBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9182 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9183 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9184 if ( var == VAR_MagicResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9185 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9186 v19 = &Dst->sResMagicBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9187 goto LABEL_113;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9188 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9189 if ( var <= VAR_MagicResistanceBonus || var > VAR_DiplomacySkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9190 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9191 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9192 goto LABEL_106;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9193 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9194 if ( var == VAR_LearningSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9195 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9196 LABEL_106:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9197 if ( val <= VAR_BodyResistanceBonus )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9198 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9199 *((short *)&Dst->pConditions[16] + var) = (unsigned __int8)val | *((char *)&Dst->pConditions[16] + 2 * var) & VAR_BodyResistanceBonus;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9200 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9201 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9202 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9203 v20 = (char *)&Dst->pConditions[16] + 2 * var;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9204 v21 = *(short *)v20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9205 v22 = (unsigned __int8)val + (v21 & VAR_BodyResistanceBonus);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9206 if ( v22 > 60 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9207 LOWORD(v22) = 60;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9208 LOBYTE(v21) = v21 & 0xC0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9209 *(short *)v20 = v22 | v21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9210 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9211 goto _play_anim_and_exit;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9212 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9213 if ( var <= VAR_LearningSkill )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9214 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9215 if ( var <= VAR_Eradicated )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9216 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9217 Dst->SetCondition(var - 105, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9218 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9219 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9220 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9221 if ( var != VAR_MajorCondition )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9222 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9223 if ( var > VAR_MajorCondition && var <= VAR_ActiveSpells )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9224 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9225 if ( (unsigned __int8)val + (unsigned __int8)byte_5E4C15[var] <= 255 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9226 byte_5E4C15[var] += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9227 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9228 byte_5E4C15[var] = -1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9229 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9230 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9231 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9232 memset(Dst, 0, 0xA0u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9233 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9234 _play_anim_and_exit:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9235 v3 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9236 _play_anim_and_maybe_sound:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9237 pGame->pStru6Instance->SetPlayerBuffAnim(0x97u, uPlayerIdx);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9238 _maybe_play_sound:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9239 if ( v3 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9240 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9241 goto _play_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9242 }
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
9243 if ( !((unsigned __int8)(0x80u >> ((signed __int16)val - 1) % 8) & pParty->_autonote_bits[((signed __int16)val - 1) >> 3])
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9244 && (&dword_723718_autonote_related)[8 * val] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9245 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9246 v23 = pPlayers[uPlayerIdx + 1];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9247 v34 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9248 v23->PlaySound(96, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9249 v24 = dword_72371C[2 * val];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9250 bFlashAutonotesBook = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9251 dword_506568 = v24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9252 }
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
9253 _449B7E_toggle_bit(pParty->_autonote_bits, val, 1u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9254 v3 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9255 LABEL_173:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9256 if ( v34 != 1 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9257 goto _maybe_play_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9258 goto _play_anim_and_maybe_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9259 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9260 if ( var > VAR_GoldInBank )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9261 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9262 if ( var == 307 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9263 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9264 pParty->uNumDeaths += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9265 goto LABEL_173;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9266 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9267 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9268 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9269 case 308:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9270 pParty->uNumBountiesCollected += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9271 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9272 case 309:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9273 pParty->uNumPrisonTerms += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9274 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9275 case 310:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9276 pParty->uNumArenaPageWins += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9277 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9278 case 311:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9279 pParty->uNumArenaSquireWins += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9280 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9281 case 312:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9282 pParty->uNumArenaKnightWins += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9283 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9284 case 313:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9285 pParty->uNumArenaLordWins += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9286 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9287 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9288 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9289 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9290 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9291 if ( var == VAR_GoldInBank )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9292 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9293 pParty->uNumGoldInBank += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9294 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9295 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9296 if ( var <= VAR_Counter8 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9297 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9298 if ( (signed int)var >= 245 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9299 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9300 *(int *)&stru_AA1058[3].pSounds[8 * var + 44300] = LODWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9301 *(int *)&stru_AA1058[3].pSounds[8 * var + 44304] = HIDWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9302 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9303 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9304 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9305 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9306 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9307 case VAR_MonthEquals|VAR_CurrentSP:
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
9308 _449B7E_toggle_bit((unsigned char *)Dst->field_1A50, val, 1u);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9309 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9310 case VAR_NPCs2:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9311 pParty->field_709 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9312 LOBYTE(pNPCStats->pNewNPCData[val].uFlags) |= 0x80u;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9313 sub_44A56A();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9314 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9315 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9316 case VAR_NumSkillPoints:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9317 Dst->uSkillPoints += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9318 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9319 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9320 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9321 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9322 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9323 if ( var < VAR_Counter9 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9324 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9325 if ( (signed int)var <= 274 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9326 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9327 *(int *)&stru_AA1058[3].pSounds[8 * var + 44532] = LODWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9328 *(int *)&stru_AA1058[3].pSounds[8 * var + 44536] = HIDWORD(pParty->uTimePlayed);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9329 goto _play_sound;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9330 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9331 if ( var != VAR_ReputationInCurrentLocation )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9332 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9333 if ( var <= VAR_ReputationInCurrentLocation
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9334 || var > VAR_History_28
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9335 || (v25 = var - 276, pParty->field_3C.field_4F0[2 * v25 + 1] | pParty->field_3C.field_4F0[2 * v25])
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9336 || (pParty->field_3C.field_4F0[2 * (var - 276)] = LODWORD(pParty->uTimePlayed),
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9337 v26 = *(&pStorylineText->field_0 + 3 * v25) == 0,
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9338 pParty->field_3C.field_4F0[2 * (var - 276) + 1] = HIDWORD(pParty->uTimePlayed),
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9339 v26) )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9340 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9341 bFlashHistoryBook = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9342 _play_sound:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9343 v28 = 8 * uPlayerIdx + 400;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9344 LOBYTE(v28) = (8 * uPlayerIdx - 112) | 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9345 pAudioPlayer->PlaySound(SOUND_20001, v28, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9346 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9347 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9348 v27 = &pOutdoor->ddm;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9349 if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9350 v27 = &pIndoor->dlv;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9351 v27->uReputation += val;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9352 if ( v27->uReputation > 10000 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9353 v27->uReputation = 10000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9354 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9355 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9356 // 506568: using guessed type int dword_506568;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9357 // 507948: using guessed type char bFlashHistoryBook;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9358 // 507949: using guessed type char bFlashAutonotesBook;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9359 // 50794A: using guessed type char bFlashQuestBook;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9360 // 72371C: using guessed type int dword_72371C[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9361 // 723E80: using guessed type int dword_723E80_award_related[];
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9362
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9363
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9364
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9365
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9366 //----- (0044B9C4) --------------------------------------------------------
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9367 void Player::SubtractVariable(enum VariableType var, void *a3)
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9368 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9369 unsigned int v3; // ebx@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9370 signed int v4; // esi@1
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9371 enum VariableType v5; // eax@8
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9372 int v6; // esi@11
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9373 int v7; // edi@14
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9374 signed int v8; // eax@17
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9375 char *v9; // eax@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9376 char v10; // sf@20
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9377 char *v11; // ecx@26
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9378 char *v12; // ecx@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9379 __int64 v13; // qax@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9380 unsigned __int8 v14; // cf@27
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9381 char *v15; // edx@29
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9382 char *v16; // eax@90
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9383 char *v17; // ecx@94
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9384 void *v18; // esi@97
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9385 signed int v19; // edx@97
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9386 char *v20; // ecx@98
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9387 int v21; // eax@100
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9388 __int16 v22; // dx@112
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9389 int v23; // [sp-8h] [bp-14h]@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9390 signed int v24; // [sp-4h] [bp-10h]@4
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9391 int v25; // [sp-4h] [bp-10h]@45
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9392
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9393 v3 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9394 v4 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9395 if ( this == pPlayers[2] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9396 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9397 v4 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9398 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9399 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9400 if ( this == pPlayers[3] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9401 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9402 v24 = 2;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9403 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9404 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9405 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9406 if ( this != pPlayers[4] )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9407 goto LABEL_8;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9408 v24 = 3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9409 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9410 v4 = v24;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9411 LABEL_8:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9412 v5 = var;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9413 if ( (signed int)var > 222 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9414 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9415 if ( (signed int)var <= 307 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9416 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9417 if ( var == 307 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9418 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9419 pParty->uNumDeaths -= (unsigned int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9420 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9421 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9422 if ( var == 223 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9423 {
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
9424 v11 = (char *)pParty->_autonote_bits;
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9425 v22 = (short)a3 - 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9426 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9427 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9428 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9429 if ( var != 231 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9430 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9431 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9432 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9433 case 232:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9434 var = (VariableType)0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9435 GetNewNPCData(uDialogue_SpeakingActorNPC_ID, (int)&var);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9436 dword_5B65CC = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9437 if ( (void *)var == a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9438 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9439 dword_5B65CC = (int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9440 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9441 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9442 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9443 pParty->field_709 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9444 LOBYTE(pNPCStats->pNewNPCData[(int)a3].uFlags) &= 0x7Fu;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9445 sub_44A56A();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9446 viewparams->bRedrawGameUI = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9447 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9448 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9449 case 241:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9450 v18 = a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9451 v19 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9452 if ( (signed int)pNPCStats->uNumNewNPCs > 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9453 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9454 v20 = (char *)&pNPCStats->pNewNPCData[0].uFlags;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9455 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9456 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9457 if ( *((void **)v20 + 4) == v18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9458 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9459 v21 = *(int *)v20;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9460 if ( (char)*(int *)v20 < 0 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9461 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9462 LOBYTE(v21) = v21 & 0x7F;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9463 *(int *)v20 = v21;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9464 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9465 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9466 ++v19;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9467 v20 += 76;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9468 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9469 while ( v19 < (signed int)pNPCStats->uNumNewNPCs );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9470 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9471 if ( (void *)pParty->pHirelings[0].uProfession == v18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9472 memset(pParty->pHirelings, 0, 0x4Cu);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9473 if ( (void *)pParty->pHirelings[1].uProfession == v18 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9474 memset(&pParty->pHirelings[1], 0, 0x4Cu);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9475 pParty->field_709 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9476 sub_44A56A();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9477 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9478 case 243:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9479 v17 = (char *)&this->uSkillPoints;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9480 if ( (unsigned int)a3 <= *(int *)v17 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9481 *(int *)v17 -= (int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9482 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9483 *(int *)v17 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9484 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9485 case 275:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9486 v16 = (char *)&pOutdoor->ddm;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9487 if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9488 v16 = (char *)&pIndoor->dlv;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9489 *((int *)v16 + 2) -= (int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9490 if ( *((int *)v16 + 2) < -10000 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9491 *((int *)v16 + 2) = -10000;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9492 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9493 case 306:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9494 if ( (unsigned int)a3 <= pParty->uNumGoldInBank )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9495 pParty->uNumGoldInBank -= (unsigned int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9496 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9497 LABEL_88:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9498 dword_5B65C4 = 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9499 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9500 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9501 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9502 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9503 v11 = this->field_1A50;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9504 LABEL_112:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9505 v22 = (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9506 }
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
9507 _449B7E_toggle_bit((unsigned char *)v11, v22, 0);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9508 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9509 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9510 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9511 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9512 case 308:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9513 pParty->uNumBountiesCollected -= (unsigned int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9514 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9515 case 309:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9516 pParty->uNumPrisonTerms -= (int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9517 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9518 case 310:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9519 pParty->uNumArenaPageWins -= (char)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9520 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9521 case 311:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9522 pParty->uNumArenaSquireWins -= (char)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9523 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9524 case 312:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9525 pParty->uNumArenaKnightWins -= (char)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9526 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9527 case 313:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9528 pParty->uNumArenaLordWins -= (char)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9529 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9530 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9531 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9532 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9533 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9534 if ( (signed int)var >= 123 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9535 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9536 byte_5E4C15[var] -= (char)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9537 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9538 else
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9539 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9540 switch ( var )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9541 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9542 case VAR_RandomGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9543 v6 = rand() % (signed int)a3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9544 if ( v6 > pParty->uNumGold )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9545 v6 = pParty->uNumGold;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9546 Party::TakeGold(v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9547 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[503], v6);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9548 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9549 GameUI_DrawFoodAndGold();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9550 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9551 case VAR_RandomFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9552 v7 = rand() % (signed int)a3 + 1;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9553 if ( v7 > pParty->uNumFoodRations )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9554 v7 = pParty->uNumFoodRations;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9555 Party::TakeFood(v7);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9556 sprintfex(pTmpBuf, pGlobalTXT_LocalizationStrings[504], v7);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9557 ShowStatusBarString(pTmpBuf, 2u);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9558 GameUI_DrawFoodAndGold();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9559 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9560 default:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9561 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9562 case VAR_CurrentHP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9563 ReceiveDamage((signed int)a3, 4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9564 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9565 case VAR_CurrentSP:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9566 v9 = (char *)&this->sMana;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9567 v10 = this->sMana - (signed int)a3 < 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9568 *(int *)v9 -= (int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9569 if ( v10 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9570 *(int *)v9 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9571 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9572 case VAR_ACModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9573 this->sACModifier -= (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9574 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9575 case VAR_BaseLevel:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9576 this->uLevel -= (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9577 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9578 case VAR_LevelModifier:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9579 this->sLevelModifier -= (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9580 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9581 case VAR_Age:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9582 this->sAgeModifier -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9583 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9584 case VAR_Award:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9585 v11 = this->field_152;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9586 goto LABEL_112;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9587 case VAR_Experience:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9588 v12 = (char *)&this->uExperience;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9589 v13 = (signed int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9590 v14 = *(int *)v12 < (unsigned int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9591 *(int *)v12 -= (int)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9592 *((int *)v12 + 1) -= v14 + HIDWORD(v13);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9593 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9594 case VAR_QBits_QuestsDone:
26
93bf1d5f6a6d Game loading.
Nomad
parents: 25
diff changeset
9595 _449B7E_toggle_bit(pParty->_award_bits, (__int16)a3, 0);
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9596 pPlayers[v4 + 1]->PlaySound(96, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9597 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9598 case VAR_PlayerItemInHands:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9599 v15 = (char *)this->pInventoryIndices;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9600 break;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9601 case VAR_FixedGold:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9602 if ( (unsigned int)a3 > pParty->uNumGold )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9603 goto LABEL_88;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9604 Party::TakeGold((unsigned int)a3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9605 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9606 case VAR_MightBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9607 case VAR_ActualMight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9608 this->uMightBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9609 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9610 case VAR_IntellectBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9611 case VAR_ActualIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9612 this->uIntelligenceBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9613 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9614 case VAR_PersonalityBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9615 case VAR_ActualPersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9616 this->uWillpowerBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9617 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9618 case VAR_EnduranceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9619 case VAR_ActualEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9620 this->uEnduranceBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9621 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9622 case VAR_SpeedBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9623 case VAR_ActualSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9624 this->uSpeedBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9625 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9626 case VAR_AccuracyBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9627 case VAR_ActualAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9628 this->uAccuracyBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9629 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9630 case VAR_LuckBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9631 case VAR_ActualLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9632 this->uLuckBonus -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9633 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9634 case VAR_BaseMight:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9635 this->uMight -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9636 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9637 case VAR_BaseIntellect:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9638 this->uIntelligence -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9639 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9640 case VAR_BasePersonality:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9641 this->uWillpower -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9642 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9643 case VAR_BaseEndurance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9644 this->uEndurance -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9645 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9646 case VAR_BaseSpeed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9647 this->uSpeed -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9648 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9649 case VAR_BaseAccuracy:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9650 this->uAccuracy -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9651 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9652 case VAR_BaseLuck:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9653 this->uLuck -= (unsigned __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9654 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9655 case VAR_FireResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9656 this->sResFireBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9657 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9658 case VAR_AirResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9659 this->sResAirBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9660 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9661 case VAR_WaterResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9662 this->sResWaterBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9663 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9664 case VAR_EarthResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9665 this->sResEarthBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9666 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9667 case VAR_SpiritResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9668 this->sResSpiritBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9669 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9670 case VAR_MindResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9671 this->sResMindBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9672 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9673 case VAR_BodyResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9674 this->sResBodyBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9675 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9676 case VAR_LightResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9677 this->sResLightBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9678 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9679 case VAR_DarkResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9680 this->sResDarkBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9681 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9682 case VAR_MagicResistance:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9683 this->sResMagicBase -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9684 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9685 case VAR_FireResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9686 this->sResFireBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9687 goto LABEL_45;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9688 case VAR_AirResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9689 this->sResAirBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9690 LABEL_45:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9691 v25 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9692 v23 = 92;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9693 goto LABEL_73;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9694 case VAR_WaterResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9695 this->sResWaterBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9696 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9697 case VAR_EarthResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9698 this->sResEarthBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9699 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9700 case VAR_SpiritResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9701 this->sResSpiritBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9702 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9703 case VAR_MindResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9704 this->sResMindBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9705 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9706 case VAR_BodyResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9707 this->sResBodyBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9708 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9709 case VAR_LightResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9710 this->sResLightBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9711 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9712 case VAR_DarkResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9713 this->sResDarkBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9714 goto LABEL_72;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9715 case VAR_MagicResistanceBonus:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9716 this->sResMagicBonus -= (signed __int16)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9717 LABEL_72:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9718 v25 = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9719 v23 = 91;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9720 LABEL_73:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9721 pPlayers[v4 + 1]->PlaySound(v23, v25);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9722 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9723 case VAR_FixedFood:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9724 Party::TakeFood((unsigned int)a3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9725 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9726 case VAR_StaffSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9727 case VAR_SwordSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9728 case VAR_DaggerSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9729 case VAR_AxeSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9730 case VAR_SpearSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9731 case VAR_BowSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9732 case VAR_MaceSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9733 case VAR_BlasterSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9734 case VAR_ShieldSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9735 case VAR_LeatherSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9736 case VAR_SkillChain:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9737 case VAR_PlateSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9738 case VAR_FireSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9739 case VAR_AirSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9740 case VAR_WaterSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9741 case VAR_EarthSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9742 case VAR_SpiritSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9743 case VAR_MindSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9744 case VAR_BodySkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9745 case VAR_LightSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9746 case VAR_DarkSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9747 case VAR_IdentifyItemSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9748 case VAR_MerchantSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9749 case VAR_RepairSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9750 case VAR_BodybuildingSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9751 case VAR_MeditationSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9752 case VAR_PerceptionSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9753 case VAR_DiplomacySkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9754 case VAR_DisarmTrapSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9755 case VAR_LearningSkill:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9756 *((short *)&this->pConditions[16] + var) -= (unsigned __int8)a3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9757 goto LABEL_17;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9758 case VAR_Cursed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9759 case VAR_Weak:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9760 case VAR_Asleep:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9761 case VAR_Afraid:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9762 case VAR_Drunk:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9763 case VAR_Insane:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9764 case VAR_PoisonedGreen:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9765 case VAR_DiseasedGreen:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9766 case VAR_PoisonedYellow:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9767 case VAR_DiseasedYellow:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9768 case VAR_PoisonedRed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9769 case VAR_DiseasedRed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9770 case VAR_Paralyzed:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9771 case VAR_Unconsious:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9772 case VAR_Dead:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9773 case VAR_Stoned:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9774 case VAR_Eradicated:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9775 *((int *)this + 2 * var - 210) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9776 *((int *)this + 2 * v5 - 209) = 0;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9777 LABEL_17:
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9778 pGame->pStru6Instance->SetPlayerBuffAnim(0x98u, v4);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9779 v8 = 8 * v4 + 400;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9780 LOBYTE(v8) = (8 * v4 - 112) | 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9781 pAudioPlayer->PlaySound(SOUND_20001, v8, 0, -1, 0, 0, 0, 0);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9782 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9783 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9784 do
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9785 {
23
509744251c8e Player-related members
Nomad
parents: 2
diff changeset
9786 if ( *(void **)&this->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(int *)v15 + 5] == a3 )
0
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9787 {
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9788 RemoveItemAtInventoryIndex(v3);
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9789 return;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9790 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9791 ++v3;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9792 v15 += 4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9793 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9794 while ( (signed int)v3 < 126 );
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9795 if ( (void *)pParty->pPickedItem.uItemID == a3 )
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9796 pMouse->RemoveHoldingItem();
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9797 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9798 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9799 }
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9800 // 5B65C4: using guessed type int dword_5B65C4;
8b8875f5b359 Initial commit
Nomad
parents:
diff changeset
9801 // 5B65CC: using guessed type int dword_5B65CC;