diff --git a/postbuild/server.mp b/postbuild/server.mp
index 79f7ef1..dd90e43 100644
--- a/postbuild/server.mp
+++ b/postbuild/server.mp
@@ -176,9 +176,9 @@
0 150 52DA11 // presumably drop all
0 151 5610B6 // quest reward scaling
0 201 53973E // fix spell duration overflow
-0 206 53BF9C // fix spell duration overflow
-0 203 53C0E1 // fix spell duration overflow
-0 204 53C21E // fix spell duration overflow
-0 205 53C52A // 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
diff --git a/spell_duration_fix.cpp b/spell_duration_fix.cpp
index 801ca1c..7a40c77 100644
--- a/spell_duration_fix.cpp
+++ b/spell_duration_fix.cpp
@@ -1,12 +1,11 @@
-#define FTOL 0x005BF1AC
void __declspec(naked) fix_spell_duration_overflow_0053973E()
{ // 0053973E
__asm
{
cmp eax, 0xFFFF
- jle short ret_point1
+ jle short ret_point
mov eax, 0xFFFF
-ret_point1:
+ret_point:
// restore overridden code begin
mov edx, [ebp-0xC]
mov [edx+10h], ax
@@ -18,87 +17,18 @@ void __declspec(naked) fix_spell_duration_overflow_0053973E()
}
// FUNCTIONS BELOW ARE DIFFERENT
void __declspec(naked) fix_spell_duration_overflow()
-{ // 53BF9C
+{ // 0053BFA1
__asm
{
- mov eax, FTOL
- call eax
cmp eax, 0xFFFF
jle short ret_point
mov eax, 0xFFFF
ret_point:
- ret
- }
-}
-// FUNCTIONS BELOW ARE DIFFERENT
-void __declspec(naked) fix_spell_duration_overflow_0053BFA1()
-{ // 0053BFA1
- __asm
- {
- cmp eax, 0xFFFF
- jle short ret_point2
- mov eax, 0xFFFF
-ret_point2:
- // restore overridden code begin
mov edx, [ebp-0x44]
mov [edx+0x42], ax
- // restore overridden code
- // jump back
- mov edx, 0x0053BFA8
- jmp edx
- }
-}
-
-void __declspec(naked) fix_spell_duration_overflow_0053C0E1()
-{ // 0053C0E1
- __asm
- {
- cmp eax, 0xFFFF
- jle short ret_point3
- mov eax, 0xFFFF
-ret_point3:
- // restore overridden code begin
- mov edx, [ebp-0x44]
- mov [edx+0x42], ax
- // restore overridden code
- // jump back
- mov edx, 0x0053C0E8
- jmp edx
- }
-}
-
-void __declspec(naked) fix_spell_duration_overflow_0053C21E()
-{ // 0053C21E
- __asm
- {
- cmp eax, 0xFFFF
- jle short ret_point4
- mov eax, 0xFFFF
-ret_point4:
- // restore overridden code begin
- mov edx, [ebp-0x44]
- mov [edx+0x42], ax
- // restore overridden code
- // jump back
- mov edx, 0x0053C225
- jmp edx
- }
-}
-
-void __declspec(naked) fix_spell_duration_overflow_0053C52A()
-{ // 0053C52A
- __asm
- {
- cmp eax, 0xFFFF
- jle short ret_point5
- mov eax, 0xFFFF
-ret_point5:
- // restore overridden code begin
- mov edx, [ebp-0x44]
- mov [edx+0x42], ax
- // restore overridden code
- // jump back
- mov edx, 0x0053C531
- jmp edx
+ pop eax
+ inc eax
+ push eax
+ ret
}
}
\ No newline at end of file
diff --git a/srvmgr.def b/srvmgr.def
index fcd1fd3..3b6d26a 100644
--- a/srvmgr.def
+++ b/srvmgr.def
@@ -142,9 +142,5 @@ imp_ExtDiplomacy @148
imp_GMNoLevelDown @149
imp_DropAll @150
imp_ScaleSoftcoreExperienceReward @151
-fix_spell_duration_overflow_0053973E @201
-fix_spell_duration_overflow_0053BFA1 @202
-fix_spell_duration_overflow_0053C0E1 @203
-fix_spell_duration_overflow_0053C21E @204
-fix_spell_duration_overflow_0053C52A @205
-fix_spell_duration_overflow @206
+fix_spell_duration_overflow_0053973E @201
+fix_spell_duration_overflow @202
diff --git a/srvmgr.vcxproj b/srvmgr.vcxproj
index f3a20f3..55e6b1f 100644
--- a/srvmgr.vcxproj
+++ b/srvmgr.vcxproj
@@ -92,6 +92,7 @@
+
diff --git a/srvmgr.vcxproj.filters b/srvmgr.vcxproj.filters
index 8f378e2..a034d42 100644
--- a/srvmgr.vcxproj.filters
+++ b/srvmgr.vcxproj.filters
@@ -129,6 +129,9 @@
Source Files
+
+ Source Files
+