File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -131,7 +131,16 @@ static __declspec(naked) void skill_level_hack() {
131131}
132132
133133static __declspec (naked) void skill_level_hook() {
134+ static const DWORD skill_level_Ret = 0x4AA64B ;
135+ using namespace fo ;
136+ using namespace Fields ;
134137 __asm {
138+ test eax, eax;
139+ jz skip;
140+ mov esi, [eax + protoId];
141+ shr esi, 24 ;
142+ cmp esi, OBJ_TYPE_CRITTER ;
143+ jne skip; // only critters have skills
135144 mov skillNegPoints, 0 ; // reset value
136145 call fo::funcoffs::skill_points_;
137146 test eax, eax;
@@ -140,6 +149,10 @@ static __declspec(naked) void skill_level_hook() {
140149 xor eax, eax; // set skill points to 0
141150notNeg:
142151 retn;
152+ skip:
153+ xor eax, eax;
154+ add esp, 4 ;
155+ jmp skill_level_Ret;
143156 }
144157}
145158
Original file line number Diff line number Diff line change @@ -56,6 +56,8 @@ static __declspec(naked) void stat_level_hack() {
5656 using namespace fo ;
5757 using namespace Fields ;
5858 __asm {
59+ test eax, eax;
60+ jz skip;
5961 mov esi, [eax + protoId];
6062 shr esi, 24 ;
6163 cmp esi, OBJ_TYPE_CRITTER ;
You can’t perform that action at this time.
0 commit comments