Skip to content

Commit

Permalink
Release 4.3.0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
NovaRain committed Jun 26, 2021
2 parents dec97f2 + fc15a17 commit ec6d25d
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 33 deletions.
30 changes: 15 additions & 15 deletions artifacts/translations/french.ini
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
[sfall]
SaveInCombat=Tu ne peux pas sauvegarder en ce moment.
KarmaGain=Tu gagnes %d Karma.
KarmaLoss=Tu perds %d Karma.
HighlightFail1=Tu n'as pas de détecteur de mouvement.
HighlightFail2=Ton détecteur de mouvement n'a plus de charges.
SuperStimExploitMsg=You cannot use a super stim on someone who is not injured!
BlockedCombat=You cannot enter combat at this time.
SaveSfallDataFail=ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again.
PartyLvlMsg=Suiv:
PartyACMsg=TA:
PartyAddictMsg=Dependance
NPCPickupFail=%s ne peut pas ramasser l'objet.
KarmaGain=Tu gagnes %d points de Karma.
KarmaLoss=Tu perds %d points de Karma.
HighlightFail1=Tu ne porte pas de Capteur de mouvement.
HighlightFail2=Ton Capteur de mouvement est vide.
SuperStimExploitMsg=Tu ne peux pas utiliser un Super Stimpak sur une personne qui n'est pas blessée!
BlockedCombat=Tu ne peux pas entrer en combat actuellement.
SaveSfallDataFail=ERROR à la sauvegarde! Vérifiez que d'autres programmes n'interferent pas avec les fichiers ou les dossiers de sauvegarde et essayez à nouveau.
PartyLvlMsg=Niveau:
PartyACMsg=CA:
PartyAddictMsg=Accroc
NPCPickupFail=%s ne peux pas prendre cet objet.
PartyOrderAttackHuman=Je vais m'en occuper.|Ok, j'ai compris.|Ça ma l'air bon.
PartyOrderAttackCreature=::Grondement::
PartyOrderAttackRobot=::Beep::
PartyOrderAttackHuman=Je m'en occupe|Okay, je fais ça|Bonne idée
PartyOrderAttackCreature=::Grogne::
PartyOrderAttackRobot=::Biip::

[AppearanceMod]
RaceText=Race
StyleText=Style
DoneBtn=Fait
DoneBtn=Terminé
3 changes: 2 additions & 1 deletion sfall/Modules/Animations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ static BYTE __fastcall CheckLockAnimSlot(long, long slot) {
}

static long __fastcall LockAnimSlot(long slot) {
if (animSet[slot].counter != animSet[slot].totalAnimCount) {
if (slot < animationLimit && animSet[slot].counter != animSet[slot].totalAnimCount) {
lockAnimSet[slot] = 8;
}
return slot;
Expand Down Expand Up @@ -576,6 +576,7 @@ void Animations::init() {

lockAnimSet.resize(animationLimit);
lockLimit = animationLimit / 2;
animationLimit--; // this is necessary so as not to block the last slot

LoadGameHook::OnGameReset() += ClearAllLock;

Expand Down
23 changes: 12 additions & 11 deletions sfall/Modules/HookScripts/InventoryHs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ static int __fastcall InventoryMoveHook_Script(DWORD itemReplace, DWORD item, in

RunHookScript(HOOK_INVENTORYMOVE);

int result = (cRet > 0) ? rets[0] : -1;
int result = (cRet > 0) ? rets[0] : -1; // -1 - can move
EndHook();

return result;
Expand Down Expand Up @@ -242,19 +242,20 @@ static int __fastcall DropIntoContainer(DWORD ptrCont, DWORD item, DWORD addrCal

static void __declspec(naked) DropIntoContainerHack() {
static const DWORD DropIntoContainer_back = 0x47649D; // normal operation
static const DWORD DropIntoContainer_skip = 0x476503;
static const DWORD DropIntoContainer_skip = 0x476503; // exit drop_into_container_
__asm {
pushadc;
mov ecx, ebp; // contaner ptr
mov edx, esi; // item
mov eax, [esp + 0x10 + 12]; // call address
push eax;
test ecx, ecx;
js skipDrop;
push ecx; //pushadc;
mov edx, esi; // item
mov ecx, ebp; // contaner ptr
push [esp + 0x10 + 4]; // call address
call DropIntoContainer;
cmp eax, -1; // ret value
popadc;
jne skipdrop;
cmp eax, -1; // ret value
pop ecx; //popadc;
jne skipDrop;
jmp DropIntoContainer_back;
skipdrop:
skipDrop:
mov eax, -1;
jmp DropIntoContainer_skip;
}
Expand Down
11 changes: 9 additions & 2 deletions sfall/Modules/QuestList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -447,8 +447,15 @@ static void __fastcall QuestListSort(fo::QuestData* questList, size_t numElement
fo::QuestData* tmpList = new fo::QuestData[numElements];
std::memcpy(tmpList, questList, numElements * sizeof(fo::QuestData));

long locStart = 1500; // number from which the locations starting
long locStart = 1500; // message number from which the locations starting
size_t leftStart = 0;
long locLast = 0;

for (size_t i = 0; i < numElements; i++) {
long loc = tmpList[i].location;
if (locStart > loc) locStart = loc;
if (loc > locLast) locLast = loc;
}

for (size_t i = 0; i < numElements;) {
for (size_t j = leftStart; j < numElements; j++) {
Expand All @@ -463,7 +470,7 @@ static void __fastcall QuestListSort(fo::QuestData* questList, size_t numElement
tmpList[j].location = 0;
}
}
locStart++;
if (++locStart > locLast) break;
}
delete[] tmpList;
}
Expand Down
8 changes: 6 additions & 2 deletions sfall/Modules/Worldmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,15 +334,19 @@ static bool customPosition = false;
static void __declspec(naked) main_load_new_hook() {
__asm {
call fo::funcoffs::map_load_;
push -1;
push edx;
sub esp, 4; // buff outAreaID
mov edx, esp;
mov eax, dword ptr ds:[FO_VAR_map_number];
call fo::funcoffs::wmMatchAreaContainingMapIdx_;
pop eax; // area ID
cmp customPosition, 0;
jnz skip;
jmp fo::funcoffs::wmTeleportToArea_;
call fo::funcoffs::wmTeleportToArea_;
pop edx;
retn;
skip:
pop edx;
test eax, eax;
js end;
cmp eax, dword ptr ds:[FO_VAR_wmMaxAreaNum];
Expand Down
4 changes: 2 additions & 2 deletions sfall/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
#define VERSION_MAJOR 4
#define VERSION_MINOR 3
#define VERSION_BUILD 0
#define VERSION_REV 1
#define VERSION_REV 2

#define VERSION_STRING "4.3.0.1"
#define VERSION_STRING "4.3.0.2"

0 comments on commit ec6d25d

Please sign in to comment.