mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Fixed a crash bug in ScriptExtender.cpp from commit e075c05
Minor code/document edits.
This commit is contained in:
@@ -806,7 +806,10 @@
|
|||||||
#define bit_32 (0x80000000)
|
#define bit_32 (0x80000000)
|
||||||
#define bit_ALL (0xFFFFFFFF)
|
#define bit_ALL (0xFFFFFFFF)
|
||||||
|
|
||||||
|
#define ROLL_CRITICAL_FAILURE 0
|
||||||
|
#define ROLL_FAILURE 1
|
||||||
|
#define ROLL_SUCCESS 2
|
||||||
|
#define ROLL_CRITICAL_SUCCESS 3
|
||||||
|
|
||||||
//Misc commands
|
//Misc commands
|
||||||
#define obj_get_rot(obj) (has_trait(TRAIT_OBJECT, obj, OBJECT_CUR_ROT))
|
#define obj_get_rot(obj) (has_trait(TRAIT_OBJECT, obj, OBJECT_CUR_ROT))
|
||||||
|
|||||||
@@ -911,7 +911,7 @@ long GetResetScriptReturnValue() {
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
static long __stdcall FindOverrideSub(TProgram* program) {
|
static __forceinline long __stdcall FindProgram(TProgram* program) {
|
||||||
std::tr1::unordered_map<TProgram*, SelfOverrideObj>::iterator overrideIt = selfOverrideMap.find(program);
|
std::tr1::unordered_map<TProgram*, SelfOverrideObj>::iterator overrideIt = selfOverrideMap.find(program);
|
||||||
if (overrideIt != selfOverrideMap.end()) {
|
if (overrideIt != selfOverrideMap.end()) {
|
||||||
DWORD scriptId = overrideIt->second.object->scriptId; // script
|
DWORD scriptId = overrideIt->second.object->scriptId; // script
|
||||||
@@ -940,11 +940,11 @@ static long __stdcall FindOverrideSub(TProgram* program) {
|
|||||||
return -1; // change nothing
|
return -1; // change nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
static long __fastcall FindOverride(TProgram* program, TScript* &script) {
|
static long __fastcall FindOverride(TProgram* program, TScript** script) {
|
||||||
long result = FindOverrideSub(program);
|
long result = FindProgram(program);
|
||||||
if (result == -2) {
|
if (result == -2) {
|
||||||
if (script) {
|
if (script) {
|
||||||
script = &overrideScript; // unsafe method! script may contain an incorrect address value in some engine functions
|
*script = &overrideScript; // unsafe method! script may contain an incorrect address value in some engine functions
|
||||||
} else {
|
} else {
|
||||||
result--; // set -3
|
result--; // set -3
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -410,11 +410,11 @@ void Skills_Init() {
|
|||||||
if (basedOnPoints) HookCall(0x4AA9EC, (void*)skill_points_); // skill_dec_point_
|
if (basedOnPoints) HookCall(0x4AA9EC, (void*)skill_points_); // skill_dec_point_
|
||||||
|
|
||||||
int tagBonus = iniGetInt("Skills", "TagSkillBonus", 20, file);
|
int tagBonus = iniGetInt("Skills", "TagSkillBonus", 20, file);
|
||||||
if (tagBonus != 20 && tagBonus >=0 && tagBonus <= 100) SafeWrite8(0x4AA61E, static_cast<BYTE>(tagBonus));
|
if (tagBonus != 20 && tagBonus >=0 && tagBonus <= 100) SafeWrite8(0x4AA61E, static_cast<BYTE>(tagBonus)); // skill_level_
|
||||||
|
|
||||||
int tagMode = iniGetInt("Skills", "TagSkillMode", 0, file);
|
int tagMode = iniGetInt("Skills", "TagSkillMode", 0, file);
|
||||||
if (tagMode & 1) SafeWrite8(0x4AA612, 0xEB); // 4th tag skill can have initial skill bonus (jz > jmp)
|
if (tagMode & 1) SafeWrite8(0x4AA612, 0xEB); // 4th tag skill can have initial skill bonus. skill_level_ (jz > jmp)
|
||||||
if (tagMode & 2) SafeWrite16(0x4AA60E, 0x9090); // skill_level_ disables 2x skill points bonus for tag skills
|
if (tagMode & 2) SafeWrite16(0x4AA60E, 0x9090); // disables double skill points bonus for tag skills. skill_level_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user