Merged two Glovz's fix functions and reorganized Glovz's/YAAM code layout a bit.

Fixed a bug in Stats.cpp that caused critical hits to ignore critical table roll value and only have the lowest level effect.
Minor edits to MainMenu.cpp.
This commit is contained in:
NovaRain
2018-11-20 23:44:27 +08:00
parent da31455cef
commit 4bb3fa0275
4 changed files with 316 additions and 494 deletions
+20 -20
View File
@@ -234,26 +234,26 @@
#define CALIBER_7_62MM (18)
// hidden perks
#define PERK_add_nuka (53)
#define PERK_add_buffout (54)
#define PERK_add_mentats (55)
#define PERK_add_psycho (56)
#define PERK_add_radaway (57)
#define PERK_weapon_long_range (58)
#define PERK_weapon_accurate (59)
#define PERK_weapon_penetrate (60)
#define PERK_weapon_knockback (61)
#define PERK_armor_powered (62)
#define PERK_armor_combat (63)
#define PERK_weapon_scope_range (64)
#define PERK_weapon_fast_reload (65)
#define PERK_weapon_night_sight (66)
#define PERK_weapon_flameboy (67)
#define PERK_armor_advanced_1 (68)
#define PERK_armor_advanced_2 (69)
#define PERK_add_jet (70)
#define PERK_add_tragic (71)
#define PERK_armor_charisma (72)
#define PERK_add_nuka (53)
#define PERK_add_buffout (54)
#define PERK_add_mentats (55)
#define PERK_add_psycho (56)
#define PERK_add_radaway (57)
#define PERK_weapon_long_range (58)
#define PERK_weapon_accurate (59)
#define PERK_weapon_penetrate (60)
#define PERK_weapon_knockback (61)
#define PERK_armor_powered (62)
#define PERK_armor_combat (63)
#define PERK_weapon_scope_range (64)
#define PERK_weapon_fast_reload (65)
#define PERK_weapon_night_sight (66)
#define PERK_weapon_flameboy (67)
#define PERK_armor_advanced_1 (68)
#define PERK_armor_advanced_2 (69)
#define PERK_add_jet (70)
#define PERK_add_tragic (71)
#define PERK_armor_charisma (72)
#define WPN_ANIM_NONE (0x00) // (A)
#define WPN_ANIM_KNIFE (0x01) // (D)
+275 -456
View File
File diff suppressed because it is too large Load Diff
+19 -16
View File
@@ -24,7 +24,7 @@
static DWORD MainMenuYOffset;
static DWORD MainMenuTextOffset;
static const DWORD MainMenuButtonYHookRet=0x48184A;
static const DWORD MainMenuButtonYHookRet = 0x48184A;
static void __declspec(naked) MainMenuButtonYHook() {
__asm {
xor edi, edi;
@@ -41,7 +41,7 @@ static void __declspec(naked) MainMenuTextYHook() {
}
}
static const DWORD MainMenuTextRet=0x4817B0;
static const DWORD MainMenuTextRet = 0x4817B0;
static const char* VerString1 = "SFALL " VERSION_STRING;
static DWORD OverrideColour;
static void __declspec(naked) FontColour() {
@@ -56,6 +56,7 @@ skip:
retn;
}
}
static void __declspec(naked) MainMenuTextHook() {
__asm {
mov edi, [esp];
@@ -82,29 +83,31 @@ static void __declspec(naked) MainMenuTextHook() {
}
void MainMenuInit() {
int tmp;
int offset;
if(tmp=GetPrivateProfileIntA("Misc", "MainMenuCreditsOffsetX", 0, ini)) {
SafeWrite32(0x481753, 0xf+tmp);
if (offset = GetPrivateProfileIntA("Misc", "MainMenuCreditsOffsetX", 0, ini)) {
SafeWrite32(0x481753, 15 + offset);
}
if(tmp=GetPrivateProfileIntA("Misc", "MainMenuCreditsOffsetY", 0, ini)) {
SafeWrite32(0x48175C, 0x1cc+tmp);
if (offset = GetPrivateProfileIntA("Misc", "MainMenuCreditsOffsetY", 0, ini)) {
SafeWrite32(0x48175C, 460 + offset);
}
if(tmp=GetPrivateProfileIntA("Misc", "MainMenuOffsetX", 0, ini)) {
SafeWrite32(0x48187C, 0x1e+tmp);
MainMenuTextOffset=tmp;
if (offset = GetPrivateProfileIntA("Misc", "MainMenuOffsetX", 0, ini)) {
SafeWrite32(0x48187C, 30 + offset);
MainMenuTextOffset = offset;
}
if(tmp=GetPrivateProfileIntA("Misc", "MainMenuOffsetY", 0, ini)) {
MainMenuYOffset=tmp;
MainMenuTextOffset+=tmp*640;
if (offset = GetPrivateProfileIntA("Misc", "MainMenuOffsetY", 0, ini)) {
MainMenuYOffset = offset;
MainMenuTextOffset += offset * 640;
MakeJump(0x481844, MainMenuButtonYHook);
}
if(MainMenuTextOffset) {
if (MainMenuTextOffset) {
SafeWrite8(0x481933, 0x90);
MakeCall(0x481934, MainMenuTextYHook);
}
MakeJump(0x4817AB, MainMenuTextHook);
OverrideColour=GetPrivateProfileInt("Misc", "MainMenuFontColour", 0, ini);
if(OverrideColour) MakeCall(0x48174C, FontColour);
OverrideColour = GetPrivateProfileInt("Misc", "MainMenuFontColour", 0, ini);
if (OverrideColour) {
MakeCall(0x48174C, FontColour);
}
}
+2 -2
View File
@@ -49,8 +49,8 @@ static void __declspec(naked) stat_level_hack() {
}
}
static DWORD __fastcall check_stat_level(register DWORD value, DWORD stat) {
DWORD valLimit;
static int __fastcall check_stat_level(register int value, int stat) {
int valLimit;
if (cCritter == *ptr_obj_dude) {
valLimit = StatMinimumsPC[stat];
if (value < valLimit) return valLimit;