Skip to content

Commit

Permalink
Merge pull request #11 from serg-bloim/fix/spell_duration_overflow
Browse files Browse the repository at this point in the history
Fix for spell duration overflow
  • Loading branch information
serg-bloim committed Nov 12, 2019
2 parents 7170a60 + b531f42 commit be94458
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 1 deletion.
5 changes: 5 additions & 0 deletions postbuild/server.mp
Original file line number Diff line number Diff line change
Expand Up @@ -175,5 +175,10 @@
0 149 53126B // imp_GMNoLevelDown
0 150 52DA11 // presumably drop all
0 151 5610B6 // quest reward scaling
0 201 53973E // fix spell duration overflow
1 202 53BFA1 // fix spell duration overflow
1 202 53C0E1 // fix spell duration overflow
1 202 53C21E // fix spell duration overflow
1 202 53C52A // fix spell duration overflow
////////// 0: jmp, 1: call

34 changes: 34 additions & 0 deletions spell_duration_fix.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
void __declspec(naked) fix_spell_duration_overflow_0053973E()
{ // 0053973E
__asm
{
cmp eax, 0xFFFF
jle short ret_point
mov eax, 0xFFFF
ret_point:
// restore overridden code begin
mov edx, [ebp-0xC]
mov [edx+10h], ax
// restore overridden code
// jump back
mov edx, 0x00539745
jmp edx
}
}
// FUNCTIONS BELOW ARE DIFFERENT
void __declspec(naked) fix_spell_duration_overflow()
{ // 0053BFA1
__asm
{
cmp eax, 0xFFFF
jle short ret_point
mov eax, 0xFFFF
ret_point:
mov edx, [ebp-0x44]
mov [edx+0x42], ax
pop eax
inc eax
push eax
ret
}
}
4 changes: 3 additions & 1 deletion srvmgr.def
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,6 @@ imp_GMNoLevelUp @147
imp_ExtDiplomacy @148
imp_GMNoLevelDown @149
imp_DropAll @150
imp_ScaleSoftcoreExperienceReward @151
imp_ScaleSoftcoreExperienceReward @151
fix_spell_duration_overflow_0053973E @201
fix_spell_duration_overflow @202
1 change: 1 addition & 0 deletions srvmgr.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
<ClCompile Include="scanrange.cpp" />
<ClCompile Include="scanrange_check.cpp" />
<ClCompile Include="shared.cpp" />
<ClCompile Include="spell_duration_fix.cpp" />
<ClCompile Include="srvmgr.cpp" />
<ClCompile Include="srvmgr_new.cpp" />
<ClCompile Include="unit_info.cpp" />
Expand Down
3 changes: 3 additions & 0 deletions srvmgr.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@
<ClCompile Include="python.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="spell_duration_fix.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="charcheck.h">
Expand Down

0 comments on commit be94458

Please sign in to comment.