Further simplification of the previous commit

Updated sslc_readme.md.
This commit is contained in:
NovaRain
2024-06-15 19:08:04 +08:00
parent 8448a24339
commit 0b14111472
3 changed files with 12 additions and 10 deletions
+1 -1
View File
@@ -238,7 +238,7 @@ OutlineColor=16
;Set to 0 if you don't want a reload key, or a DX scancode otherwise ;Set to 0 if you don't want a reload key, or a DX scancode otherwise
ReloadWeaponKey=0 ReloadWeaponKey=0
;A key to hold down to let you move/drop a whole stack of items at once without the 'Move Items' window ;A key to hold down to let you move/drop an entire stack of items at once without the 'Move Items' window
;Set to 0 if you don't want a fast move key, or a DX scancode otherwise ;Set to 0 if you don't want a fast move key, or a DX scancode otherwise
ItemFastMoveKey=42 ItemFastMoveKey=42
+9 -1
View File
@@ -287,7 +287,7 @@ Syntax which requires sfall for compiled scripts to be interpreted is marked by
``` ```
__NOTE:__ When using incremental operators like `+=`, `*=`, `++`, `--` compiler will use additional temp variable to get an array at penultimate level in order to avoid making the same chain of `get_array` calls twice. __NOTE:__ When using incremental operators like `+=`, `*=`, `++`, `--` compiler will use additional temp variable to get an array at penultimate level in order to avoid making the same chain of `get_array` calls twice.
- (*) `foreach` loops: A shorthand method of looping over all elements in an array. Syntax is `foreach (<symbol> in <expression>)`. - (*) `foreach` loops: A shorthand method of looping over all elements in an array. Syntax is `foreach (<symbol> in <expression>)`. You can declare variables in place by adding the `variable` keyword before the symbol name.
- new: - new:
``` ```
procedure bingle begin procedure bingle begin
@@ -348,6 +348,14 @@ There are several changes in this version of sslc which may result in problems f
### Changelog ### Changelog
**sfall 4.4.4:**
- fixed stringified procedure names shifting when the same name is called more than once
- syntax improvements:
- `foreach`: allow to declare variables for key & value header
- `foreach`: allow to use expressions after `in` that start with a symbol without mandatory parentheses
- variables: allow to declare variables anywhere a statement is expected
- expressions: display useful error messages when an expression is expected but nothing is parsed
**sfall 4.4:** **sfall 4.4:**
- fixed compiler crash when trying to define an exported procedure with variables - fixed compiler crash when trying to define an exported procedure with variables
- fixed compiler giving "symbol or string expected" error when trying to call procedure using a string literal - fixed compiler giving "symbol or string expected" error when trying to call procedure using a string literal
+2 -8
View File
@@ -507,8 +507,8 @@ notDude:
} }
} }
// replace vanilla anim_stop_ function in combat_begin_
static void __fastcall StopAnimationAtCombatStart() { static void __stdcall combat_begin_anim_stop_hook() {
*fo::ptr::anim_in_anim_stop = true; *fo::ptr::anim_in_anim_stop = true;
*fo::ptr::curr_anim_set = -1; *fo::ptr::curr_anim_set = -1;
@@ -522,12 +522,6 @@ static void __fastcall StopAnimationAtCombatStart() {
fo::func::object_anim_compact(); fo::func::object_anim_compact();
} }
static __declspec(naked) void combat_begin_anim_stop_hook() {
__asm {
jmp StopAnimationAtCombatStart;
}
}
static void ApplyAnimationsAtOncePatches(signed char aniMax) { static void ApplyAnimationsAtOncePatches(signed char aniMax) {
//allocate memory to store larger animation struct arrays //allocate memory to store larger animation struct arrays
sf_anim_set.resize(aniMax + 1); // include a dummy sf_anim_set.resize(aniMax + 1); // include a dummy