Commit graph

10372 commits

Author SHA1 Message Date
Christoph Oelckers
ee40135d55 - removed the bogus SetPointer method from PClassPointer.
This was blocking proper bookkeeping of class pointer variables, in particular it rendered PointerSubstitution ineffective.
2017-01-21 23:26:58 +01:00
ZZYZX
659c11514b OpenGL: Added picnum override handling for actors 2017-01-21 23:04:45 +01:00
Christoph Oelckers
aaae52c60b - fixed: FResourceFile::OpenResourceFile did not close the opened file in case it contained invalid data. 2017-01-21 20:15:06 +01:00
Christoph Oelckers
06ad2351d3 - fixed error in vertical velocity calculation for A_SkullAttack. 2017-01-21 19:56:54 +01:00
alexey.lysiuk
2358b65921 Fixed compiler warning reported by GGC/Clang
No more 'warning: comparison of integers of different signs: int and unsigned long'
2017-01-21 14:47:10 +02:00
Christoph Oelckers
45d3b58cc6 - fixed redundant variable declaration shadowing an outer one. 2017-01-21 13:26:26 +01:00
Christoph Oelckers
2a6fafa15e - don't let P_DamageMobj return negative values.
This serves no purpose, there's not a single place in the code which checks for it, but if that negative values goes unchecked to functions that expect an actually meaningful value for damage inflicted, some bad results can happen. If no damage is inflicted, a proper 0 needs to be returned so that the value can actually be worked with. The return value was a ZDoom invention, it is completely unclear why -1 was chosen if some kind of protection rendered the damage ineffective.
2017-01-21 13:12:34 +01:00
Christoph Oelckers
4dc1d117f2 - fixed: Without letting CMake find OpenGL, under Windows the library must be added manually to the project or linker errors will happen. 2017-01-21 11:50:53 +01:00
Christoph Oelckers
cbdf9870ec - fix uninitialized variable. 2017-01-21 11:46:23 +01:00
Christoph Oelckers
19df603f92 - fixed: P_RailAttack did not make adjustments for the shooter's floorclip. 2017-01-21 10:55:57 +01:00
alexey.lysiuk
5158b1c337 Fixed undefined behavior of DropInventory()
See https://mantis.zdoom.org/view.php?id=93
2017-01-21 11:43:11 +02:00
ZZYZX
df1a90fb1b Apparently 'name = something' gets parsed as a Type. Fixed CustomSprite actor again. 2017-01-21 10:32:26 +01:00
ZZYZX
59472d6f63 Fixed CustomSprite actor 2017-01-21 10:32:26 +01:00
ZZYZX
6f5fff00a0 Implemented static methods in String struct. Implemented String.Format and String.AppendFormat. Implemented native vararg methods for the future. 2017-01-21 10:32:26 +01:00
Edoardo Prezioso
da3da61b67 - Make OpenGL library link fully dynamic on Unix.
Also, remove all the OpenGL CMake checks, because they're not needed anymore.
2017-01-20 23:21:37 -05:00
Christoph Oelckers
7e114c1127 - moved some more code out of the way. 2017-01-21 00:49:54 +01:00
Christoph Oelckers
274727e8ae - moved the draw functions which are exclusively used by the Strife status bar into strife_sbar.cpp to get them out of the way. They are not expected to survive anyway. 2017-01-21 00:41:59 +01:00
Christoph Oelckers
74f4171947 - removed several unused draw functions from DBaseStatusBar. 2017-01-21 00:29:19 +01:00
Christoph Oelckers
355570198d - moved statusbar code to a separate directory before starting work on it. 2017-01-20 22:59:31 +01:00
Christoph Oelckers
36e1d71f2b - fix spelling error. 2017-01-20 22:45:09 +01:00
Christoph Oelckers
06898bf8fb - copied A_ClearRefire to the proper place for good now. 2017-01-20 20:19:38 +01:00
Christoph Oelckers
23a7fd40aa - fixed: The script wrapper for AActor::TakeInventory erroneously called RemoveInventory, not TakeInventory. 2017-01-20 20:04:57 +01:00
Christoph Oelckers
7adc34932f - fixed: The state parameter for CallStateChain was checked for the wrong type. 2017-01-20 19:56:29 +01:00
Edoardo Prezioso
e993f9304b - Fixed GCC/Clang compile error. 2017-01-20 19:10:07 +01:00
Christoph Oelckers
4fa5055548 - fixed: With some functions moved to Weapon, Dehacked needs to check Weapon, not StateProvider to find its code pointers. 2017-01-20 17:23:13 +01:00
Christoph Oelckers
302cb41403 - fixed typo in MorphMonster definition. 2017-01-20 17:20:50 +01:00
Christoph Oelckers
6168d3ee7c - fixed: The BurningBarrel has been replaced with something blue in Freedoom so adjust the light for that. 2017-01-20 14:46:35 +01:00
Christoph Oelckers
314e49f791 - let A_SpawnProjectile, A_FireProjectile, A_SpawnItem(Ex) and A_ThrowGrenade return the spawned actors to the calling code.
- fixed the return type checks in CallStateChain. These made some bogus assumptions about what return prototypes to support and would have skipped any multi-return function whose first argument was actually usable.
2017-01-20 12:39:51 +01:00
Christoph Oelckers
02cfdbc29c - fixed: A_ClearRefire was copied to the wrong script class. 2017-01-20 11:59:12 +01:00
Christoph Oelckers
f5421491ec - wrapped the entire DSBarInfo class in a container and completely decoupled it from DBaseStatusBar.
The idea is, when status bars are moved to ZScript that only this small wrapper class needs to be dealt with and the implementation can be left alone. SBARINFO is far too complex to be scriptified, but having it inherit directly from DBaseStatusBar and access its member variables severely limits the options of dealing with the status bar code. This way, it only accesses some globally visible functions in DBaseStatusBar and no variables.

- renamed the global ST_X and ST_Y variables because it is far too confusing and error-prone to have the same names inside and outside DBaseStatusBar.
2017-01-20 11:11:22 +01:00
Rachael Alexanderson
f3159af211 - fixed: Remove ccmd should check if an object is actually an inventory object before attempting to check its owner. (Ooops!) 2017-01-20 10:03:33 +01:00
Christoph Oelckers
9d828a7ca0 - marked all virtual overrides in DSBarInfo with the 'override' keyword so that I do not have to search for them again. 2017-01-20 01:42:21 +01:00
Christoph Oelckers
c880b26d98 - scriptified MorphProjectile and CustomSprite.
This should for now conclude actor class scriptification. The remaining ten classes with the exception of MorphedMonster are all too essential or too closely tied to engine feature so they should remain native.
2017-01-20 01:11:36 +01:00
Christoph Oelckers
3c30b59bab more inventory scriptification
* completely scriptified DehackedPickup and FakeInventory.
* scriptified all remaining virtual functions of Inventory, so that its inheritance is now 100% script-side.
* scriptified CallTryPickup and most of the code called by that.

- fixed: Passing local variables by reference did not work in the VM.
2017-01-19 23:42:12 +01:00
Christoph Oelckers
1750ded7c4 - more exporting of AInventory. 2017-01-19 20:56:31 +01:00
Christoph Oelckers
7c6542e595 - partial scriptification of AInventory.
- scriptification of CustomInventory.
2017-01-19 19:14:22 +01:00
Christoph Oelckers
19b1c10ba8 - scriptified a large part of the weapon code. 2017-01-19 17:40:34 +01:00
Rachael Alexanderson
3b55406302 - fixed: Remove ccmd now no longer removes owned inventory objects (that's what the "take" ccmd is for) 2017-01-19 14:01:12 +01:00
Christoph Oelckers
6d3b26f94c - scriptified the WeaponGiver. 2017-01-19 14:00:00 +01:00
Christoph Oelckers
42f3ccc602 - scriptified a few parts of p_pspr.cpp.
- added a speed parameter to A_Lower and A_Raise in the process.
2017-01-19 13:26:46 +01:00
alexey.lysiuk
0376c8ba24 Removed no longer present file from CMakeLists.txt 2017-01-19 10:08:00 +02:00
Christoph Oelckers
9f550941d2 - fixed loop ordering in P_SetRenderSector. 2017-01-19 01:39:05 +01:00
Christoph Oelckers
8256f25a84 - no need to keep AArmor native, now that all child classes have been scriptified. 2017-01-18 23:46:19 +01:00
Christoph Oelckers
632a29e365 - scriptified HexenArmor. 2017-01-18 23:42:08 +01:00
Christoph Oelckers
2fcffd1fc1 - removed the remaining native parts of ABasicArmor.
- simplified some FindInventory calls using PClass::FindActor to call the variant taking a name directly.
2017-01-18 22:57:47 +01:00
Christoph Oelckers
3148496f57 - scriptified BasicArmor and fixed a few errors in the conversion. 2017-01-18 22:15:48 +01:00
Christoph Oelckers
2dd6fb9595 - scriptified BasicArmorBonus. 2017-01-18 20:23:13 +01:00
Christoph Oelckers
87b9b6111d - scriptified the BeginPlay methods of the VavoomLight classes.
- moved m_Radius back to arg[3] and arg[4], so that scripts have access to light sizes again.
2017-01-18 19:10:25 +01:00
Christoph Oelckers
1ce7b80158 - scriptified the rest of the weapon pieces. 2017-01-18 18:46:24 +01:00
Christoph Oelckers
30a8541a15 - scriptified the weapon piece functions.
- fixed: ClearInventory did not process depleted items properly.
- changed HexenArmor from UNDROPPABLE to UNTOSSABLE because this allowed to remove some special handling in ClearInventory. The only other place which checks this flag also checks UNTOSSABLE.
2017-01-18 17:26:12 +01:00