Christoph Oelckers
bcc1aa95b2
- fixed: ACS calls need to explicitly pass the level into COPY_AAPTR.
...
Unlike from an action function, this can be called with a null actor, which for the player constants still needs to return something valid.
2019-02-07 15:41:35 +01:00
Christoph Oelckers
66eb4e5048
- separation of static and map-local event handlers into separate lists.
...
Having everything lumped together made this a maintenance hassle because it affected how the level has to be stored.
This hasn't been tested yet, so it may not work as intended!
2019-02-02 16:43:11 +01:00
Christoph Oelckers
6c006a5fbd
- added the missing Level parameters to AActor::StaticSpawn and P_ExecuteSpecial.
...
I think these were the last two still missing it, all remaining uses of the global level variable are in code that doesn't get run through a level tick and are supposed to access the primary level.
2019-02-01 22:02:16 +01:00
Christoph Oelckers
ddab2c3e78
- removed the playernum parameter from CheckLocalView
...
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.
In particular, this makes no real sense in case of secondary maps where it should always return false.
2019-01-31 03:29:25 +01:00
Christoph Oelckers
8bbdee5c28
- redirect most references to the global players array through FLevelLocals.
...
The Map loader may not access any global state at all - everything it can touch must be exchangable.
Furthermore, if we want to sandbox each level, there may be no direct access to any kind of global state whatsoever from the play code.
2019-01-30 01:15:32 +01:00
Christoph Oelckers
de1b89707d
Handle level in block iterators.
...
The scripted interface isn't done yet.
2019-01-29 03:26:22 +01:00
Christoph Oelckers
60873bc5d6
Moved the PointInSector functions into FLevelLocals
2019-01-29 01:30:41 +01:00
Christoph Oelckers
68667e5eaa
- moved particle storage into FLevelLocals.
...
- moved parts of the render setup out of the separate render functions.
Things like particle and polyobject linking were duplicated several times for rendering different things in different renderers.
These things only need to be set up once before the renderer is started so it makes a lot more sense to consolidate them into one place outside the actual rendering code.
2019-01-29 01:09:02 +01:00
Christoph Oelckers
648e472744
- handled approx. half of all cases where the address of level is taken.
2019-01-28 00:55:21 +01:00
Christoph Oelckers
b4acb857ad
- the final batch of easy level replacements.
...
What's left will require a bit more work...
2019-01-27 21:59:19 +01:00
Christoph Oelckers
5aa379e50e
- removed all remaining references to level and TThinkerIterator from p_enemy.cpp.
2019-01-27 14:53:08 +01:00
Christoph Oelckers
e9954ee018
Merge branch 'master' into new_level_refactor
2019-01-27 14:08:23 +01:00
Christoph Oelckers
9bb4ea34e7
- fixed: When A_SpawnProjectile got fixed, this fix broke the old A_CustomMissile function because the added workaround was overlooked.
...
This now separates the code more clearly into the twp paths to make the differences easier to see and compare.
2019-01-27 14:00:23 +01:00
Christoph Oelckers
8323524014
- give thinkers a 'level' member and change linking to the chain to happen outside the constructor.
2019-01-27 01:49:20 +01:00
Christoph Oelckers
20989a0b41
- use a local variable to access the level in DLevelScript.
...
This was a relatively cheap change but removes a significant batch of references to the global variable, only making the entry points to the ACS interpreter relevant.
2019-01-25 19:36:09 +01:00
Christoph Oelckers
7e9340f3b7
- removed most global references to the tag manager by routing most access to FLevelocals.
2019-01-24 01:40:09 +01:00
alexey.lysiuk
11958b713e
- fixed many compilation errors with GCC and Clang
2019-01-23 20:45:01 +01:00
Christoph Oelckers
dab68184f5
- moved the global spot state into FLevelLocals.
...
This way it doesn't even have to be a thinker.
2019-01-05 10:04:27 +01:00
Christoph Oelckers
c18e895272
- exported all native components of APlayerPawn.
...
Only the class definition itself remains and needs to be taken care of.
2019-01-03 18:01:58 +01:00
Christoph Oelckers
2258a71c36
- took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places.
2019-01-03 13:59:46 +01:00
Christoph Oelckers
de5ab0b4b6
- deprecated a few functions that depend on AAPTR_* to be useful.
2018-12-05 18:33:59 +01:00
Christoph Oelckers
6c9d0b166a
Added direct native entry points to a larger number of functions.
2018-12-05 17:34:11 +01:00
Christoph Oelckers
45d7e5a038
- scriptified ASpecialSpot.
...
This only had two simple native methods so the class is not fully scripted.
2018-12-04 18:21:48 +01:00
Christoph Oelckers
062528e0e2
- more direct native function calls.
2018-12-04 18:16:01 +01:00
Christoph Oelckers
44e43c48b5
- scriptified A_SelectWeapon
2018-12-04 17:31:25 +01:00
Christoph Oelckers
9348baeeb1
Removed all remaining references to AInventory
...
What remains is the class definition and one single reference that will be scriptified.
2018-12-04 17:11:36 +01:00
Christoph Oelckers
cd563cc4db
Removed more literal references to AInventory.
2018-12-04 17:00:48 +01:00
Christoph Oelckers
3d28006eda
- started removing literal references of AInventory, so far only simple stuff.
2018-12-04 00:41:39 +01:00
Christoph Oelckers
0e095b0c05
- removed all direct references of AInventory::Owner and AInventory::Amount from the C++ code.
2018-12-03 17:41:05 +01:00
Christoph Oelckers
bfcd714186
- started replacing direct references to class AInventory.
...
The easiest part was the type checks which could be changed to the name variant with a global search and replace.
2018-12-02 21:35:55 +01:00
Christoph Oelckers
93f91d1039
- scriptified P_DropItem.
2018-12-02 18:31:18 +01:00
Christoph Oelckers
3922f817fb
- made CallTryPickup a global function.
...
This one still gets called in too many places but stands in the way of moving Inventory fully to the script side.
2018-12-01 17:21:40 +01:00
Christoph Oelckers
09129e0113
- scriptified UseInventory and several functions using the already scriptified ones,
2018-12-01 17:17:08 +01:00
Christoph Oelckers
a7e472b4b3
- moved all exports from class Font to vmthunks.cpp and gave them direct native entrypoints.
...
- changed PARAM_STRING to use the passed string by reference instead of by value. The 3 instances where passing by value was needed now use PARAM_STRING_VAL.
2018-12-01 10:30:50 +01:00
Christoph Oelckers
a0c0e8bdfe
Merge remote-tracking branch 'remotes/origin/weapon_scriptification' into asmjit
...
# Conflicts:
# src/g_inventory/a_pickups.cpp
2018-11-30 21:28:44 +01:00
Christoph Oelckers
f43f0b9bd4
- added a few more direct native entry points.
2018-11-29 00:27:09 +01:00
Christoph Oelckers
d3ff657231
- added a direct native function for NextHighestCeilingAt to test multiple return values.
2018-11-28 21:40:56 +01:00
Christoph Oelckers
47b1fa774d
Merge branch 'asmjit' into weapon_scriptification
...
# Conflicts:
# src/gi.cpp
# wadsrc/static/zscript/base.txt
2018-11-26 00:14:44 +01:00
Christoph Oelckers
176da5de68
- added a direct native variant for A_PlaySound because this function is relatively easy to test.
2018-11-25 18:41:27 +01:00
Christoph Oelckers
43d434b071
- removed AStateProvider from native code.
...
The only place still referencing it was CallStateChain, so this has been made a static function now instead of a class method.
2018-11-25 10:09:06 +01:00
Christoph Oelckers
d6b781312c
- removed all remaining native components of the weapon class.
2018-11-25 10:00:55 +01:00
Christoph Oelckers
fb91982da2
- scriptified APlayerPawn::Die and fixed a few things I encountered while doing it.
2018-11-24 20:32:12 +01:00
Christoph Oelckers
652606f70b
- scriptified A_Explode and relatives.
2018-11-24 19:29:52 +01:00
Christoph Oelckers
b4c272ddff
- scriptified A_SpawnItem(Ex) and A_ThrowGrenade.
...
These were the last native functions referencing AWeapon::DepleteAmmo, so that function is now exclusively on the scripting side.
2018-11-24 17:01:12 +01:00
Christoph Oelckers
6be7fc33f3
- scriptified 3 more functions in stateprovider.
2018-11-24 15:42:43 +01:00
Christoph Oelckers
4c1b3f81ab
- scriptified A_RailAttack.
2018-11-24 15:12:30 +01:00
Christoph Oelckers
5c130737c4
- scriptified A_CustomPunch
2018-11-24 14:48:30 +01:00
Christoph Oelckers
7bb3855439
- scriptified A_FireProjectile
2018-11-24 14:16:08 +01:00
Christoph Oelckers
e071be8371
- scriptified A_FireBullets and A_CustomBulletAttack.
2018-11-24 13:50:27 +01:00
Christoph Oelckers
8bc2d50ad2
Merge branch 'master' into asmjit
...
# Conflicts:
# src/p_actionfunctions.cpp
2018-11-18 21:08:16 +01:00