Removed some unnecessary memset code.

Minor code corrections.
This commit is contained in:
NovaRain
2019-01-30 00:15:12 +08:00
parent 2b7754746c
commit 4a5f556cd3
3 changed files with 41 additions and 38 deletions
+13 -10
View File
@@ -47,10 +47,10 @@ struct sElevatorFrms {
DWORD buttons;
};
static DWORD elevatorType[elevatorCount];
static sElevator elevators[elevatorCount]; // _retvals
static sElevatorFrms elevatorsFrms[elevatorCount]; // _intotal
static DWORD elevatorsBtnCount[elevatorCount]; // _btncount
static DWORD elevatorType[elevatorCount] = {0};
static sElevator elevators[elevatorCount] = {0}; // _retvals
static sElevatorFrms elevatorsFrms[elevatorCount] = {0}; // _intotal
static DWORD elevatorsBtnCount[elevatorCount] = {0}; // _btncount
static void __declspec(naked) GetMenuHook() {
__asm {
@@ -117,16 +117,19 @@ static void __declspec(naked) GetNumButtonsHook3() {
}
void ResetElevators() {
//memset(&elevators[vanillaElevatorCount], 0, sizeof(sElevator) * (elevatorCount - vanillaElevatorCount));
//memset(&elevatorsFrms[vanillaElevatorCount], 0, sizeof(sElevatorFrms) * (elevatorCount - vanillaElevatorCount));
//for (int i = vanillaElevatorCount; i < elevatorCount; i++) elevatorType[i] = 0;
}
static void LoadElevators() {
//ResetElevators();
memcpy(elevators, (void*)_retvals, sizeof(sElevator) * vanillaElevatorCount);
memset(&elevators[vanillaElevatorCount], 0, sizeof(sElevator) * (elevatorCount - vanillaElevatorCount));
memcpy(elevatorsFrms, (void*)_intotal, sizeof(sElevatorFrms) * vanillaElevatorCount);
memset(&elevatorsFrms[vanillaElevatorCount], 0, sizeof(sElevatorFrms) * (elevatorCount - vanillaElevatorCount));
memcpy(elevatorsBtnCount, (void*)_btncnt, sizeof(DWORD) * vanillaElevatorCount);
for (int i = 0; i < vanillaElevatorCount; i++) elevatorType[i] = i;
for (int i = vanillaElevatorCount; i < elevatorCount; i++) elevatorType[i] = 0;
char section[4];
if (elevFile) {
@@ -183,5 +186,5 @@ void ElevatorsInit(char* file) {
MakeCall(0x43F184, GetNumButtonsHook2, 2);
MakeCall(0x43F1E4, GetNumButtonsHook3, 2);
ResetElevators();
LoadElevators();
}
+24 -20
View File
@@ -27,11 +27,12 @@
static const int maxNameLen = 64; // don't change size
static const int maxDescLen = 1024; // don't change size
static char Name[maxNameLen * PERK_count];
static char Desc[maxDescLen * PERK_count];
static char tName[maxNameLen * TRAIT_count];
static char tDesc[maxDescLen * TRAIT_count];
static char perksFile[MAX_PATH];
static char Name[maxNameLen * PERK_count] = {0};
static char Desc[maxDescLen * PERK_count] = {0};
static char tName[maxNameLen * TRAIT_count] = {0};
static char tDesc[maxDescLen * TRAIT_count] = {0};
static bool disableTraits[TRAIT_count];
static DWORD* pc_trait = (DWORD*)_pc_trait;
@@ -86,8 +87,8 @@ static DWORD RemoveTraitID;
static DWORD RemovePerkID;
static DWORD RemoveSelectableID;
static DWORD TraitSkillBonuses[TRAIT_count * 18];
static DWORD TraitStatBonuses[TRAIT_count * (STAT_max_derived + 1)];
static DWORD TraitSkillBonuses[TRAIT_count * 18] = {0};
static DWORD TraitStatBonuses[TRAIT_count * (STAT_max_derived + 1)] = {0};
static DWORD IgnoringDefaultPerks = 0;
static char PerkBoxTitle[33];
@@ -673,8 +674,6 @@ static void PerkSetup() {
MakeCall(0x4AFB2F, LevelUpHack, 1); // replaces 'mov edx, ds:[PlayerLevel]'
SafeWrite8(0x43C2EC, 0xEB); // skip the block of code which checks if the player has gained a perk (now handled in level up code)
memset(Name, 0, sizeof(Name));
memset(Desc, 0, sizeof(Desc));
memcpy(Perks, (void*)_perk_data, sizeof(PerkStruct) * PERK_count);
// _perk_data
@@ -688,7 +687,7 @@ static void PerkSetup() {
SafeWrite32(0x496BF5, (DWORD)Perks + 8);
SafeWrite32(0x496AD4, (DWORD)Perks + 12);
if (strlen(perksFile)) {
if (perksFile[0] != '\0') {
char num[4];
for (int i = 0; i < PERK_count; i++) {
_itoa_s(i, num, 10);
@@ -857,12 +856,21 @@ static void __declspec(naked) TraitAdjustStatHack() {
static int _stdcall trait_adjust_skill_override(DWORD skillID) {
int result = 0;
if (pc_trait[0] != -1) result += TraitSkillBonuses[skillID * TRAIT_count + pc_trait[0]];
if (pc_trait[1] != -1) result += TraitSkillBonuses[skillID * TRAIT_count + pc_trait[1]];
if (check_trait(TRAIT_gifted)) result -= 10;
if (pc_trait[0] != -1) {
result += TraitSkillBonuses[skillID * TRAIT_count + pc_trait[0]];
}
if (pc_trait[1] != -1) {
result += TraitSkillBonuses[skillID * TRAIT_count + pc_trait[1]];
}
if (check_trait(TRAIT_gifted)) {
result -= 10;
}
if (check_trait(TRAIT_good_natured)) {
if (skillID <= SKILL_THROWING) result -= 10;
else if (skillID == SKILL_FIRST_AID || skillID == SKILL_DOCTOR || skillID == SKILL_CONVERSANT || skillID == SKILL_BARTER) result += 15;
if (skillID <= SKILL_THROWING) {
result -= 10;
} else if (skillID == SKILL_FIRST_AID || skillID == SKILL_DOCTOR || skillID == SKILL_CONVERSANT || skillID == SKILL_BARTER) {
result += 15;
}
}
return result;
}
@@ -891,11 +899,7 @@ static void TraitSetup() {
MakeJump(0x4B3C7C, TraitAdjustStatHack); // trait_adjust_stat_
MakeJump(0x4B40FC, TraitAdjustSkillHack); // trait_adjust_skill_
memset(tName, 0, sizeof(tName));
memset(tDesc, 0, sizeof(tDesc));
memcpy(Traits, (void*)_trait_data, sizeof(TraitStruct) * TRAIT_count);
memset(TraitStatBonuses, 0, sizeof(TraitStatBonuses));
memset(TraitSkillBonuses, 0, sizeof(TraitSkillBonuses));
// _trait_data
SafeWrite32(0x4B3A81, (DWORD)Traits);
@@ -904,7 +908,7 @@ static void TraitSetup() {
SafeWrite32(0x4B3BA0, (DWORD)Traits + 4);
SafeWrite32(0x4B3BC0, (DWORD)Traits + 8);
if (strlen(perksFile)) {
if (perksFile[0] != '\0') {
char buf[512], num[5] = {'t'};
char* num2 = &num[1];
for (int i = 0; i < TRAIT_count; i++) {
@@ -1143,7 +1147,7 @@ void PerksInit() {
for (int i = STAT_st; i <= STAT_lu; i++) SafeWrite8(GainStatPerks[i][0], (BYTE)GainStatPerks[i][1]);
HookCall(0x442729, PerkInitWrapper); // game_init_
if (GetPrivateProfileString("Misc", "PerksFile", "", &perksFile[2], MAX_PATH, ini)) {
if (GetPrivateProfileString("Misc", "PerksFile", "", &perksFile[2], MAX_PATH - 3, ini)) {
perksFile[0] = '.';
perksFile[1] = '\\';
HookCall(0x44272E, TraitInitWrapper); // game_init_
+4 -8
View File
@@ -32,9 +32,9 @@ static DWORD StatMinimumsNPC[STAT_max_stat];
static TGameObj* cCritter;
static DWORD xpTable[99];
static int StatFormulas[33 * 2];
static int StatShifts[33 * 7];
static double StatMulti[33 * 7];
static int StatFormulas[33 * 2] = {0};
static int StatShifts[33 * 7] = {0};
static double StatMulti[33 * 7] = {0};
DWORD StandardApAcBonus = 4;
DWORD ExtraApAcBonus = 4;
@@ -218,14 +218,10 @@ void StatsInit() {
SafeWrite8(0x4AFB1B, (BYTE)(level + 1));
}
GetPrivateProfileStringA("Misc", "DerivedStats", "", table, 2048, ini);
GetPrivateProfileStringA("Misc", "DerivedStats", "", table, MAX_PATH, ini);
if (strlen(table)) {
MakeJump(0x4AF6FC, stat_recalc_derived_hack); // overrides function
memset(StatFormulas, 0, sizeof(StatFormulas));
memset(StatShifts, 0, sizeof(StatShifts));
memset(StatMulti, 0, sizeof(StatMulti));
StatFormulas[7 * 2] = 15; // max hp
StatMulti[7 * 7 + 0] = 1;
StatMulti[7 * 7 + 2] = 2;