Commit Graph

859 Commits

Author SHA1 Message Date
Christoph Oelckers a3ef711d1d - added a special slider type for the scaling options that prints a descriptive text instead of the slider for the special settings.
- fixed the adaptive scale calculation in GetUIScale which had the coordinates mixed up.
2017-03-30 11:30:09 +02:00
Christoph Oelckers 1dcc017daf - reimplemented the position display, but changed its position a bit upward.
- activated the RenderOverlay event, now that it can be called from the correct spot, i.e. right after the top level HUD messages are drawn. The system's status output will still be drawn on top of them.
2017-03-29 23:51:53 +02:00
Christoph Oelckers 7011010ff2 - fixed the drain callback.
- changed the effect spawn prevention of the Hexen flame strike weapon and reverted the attempt to fix this in FastProjectile.

This cannot be fixed in the base class, which was doing everything right. It's the flame missile that was doing undefined things by stopping its movement without clearing its missile flag. This cannot work because missiles are given some minimal forced velocity to ensure collision detection and any attempt to address this without clearing the missile flag is doomed to fail.
2017-03-29 22:50:13 +02:00
Christoph Oelckers b38934b532 - fixed declaration of ACS getters for status bar.
- fixed some uninitialized variables in font print code.
2017-03-29 21:54:11 +02:00
Christoph Oelckers 01b095c911 - added colorization for untranslated fonts. This uses the light color of the vertices. The software rendered 2D code will ignore this infomation.
- added a virtual OnRetrun method to menus.
2017-03-29 21:22:05 +02:00
Christoph Oelckers d36f656caf - added a callback for when damage is drained from a target. 2017-03-29 20:25:54 +02:00
Christoph Oelckers 1d4ab0cc2a - implemented proper scaling for the status bar itself.
This allows using the UI scale or its own value, like all other scaling values.
In addition there is a choice between preserving equal pixel size or aspect ratio because the squashed non-corrected versions tend to look odd, but since proper scaling requires ununiform pixel sizes it is an option.

- changed how status bar sizes are being handled.

This has to recalculate all scaling and positioning factors, which can cause problems if the drawer leaves with some temporary values that do not reflect the status bar as a whole.
Changed it so that the status bar stores the base values and restores them after drawing is complete.
2017-03-29 19:23:40 +02:00
Christoph Oelckers 87479d3c2f -use the proper functions to calculate the position of the popup screen in Strife. 2017-03-29 14:28:46 +02:00
Christoph Oelckers 7ba6860102 - scriptified the automap HUD and made it obey hud_scale instead of always being fully scaled. 2017-03-29 14:20:22 +02:00
Christoph Oelckers 2f06c09681 - fixed map name display on the automap HUD
This would cut off overlong names and the handling for status bars with protruding elements was far too simplistic and worse, making assumptions based on game mode.
It now uses a virtual function to query the status bar itself for returning this information so it can be overridden and uses V_BreakLines to split the text if it is wider than the display.
2017-03-29 10:36:16 +02:00
Christoph Oelckers fabf8451e7 - use Fill to draw Strife's health bars. 2017-03-29 02:24:04 +02:00
Christoph Oelckers 598523a1de - moved all coordinate adjustment for the status bar mode into one function and use this function in all places where status bar related coordinate adjustments need to be performed, also in SBARINFO.
- fixed unscaled status bar placement.
- fixed inventory count display for Doom status bar.
2017-03-29 01:59:03 +02:00
Christoph Oelckers 19e7d60275 - removed DSBarInfo::Scaled because it tended to disagree with StatusBar->Scaled. 2017-03-29 00:35:35 +02:00
Christoph Oelckers fa893c082b - changed the default for hud_scale to 0 (i.e. use uiscale)
- allow calling Menu.SetMenu from play code so that in-game menus can be opened.
2017-03-28 22:51:37 +02:00
Christoph Oelckers d5772ff895 - fixed: SafeCommand did not work anymore because it failed the abuse prevention check for DoCommand. 2017-03-28 22:34:12 +02:00
Christoph Oelckers 224219dd66 - made ListMenuItem.DrawSelector virtual. 2017-03-28 21:39:03 +02:00
Christoph Oelckers 6870efe134 - added a GetCVarString ZScript/DECORATE function.
- fixed: loading a savegame triggered PlayerEntered events.
2017-03-28 21:37:43 +02:00
Christoph Oelckers bdf761e457 - moved th player resurrection code into a player_t method. 2017-03-28 21:29:14 +02:00
Christoph Oelckers 6816902a09 - forgot to save doom_sbar.txt 2017-03-28 13:27:59 +02:00
Christoph Oelckers e2e17f575c - added safeguards to all 2D drawing functions to throw an exception if used outside a valid 2D draw context.
This is necessary because the hardware accelerated renderers will hide the problem, but with pure software rendering to a locked hardware surface, like DirectDraw can result in a crash.
Note that ANY mod that gets caught in this did something wrong!
2017-03-28 13:25:17 +02:00
Christoph Oelckers b9485d4edf - ported the Hexen status bar to zscript.
Note that DrawBar with a background texture does not work yet because the clipping rectangle is not done yet.
2017-03-28 11:00:05 +02:00
Christoph Oelckers bac464f2b7 - added the inventory bar on Heretic's status bar. 2017-03-27 21:30:05 +02:00
Christoph Oelckers a6bf93c624 - implemented the Heretic status bar. 2017-03-27 21:01:40 +02:00
Christoph Oelckers 0fdd118906 - change statusbar drawers to use the top left of the virtual screen as origin, not the top left of the actual status bar, to bring this in line with SBARINFO.
The Strife status bar which was still native code had it differently and that was used as the initial guideline.
2017-03-27 09:52:30 +02:00
Christoph Oelckers a112b29c43 - implemented the inventory bar. This object is a bit special because it requires a lot of parameters, most of which are easily set to defaults. To make handling easier, most are passed through a container object which does some processing up front.
- finished work on the Doom status bar. I also took the opportunity to fix the layout of the inventory bar which is a bit broken in SBARINFO.
- tuned the selection rules for deciding what creates the status bar, so that the most recent definition that can be found is chosen.
2017-03-27 01:02:10 +02:00
Christoph Oelckers e791c957d9 - implemented the regular Doom status bar.
The DOOM status bar and HUD are complete, except the inventory bar.
2017-03-26 22:04:58 +02:00
Christoph Oelckers 08b3c38304 - simplified the parameters of the HUD draw functions by moving all booleans into one flags word and ordering them so that the less likely ones to be used can be made optional.
- got rid of the image list in the Doom status bar. The cost of the texture lookup is mostly irrelevant here so clearer and shorter code is preferrable.
- moved the box fitting code from DrawTexture into the native function to have all coordinate calculations in one place which is necessary to implement proper alignment default handling. Without higher level functions altering positioning the default can be set to automatic alignment determination, i.e. the value's sign decides where something is placed. Of course for special cases this can be overridden.
- use ANIMDEFS to animate the inventory arrow,
2017-03-26 18:41:24 +02:00
Christoph Oelckers 1c71d038dd - Doom keybar is working.
I did not implement an equivalent to SBARINFO's DrawKeyBar. This is too limiting because it needs to consider any possibility. It really is easier to let a mod implement this itself and custom adjust it to its needs.

- fixed some stuff, in particular use DrawInventoryIcon to get smarter icon lookup.
2017-03-25 23:43:19 +01:00
Christoph Oelckers 488fface50 - started port of Doom status bar to ZScript.
Fullscreen HUD done with the exception of key and inventory bar. I also used the opportunity to make it a bit more resistant against badly designed inventory icons.
2017-03-25 21:40:17 +01:00
Christoph Oelckers 3e67a8bafa - let hud_scale act like an override to uiscale, just like con_scale does.
- better handling of ForceScale for the fullscreen HUD that doesn't mess around with CVARs.
- moved the mug shot into the status bar, because this is global state that needs to be shared between different pieces of code which want to display a mug shot.
- SBARINFO should work off the current status bar settings instead of the ones stored in its script object
2017-03-25 18:32:47 +01:00
Christoph Oelckers bdb9275f8c - made the mugshot accessible to ZScript.
Note that there is no direct access, all this exposes is a single function to get the current face's texture which then can be drawn using the existing functions.
2017-03-25 01:22:42 +01:00
Christoph Oelckers 2d17594f6f - converted the Strife status bar to use the new HUD specific draw functions so that it also can benefit from coming changes.
Note that the pop screens are special because they are not subject to scaling - they will always be drawn with the current resolutions clean scale. As a result they cannot use the HUD drawers but instead continue to use the low level draw functions directly.
2017-03-25 00:35:19 +01:00
Christoph Oelckers b17b8d32ad completely redid the active powerup drawer for the HUD
- replaced Inventory.DrawPowerup with a GetPowerupIcon method so that the calling code can handle the drawing and apply its own rules. This was a major design flaw of allowing the inventory items to handle the drawing themselves, because they were unable to adjust to different HUD frontends. Note that any mod that overrides DrawPowerup will not draw any icon that expects to be handled that way!
- the alternative HUD now has its own, separate drawer that obeys the AltHUD's rules, and not the ones of the normal fullscreen HUD.
- the standard drawer has been scriptified as a virtual function.
- Both drawers now handle positioning of the icon inside its assigned box themselves instead of trusting the powerup item to do it correctly.
- DTA_HUDRules and Screen.DrawHUDTexture are to be considered deprecated because both do not integrate into the redesigned HUD code.
2017-03-24 22:58:16 +01:00
Christoph Oelckers 6760e01a0d - implemented the status bar's DrawString function and ported the fullscreen HUD part of the Strife status bar to use the new functionality. 2017-03-24 20:09:50 +01:00
Christoph Oelckers b5720ee1e7 - initial work on DrawString method. 2017-03-24 02:38:44 +01:00
Christoph Oelckers 617934e1c2 - added a few exports for game strings which the SBARINFO string drawer can access and which should also be available by ZScript.
- merged BaseStatusBar and CustomStatusBar back together.

Since the low level draw functions are better done in native code for both performance and debuggability the split has become pointless.
2017-03-24 02:12:36 +01:00
Christoph Oelckers a3ee3c287e - major progress on the status bar code: SBARINFO's DrawGraphic has been ported into a generic function of the base statusbar class and put to use for a few items on the Strife status bar.
- decided to ditch the widget system I had started to lay out. As it turns out that would make things far more complicated and slower than they need to be.
2017-03-24 00:47:08 +01:00
Christoph Oelckers 31ea33bfc4 - rewrote the condition nodes from SBARINFO in ZScript. This compiles but hasn't been tested yet. 2017-03-23 00:25:26 +01:00
Christoph Oelckers 3744c2eee7 - this was missing. 2017-03-22 20:33:40 +01:00
Christoph Oelckers f0e4f54c80 - one more bit of scriptification. 2017-03-22 18:38:09 +01:00
Christoph Oelckers 1423d5f42a - scriptified the SBARINFO wrapper.
This serves no purpose in itself but it removes a native side class from the status bar class hierarchy which allows for better editing options later.
2017-03-22 17:29:13 +01:00
Christoph Oelckers 4c51a4fc59 - reimplemented the health bar for Strife's status bar. 2017-03-22 14:59:12 +01:00
Christoph Oelckers 9bffe4ee50 - scriptified the main statusbar interface and the Strife status bar.
Note that the Strife status bar does not draw the health bars yet. I tried to replace the hacky custom texture with a single fill operation but had to find out that all the coordinate mangling for the status bar is being done deep in the video code. This needs to be fixed before this can be made to work.

Currently this is not usable in mods because they cannot initialize custom status bars yet.
2017-03-22 00:32:52 +01:00
Christoph Oelckers fb48a1b776 - resotred proper time calculations for status screen. 2017-03-20 19:04:17 +01:00
Christoph Oelckers 0cfdd699ad - exported the base thinker class for sector lighting effects to ZScript. 2017-03-19 13:15:38 +01:00
Christoph Oelckers ac95cba848 - fixed generic class type properties to handle "" and "none" as 'no class'. 2017-03-19 12:02:17 +01:00
Christoph Oelckers 2c789a2d75 - looks like the last commit missed a few files. 2017-03-19 11:35:24 +01:00
Christoph Oelckers 845c43876c - moved all trivial actor properties into the scripts as 'property' declarations. 2017-03-19 11:30:28 +01:00
Christoph Oelckers 144885665f - this feature is past version 2.4. 2017-03-19 00:52:42 +01:00
Christoph Oelckers 622b4a6457 - switched over to the scripted intermission screens. 2017-03-18 21:19:32 +01:00
Christoph Oelckers a2f2be17ef - status screen fully scriptified but not active yet. 2017-03-18 19:35:26 +01:00
Christoph Oelckers 745b96beec - made the status screen a class and scriptified a few more functions. 2017-03-18 15:45:36 +01:00
Christoph Oelckers b416322032 - converted FInterBackground into a class so that the scripts can use it.
- fixed some issues with default value matching in savegames.
2017-03-18 13:25:22 +01:00
Christoph Oelckers 1e9ef2b1df - started scriptifying the level intermission screen. This compiles but is not active yet.
- allow treatment as one-character string constants as character constants. This became necessary because name constants already use single quotes and are much harder to repurpose due to a higher degree of ambiguity.
- fixed: protected methods in structs were not usable.
2017-03-18 12:18:15 +01:00
Christoph Oelckers 245a9ef80c - fixed MenuItemBase.OnMenuCreated was not declared virtual. 2017-03-16 21:34:03 +01:00
Christoph Oelckers 005e6871f9 - increased the snd_channels default and minimum.
The values were still 8 and 32 respectively which applied to hardware from last decade, but for modern mods these are simply too low. New values are 64 as minimum and 128 as default.

- added script access to a sector's colormap and specialcolors fields. (Writing only through dedicated functions because these fields are render state which may need to trigger some form of refresh if the renderer changes.)
2017-03-16 10:38:56 +01:00
Christoph Oelckers d0c77d7264 - added a GetRenderStyle function to Actor, so that the internal render style can be retrieved in a format suitable for scripting. 2017-03-15 10:36:41 +01:00
Christoph Oelckers 64bdc8c495 - fixed some incomplete checks for static arrays.
- made AActor::OkaytoSwitchTarget scripted virtual.
2017-03-15 01:39:59 +01:00
Christoph Oelckers 44a087554f - moved the OpenGL fog properties to FLevelLocals to simplify their handling.
- added access to the glow properties for ZSCript and ACS.
2017-03-14 13:54:24 +01:00
Christoph Oelckers f70d0a6ced - added a setinv cheat CCMD. 2017-03-14 11:44:21 +01:00
Christoph Oelckers 6db355a947 - added a callback to menu items for when a new menu gets created.
- added a StartSlideshow ACS and ZScript command and extended the functionality to specify the slideshow's name when starting it.

This is for triggering any kind of intermission definition in the middle of a level - keep in mind that this may not be set up to loop!
2017-03-14 10:41:13 +01:00
Christoph Oelckers e7a677ef61 - fixed bad menu size calculation, this was particularly visible in Hexen's skill menu. 2017-03-13 23:02:59 +01:00
Christoph Oelckers cd392e50e9 - added a dummy struct named '_' to define global variables. This can only be used internally.
This method was chosen because it avoids adding variable declarations to the global namespace which would have required a lot more work while polluting the grammar.
This way the global variables can be handled by a small bit of special coding in the struct generator.
2017-03-13 14:42:14 +01:00
Christoph Oelckers 5fd86cf98c - added some syntactic help to the ZScript parser to allow defining the arrays with native structs on the script side instead of having to define them internally. 2017-03-13 12:51:09 +01:00
Christoph Oelckers 2533ff3ffc - fixed: ListMenuItemStaticText used the wrong default color. 2017-03-13 09:30:33 +01:00
Christoph Oelckers 60fd79ce23 - some menu reorganization:
* dynamic lights also work in the true color software renderer and have been moved out of the OpenGL menu.
* created a separate software renderer menu and moved all relevant options there.
* delete non-applicable options when running in legacy mode.
* moved the OpenGL preferences menu one level up to eliminate a two-entry GL top level menu.
2017-03-13 01:17:46 +01:00
Christoph Oelckers ef3421eee5 - moved dynamic lights out of the GL code into the common game code.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
Christoph Oelckers cc1241a4b8 Merge branch 'make-qzdoom-gzdoom-again' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/win32/win32gliface.h
#	src/win32/win32iface.h

This compiles but no guarantees otherwise.
2017-03-09 19:09:13 +01:00
Christoph Oelckers f8391ce97e - there was something missing... 2017-03-09 17:44:00 +01:00
Christoph Oelckers 3113faedcf - fixed bad syntax. 2017-03-09 17:42:25 +01:00
Christoph Oelckers 20c56f6dda - added SectorTagIterator and LineIDIterator script classes. 2017-03-09 17:05:51 +01:00
Christoph Oelckers 420f71fc4f - added a BlockLinesIterator script class. 2017-03-09 16:45:48 +01:00
ZZYZX 01561eb768 Added: UiTick in EventHandlers, a callback that executes at 35fps on every handler in ui scope;
Removed: RenderOverlay, RenderFrame (commented out), Create, CreateOnce, Register, Unregister (completely)
2017-03-09 15:38:49 +01:00
Rachael Alexanderson 527a172fcd Merge https://github.com/coelckers/gzdoom 2017-03-07 22:03:56 -05:00
Christoph Oelckers 2f29b075b2 - made CountInv clearscope and const. 2017-03-07 22:55:15 +01:00
Christoph Oelckers 7ce8009576 - made several read-only actor functions accessible to UI code. 2017-03-07 18:59:48 +01:00
Rachael Alexanderson bd50b5d05a Merge https://github.com/coelckers/gzdoom 2017-03-06 19:40:55 -05:00
Christoph Oelckers 9d6b5f7015 - switched the menu code over to the data types of the event system.
Note that this will require adjustment of all menu code which overrides the Responder method!
2017-03-06 22:27:51 +01:00
Rachael Alexanderson 134c2f3f38 Merge https://github.com/coelckers/gzdoom 2017-03-06 12:36:34 -05:00
ZZYZX 21ecd714ec Added a way to tell apart console-executed events from code-executed SendNetworkEvent 2017-03-06 11:23:36 +01:00
ZZYZX f28bdf12a0 StaticEventHandler.InputProcess should not alter playsim directly 2017-03-06 09:34:53 +01:00
Rachael Alexanderson 7ef8ed5867 Merge https://github.com/coelckers/gzdoom 2017-03-05 18:40:44 -05:00
Christoph Oelckers 2b5fea4ea8 - added version checks for function calls and virtual overrides.
- restricted the UI functions in inventory.
2017-03-05 21:44:10 +01:00
Christoph Oelckers 7df698dad8 - implemented the parser basics of a ZScript versioning system.
Note that this completely disables the newly added keywords 'play' and 'ui' for unversioned code to allow using them as identifiers as I have found at least one mod that uses a variable named 'play' that would have been rendered broken otherwise.
This also disables many ZScript only keywords for other parsing jobs.
2017-03-05 14:13:00 +01:00
ZZYZX 9d4179ca06 Protected on methods of StaticEventHandler is completely useless 2017-03-05 09:49:31 +01:00
ZZYZX a43bc279a3 Gave static methods in EventHandler/StaticEventHandler clearscope 2017-03-05 09:49:31 +01:00
Rachael Alexanderson b8b5360de1 Merge https://github.com/coelckers/gzdoom 2017-03-04 07:28:02 -05:00
Christoph Oelckers 7dbc6939c4 - declared most native getters in Actor as const.
- made the self pointer of const functions readonly.

This seems to work fine. Both calling a non-const function and trying to assign a value to a member fail with an error message.
2017-03-04 12:43:07 +01:00
Christoph Oelckers 4c5794b6d5 - made GetObituary non-constant.
This gets only called from within the play code and making it const would block potential use cases that involve changing some internal variables like counters.
2017-03-04 12:11:56 +01:00
Christoph Oelckers b3ba5bfe2c - allow 'const' on class functions. This is preferable to 'clearscope' so that the UI code can call getter functions without having to declare things as 'clearscope'.
Clearscope is a dangerous context and should be limited to the minimum extent possible and preferably be blocked in user code.
This may still need some work on const functions but better have it in now.
2017-03-04 12:07:45 +01:00
Christoph Oelckers 5551f3a8c5 - declared the sectorplanes in Sector as read only and marked all relevant functions in the planes themselves const.
This is to block modification of the planes directly. For future-proofness with renderer changes everything that alters these values should go through he function interface.
2017-03-04 11:48:36 +01:00
ZZYZX 3338fb7f33 Added SendNetworkEvent static method to EventHandler; Fixed qualified static method call from own class (previously was 'shadowed' by qualified virtual method call) 2017-03-04 00:57:41 +02:00
ZZYZX c9a994a885 Fixed: clearscope should also clear the inherited scope (through struct member access chain); Fixed: struct member access chain should ONLY work for structs (forgot that FxClassMember inherits FxStructMember) 2017-03-04 00:04:19 +02:00
ZZYZX 723f9770a4 Merge remote-tracking branch 'gz/master' into gz_master2 2017-03-03 23:33:02 +02:00
ZZYZX 1433b78301 Assigned all map data to play 2017-03-03 23:26:06 +02:00
ZZYZX a924564bf3 Implemented hard separation between playsim ConsoleEvent and networked ConsoleEvent (ConsoleProcess, NetworkProcess) 2017-03-03 23:21:12 +02:00
ZZYZX 43d3e3e5c3 Assigned barrier sides to Event structures, added clearscope to ConsoleProcess because it handles both sides 2017-03-03 23:17:21 +02:00
ZZYZX f4a546aee6 Moved menus to ui side, moved AlterWeaponSprite to ui side, moved StaticEventHandler to play side (except ui virtuals) 2017-03-03 23:15:18 +02:00
Rachael Alexanderson b3a69e1df8 Merge https://github.com/coelckers/gzdoom 2017-03-02 18:13:33 -05:00
Christoph Oelckers e64f1e645d - exported constants for SetGlobalFogParameter to ZScript. 2017-03-02 13:14:55 +01:00
Christoph Oelckers 62dd810a4e - fixed: A_ProgrammerMelee damaged the caller, not the target. 2017-03-02 13:14:54 +01:00
Christoph Oelckers cfda1a49d4 - forgot to save the last fix for the previous commit.
- let the script compiler also output the size of the allocated data for the script functions in addition to the actual code size.
2017-03-02 11:58:30 +01:00
Christoph Oelckers b194ba205a - backported Zandronum's MaxHealth base class for the MaxHealthBonus item. 2017-03-02 11:39:52 +01:00
Christoph Oelckers 00dc59ebdc - separated the blood translation index from the BloodColor variable to allow more than 255 blood translations and as a prerequisite for allowing to change the blood color. 2017-03-02 10:26:23 +01:00
Rachael Alexanderson d84ba4b953 Merge https://github.com/coelckers/gzdoom 2017-03-02 04:22:32 -05:00
Christoph Oelckers 0de79042d4 - fixed: 'Bloodtype' cannot use the generic property definition because it needs special handling for optional arguments. This reinstates the native handler. 2017-03-01 20:20:46 +01:00
Rachael Alexanderson d6169ea75e Merge https://github.com/coelckers/gzdoom 2017-02-28 18:55:17 -05:00
Christoph Oelckers cb295e0441 - added parameter to PLayerPawn::GetMaxHealth to return the real maximum health, including stamina upgrades. 2017-03-01 00:04:17 +01:00
Christoph Oelckers 12915b5f6e - use an inventory flag to decide what items are slipped by DF_NO_HEALTH and DF_NO_ARMOR. With all the changes over the last 10 years this had become too spotty.
- use an enum type for ItemFlags, just like it was done for actor flags. Since the flag word is almost full it may soon be necessary to add a second one and then this kind of security check may become necessary.
2017-02-28 21:45:47 +01:00
Christoph Oelckers 314a642527 Merge branch 'meta' 2017-02-28 14:47:00 +01:00
nashmuhandes bb1709228c Changed FOV from a CCMD to a CVar, allowing players' FOV settings to persist. Also exported SetFOV to PlayerInfo for ZScript. 2017-02-28 14:46:30 +01:00
Christoph Oelckers bc0ffc4185 - removed access to the PlayerPawn's DisplayName variable. This one has implicit semantics, so wherever a displayable name is needed GetPrintableDisplayName should be called instead to allow later refactoring of the internal handling. 2017-02-28 14:33:46 +01:00
Christoph Oelckers fc125f7eaf - reworked the obituary system to use scripted virtual overrides. Let's hope this solves the problems with the original code, now that any actor needing special treatment can override it. 2017-02-28 14:30:14 +01:00
Christoph Oelckers 851984efe0 - made GetDeathHeight a virtual scripted function.
- made GetGibHealth a virtual scripted function.
- removed a few more native meta properties.
2017-02-28 13:40:46 +01:00
Christoph Oelckers d5250d6b9f - made WoundHealth modifiable to allow more control over the wound state. 2017-02-28 12:56:35 +01:00
Christoph Oelckers 2a4a5e7a70 - refactored a few more native meta properties. 2017-02-28 12:47:44 +01:00
Christoph Oelckers 1311f08f47 - scriptified Actor.GetBloodType as a virtual function to allow mods more flexibility here.
- made CameraHeight a modifiable actor property - it was readonly before.
- allow accessing the type constants from ZScript, this required quite a bit of explicit coding because the type system has no capabilities to search for basic types by name.
2017-02-28 12:11:25 +01:00
Christoph Oelckers b6a1fe7fc6 - scriptified the basic attack functions, its properties and the explosion properties to test the new metadata system. 2017-02-28 10:51:32 +01:00
Christoph Oelckers a93a7e1cac - handle player meta properties.
Only two really make sense, the rest is never used from scripts and may just remain where it was.
2017-02-28 01:23:12 +01:00
Christoph Oelckers 78a66e001a - properly handle all meta properties for inventory items. 2017-02-28 00:45:16 +01:00
Rachael Alexanderson 2a847ca570 Merge https://github.com/coelckers/gzdoom 2017-02-27 01:06:00 -05:00
Christoph Oelckers 51b5b327ef - fixed constant names. 2017-02-26 21:38:08 +01:00
Christoph Oelckers f6dd99d3aa - added A_Morph function. 2017-02-26 21:20:47 +01:00
Christoph Oelckers 24a505ed36 - fixed: The internal and scripted morph flags did not match. 2017-02-26 21:10:53 +01:00
Rachael Alexanderson 7a5df2bc28 Merge commit 'b0eb19b' 2017-02-26 13:41:02 -05:00
Christoph Oelckers fb3d4bd42a - added A_SetMugshotState. 2017-02-26 18:46:06 +01:00
Christoph Oelckers 5fe04dfd20 - added A_SprayDecal function. 2017-02-26 18:37:12 +01:00
Christoph Oelckers c4b546404a - added a 'nocheck' parameter to A_Raise* and Thing_Raise. 2017-02-26 17:50:48 +01:00
Christoph Oelckers e6b31dde27 - added some flexibility to some Skulltag powerups.
- handle these powerups by actual item checks instead of cheat flags. (The same should also be done for the Frightener and Buddha but those are a bit more complex because they are also real cheats.)
2017-02-26 16:23:22 +01:00
Christoph Oelckers c7668952d9 - set sensible defaults for PowerReflection. 2017-02-26 15:50:03 +01:00
Christoph Oelckers 8b2a5c75a1 - added an old submission for PowerReflection, although it had to be seriously reworked and improved. 2017-02-26 15:47:37 +01:00
Christoph Oelckers 6210a67f85 - fixed messagebox correctly. 2017-02-26 12:50:11 +01:00
Rachael Alexanderson 404b326812 Merge https://github.com/coelckers/gzdoom 2017-02-25 18:32:06 -05:00
Christoph Oelckers 35552ce0cb - added a Death.Sky state for missiles that gets used when they hit a sky plane.
- fixed: The Alt HUD did not draw the crosshair in HUD off mode.
2017-02-25 20:45:28 +01:00
Christoph Oelckers 5ea8ad54a4 - added tags to all ammo types. 2017-02-25 19:56:22 +01:00
Christoph Oelckers b2a1e03d7e - fprgot to commit the script-side definition of STAT_STATIC. 2017-02-25 17:14:03 +01:00
Rachael Alexanderson 5c5b6a55d5 Merge https://github.com/coelckers/gzdoom 2017-02-24 13:24:44 -05:00
alexey.lysiuk 202c192e11 Added default value for amount argument of A_DropInventory()
https://mantis.zdoom.org/view.php?id=330
2017-02-24 10:15:46 +02:00
Rachael Alexanderson e35be9c0a3 Merge https://github.com/coelckers/gzdoom 2017-02-23 22:07:40 -05:00
Christoph Oelckers 58be506a73 - made intermission screen more scripting friendly. 2017-02-24 00:28:33 +01:00
Rachael Alexanderson 80d3fd58ff Merge https://github.com/coelckers/gzdoom 2017-02-23 15:00:09 -05:00
Christoph Oelckers 73cceea994 - also added the 'amount' parameter to DropInventroy and A_DropInventory script functions. 2017-02-23 20:55:12 +01:00
Christoph Oelckers e2d5a708f8 - added an amount parameter to the 'drop' CCMD. 2017-02-23 20:18:02 +01:00
Christoph Oelckers fc101049c6 - exported gamestate variable and forced it to 32 bit internally.
- forced gameaction_t to 32 bit to avoid problems with undefined size issues.
2017-02-23 19:29:43 +01:00
Rachael Alexanderson 271c75ab9b Merge https://github.com/coelckers/gzdoom 2017-02-22 22:39:34 -05:00
Christoph Oelckers 47ff6ec33f - converted the intermission stat screen into a class so that its contents can be better exposed to ZScript. 2017-02-22 23:52:25 +01:00
Rachael Alexanderson 7825c7b244 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2017-02-19 17:42:00 -05:00
Rachael Alexanderson 84ca9fd63c Merge remote-tracking branch 'origin/versionstr-change' into versionstr-change 2017-02-19 17:40:44 -05:00
Christoph Oelckers 26144340b8 - fixed: Hexen's poison cloud needs to call P_DamageMobj, even with a damage value of 0. Added a new flag to handle this case because normally this is not desirable. 2017-02-19 23:20:09 +01:00
Christoph Oelckers 165a980065 - fixed: The base MouseEvent method must return true, not false.
- fixed: It is a bad idea to start a save within an MKEY_Input event. At this time the window chain is not stable because the text input screen is in the middle of being taken down, so the save should be deferred until the next Ticker call of the SaveMenu.
2017-02-19 22:08:22 +01:00
Rachael Alexanderson 11d6f46e2d Merge https://github.com/coelckers/gzdoom 2017-02-19 13:05:32 -05:00
Christoph Oelckers 65f2433ac7 - fixed: The text enter screen must be activated if it should be displayed. 2017-02-19 18:27:29 +01:00
Christoph Oelckers fa0be4d4a9 - fixed keycodes for confirmation menu. 2017-02-19 17:30:02 +01:00
Christoph Oelckers f3b6343e53 - use floats for menu item coordinates. This only has an effect in the ListMenu because the OptionMenu uses fixed offsets which work differently. 2017-02-19 17:24:30 +01:00
Christoph Oelckers fb52b034b0 - added a GenericMenu class, so that all menus can be given a virtual Init method.
Doing this to Menu itself would not work because the different menus require different parameters.
This also means that all menus that are routed through menu items must inherit from either ListMenu, OptionMenu or GenericMenu.
All other types can only be used internally.

This should complete the menu scriptification.
2017-02-19 15:35:28 +01:00
Christoph Oelckers 9089beb110 - scriptified most of the remaining parts of DMenu. Only the engine interface remains native now. 2017-02-19 15:23:33 +01:00
Christoph Oelckers e05242e44d - scriptified the remaining parts of the conversationmenu.
- do not resolve the backdrop texture to a texture ID at load time. This will allow custom menu classes to use this info differently.
- added a new ZSDF userstring property to dialog pages to give mods more means for customization.
- allow overriding the conversation menu class both globally through MAPINFO and per conversation in ZSDF.
2017-02-19 14:21:49 +01:00
Christoph Oelckers d85b9cdd71 - scriptified the input methods of DConversationMenu.
- fixed handling of DimAllowed.
2017-02-19 13:07:49 +01:00
Christoph Oelckers 3c8a5fdbe7 - scriptified the drawer functions of the conversation menu. 2017-02-19 12:28:05 +01:00
Rachael Alexanderson 75b81381f6 Merge https://github.com/coelckers/gzdoom 2017-02-19 05:26:51 -05:00
Christoph Oelckers 8db1646056 - fixed: Strife dialogues remembered the last menu's selection index, but with the possibility of changing sets of replies between calls of the same dialogue it should be the reply's index in the list of replies that gets remembered. 2017-02-19 10:34:47 +01:00
Magnus Norddahl 42a7dbe33a Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/v_video.cpp
2017-02-19 03:49:13 +01:00
Christoph Oelckers 2440951811 -scriptified the ReadThis screen. 2017-02-19 00:08:30 +01:00
Christoph Oelckers e46571c192 - DMessageBoxMenu is fully scriptified. 2017-02-18 23:39:02 +01:00
Christoph Oelckers 62b594a499 - DMessageBoxMenu::Drawer scriptified. 2017-02-18 23:18:55 +01:00
Christoph Oelckers aabcc1f92e - scriptified the input functions of DMessageBoxMenu. 2017-02-18 23:05:01 +01:00
Christoph Oelckers de1e7661eb - removed all native remnants of TextEnterMenu. 2017-02-18 21:25:19 +01:00
Christoph Oelckers f5a0f6b3bf - almost done with TextEnterMenu. 2017-02-18 21:18:23 +01:00
Christoph Oelckers 0c41a9dee7 - scriptified DTextEnterMenu::Drawer. 2017-02-18 20:12:06 +01:00
Christoph Oelckers 1b4c9e13b8 - cleaned out some cruft from the menu code, now that ListMenu is fully scripted. 2017-02-18 19:11:53 +01:00
Christoph Oelckers b7a5437af6 - scriptified parts of ListMenu. 2017-02-18 18:35:44 +01:00
Christoph Oelckers 6a65f02257 - completed scriptification of LoadSaveMenu. 2017-02-18 18:01:24 +01:00
Christoph Oelckers e46d378fb2 - sciptified DLoadSaveMenu::Drawer. 2017-02-18 17:51:40 +01:00
Christoph Oelckers 4a6d0f1fa5 - scriptified DLoadSaveMenu::MenuEvent. 2017-02-18 17:35:01 +01:00
Christoph Oelckers ee6a90deec - scriptified DLoadSaveMenu::Responder.
- scriptified DSaveMenu.
2017-02-18 16:40:32 +01:00
Christoph Oelckers 872969eb14 - scriptified the LoadMenu class and exported the entire interface to handle the LoadSaveMenu. 2017-02-18 14:08:16 +01:00
Christoph Oelckers 128dfdeee6 - made some of the load/save menu's data a bit more scripting friendly, this mostly means removal of static string buffers. 2017-02-18 12:36:31 +01:00
ZZYZX fb9b8c8870 Re-enabled clearscope for methods; made isBlinking() clearscope 2017-02-18 07:51:41 +02:00
ZZYZX dbc595f886 Marked DrawPowerup as ui, still compiles and somewhat works :D 2017-02-18 07:30:20 +02:00
Rachael Alexanderson 65122ed19e Merge https://github.com/coelckers/gzdoom 2017-02-18 00:18:45 -05:00
ZZYZX afc9050a43 Marked Thinker play. Marked OnDestroy and Destroy virtualscope. It compiles :D 2017-02-18 06:56:00 +02:00
ZZYZX b5ab011bb9 Static virtualscope checking. This is possible, because virtualscope can't produce false positives (data readable for everyone), only false negatives (which are handled at runtime later) 2017-02-18 04:07:12 +02:00
Christoph Oelckers 5f1241a55c - scriptified the rest of the player menu. This compiles and runs but doesn't work yet, it will be fixed in the next commit. 2017-02-18 01:20:07 +01:00
Christoph Oelckers 49a07180c0 - scriptified ClassChanged. 2017-02-17 23:56:22 +01:00
Christoph Oelckers 50d2846e40 - scriptified UpdateColorsets. 2017-02-17 23:16:07 +01:00
Christoph Oelckers 97eed1e6df - scriptified UpdateSkins. 2017-02-17 22:12:56 +01:00
Christoph Oelckers 498da825a5 - made the Skins array scripting friendly and exported it. 2017-02-17 21:51:23 +01:00
Christoph Oelckers 6a2525b737 - scriptified PickPlayerClass. 2017-02-17 20:58:11 +01:00
Christoph Oelckers b375657509 - scriptified DPlayerMenu::SkinChanged. 2017-02-17 20:49:04 +01:00
Christoph Oelckers 51493cde8c - scriptified DPlayerMenu::MenuEvent. 2017-02-17 20:02:26 +01:00
ZZYZX 338e676e73 Allow calling const methods on readonly structs 2017-02-17 19:25:29 +02:00
Christoph Oelckers f4e9cd0009 - scriptified DPlayerMenu::MouseEvent. 2017-02-17 18:21:59 +01:00
Christoph Oelckers 416911587e - scriptified PlayerMenu.Drawer 2017-02-17 16:53:36 +01:00
Christoph Oelckers 74c4748593 - fixed the message switch for the controls menu. 2017-02-17 12:10:10 +01:00
Rachael Alexanderson ef22d10756 Merge https://github.com/coelckers/gzdoom 2017-02-15 20:08:21 -05:00
Christoph Oelckers 4df2a221a8 - fixed: The special called by the InterpolationSpecial actor must have no activator.
This required splitting A_CallSpecial into a direct wrapper around P_ExecuteSpecial and implementing itself as a script function calling ExecuteSpecial so that this special case can use a version of the function that can be used without an activator.
2017-02-15 22:49:13 +01:00
Christoph Oelckers b3d7980b90 - fixed: PowerProtection clamped its damage minimum to 1, but should do it to 0. 2017-02-15 21:20:11 +01:00
Rachael Alexanderson 5dad292c56 Merge remote-tracking branch 'remotes/gzdoom/master' 2017-02-15 05:43:15 -05:00
Rachael Alexanderson 2b8db72cef Merge commit '2234d36c7ac531fd802803216f747f82b58be8c2'
# Conflicts:
#	src/r_main.cpp
#	src/r_plane.cpp
#	src/r_things.cpp
2017-02-15 05:42:57 -05:00
Rachael Alexanderson 959ac8c65b Merge commit '9caf5c641b374848c065059b5152339806fa7734' 2017-02-15 05:28:38 -05:00
Christoph Oelckers 6fef653aa1 - exported GetUDMF methods to scripting. 2017-02-15 01:03:47 +01:00
Christoph Oelckers 8d7a64bd17 - added a virtual 'used' method that gets called when the player presses use on an actor. This method will only be called if the actor does not have the USESPECIAL flag - that one will be handled as before. 2017-02-15 00:43:30 +01:00
Christoph Oelckers c5204f34ca - fixed: The code to play the mage lightning's attack sound was converted wrong, because it used the same structure as looping sounds normally so, but doesn't actually loop. 2017-02-14 22:51:53 +01:00
Christoph Oelckers 3170591e32 - restated some weird number manipulation in SBARINFO for powerup time. This appears to be needed to distinguish between non-expiring items and non-present items. 2017-02-14 22:04:52 +01:00
Christoph Oelckers 6e2b0bc961 - renamed the internal InpuEvent to deconflict from the version in the event system. 2017-02-14 19:32:44 +01:00
Christoph Oelckers 2234d36c7a Merge branch 'thereisnospoon' of https://github.com/jewalky/gzdoom
# Conflicts:
#	src/dobject.h
2017-02-14 19:10:02 +01:00
Christoph Oelckers 9caf5c641b - don't let menu number widgets not lock up the menu if their associated CVAR does not exist. 2017-02-14 19:06:45 +01:00
Christoph Oelckers 7b1645d239 - fixed the item check in OptionMenuItemCommand.
This was calling the wrong GetItem function.
2017-02-14 16:50:10 +01:00
Rachael Alexanderson 2a71ec89de Merge https://github.com/coelckers/gzdoom 2017-02-13 17:02:56 -05:00
Christoph Oelckers ad178e16c5 - working again. 2017-02-13 20:03:29 +01:00
Christoph Oelckers 6525e04118 - added restrictions to CVAR and CCMD access functions for the menus. CVAR changes are only allowed when the menu is open or for mod-CVARs. The CCMD execution function is now private to the control requiring it and heavily guarded against improper access from the outside so that abuse is mostly impossible.
This also means that the remaining scriptification of the menu is on hold. The player menu would require even more access to critical game data, which is a no-go, and the other remaining menus offer little benefit from getting scriptified.
2017-02-13 19:18:45 +01:00
Christoph Oelckers c403fc5635 - renamed a file. 2017-02-13 18:30:03 +01:00
Christoph Oelckers 7877bcbdcb - exported more parts of the joystick menus and also exported all strings for them to the string table.
- exported the skeleton definition for list menus.
2017-02-13 17:45:03 +01:00
Rachael Alexanderson 8c176575c8 Merge https://github.com/coelckers/gzdoom 2017-02-12 21:39:20 -05:00
Christoph Oelckers 46c0d27fe7 - scriptified the entire OptionMenu class and all still existing native subclasses. 2017-02-13 00:08:20 +01:00
Christoph Oelckers 12db190f41 - scriptified the CVar printers for the gameplay and compatibility menus. 2017-02-12 23:17:05 +01:00
Christoph Oelckers 2b977f70e6 - scriptified the video mode menu (only the part that extends the actual menu class, the entire thing is basically non-modifiable but this code would otherwise stand in the way of properly handling the rest of the menus.) 2017-02-12 23:05:39 +01:00
Christoph Oelckers 9ece757cb3 - OptionMenu.Init must be declared 'virtual' 2017-02-12 21:56:01 +01:00
Christoph Oelckers b6ad14a614 - made adjustments to text input menu to work with scripts. 2017-02-12 21:45:37 +01:00
Christoph Oelckers f0e925c5a7 - scripted color picker fully working. 2017-02-12 20:20:47 +01:00
Christoph Oelckers dbf3530696 - the keybinding control works again, this time fully scripted. 2017-02-12 18:38:23 +01:00
Christoph Oelckers 2e9c1ec3f3 - fixed translation setup for player backdrop.
- fixed return value of GetAction method of menu controls.
2017-02-12 16:48:29 +01:00
Christoph Oelckers 03283de4e8 - fixed issues with option menu items.
- fixed the octal parser in strbin.
- remove 'new' token because it gets in the way.
2017-02-12 16:02:55 +01:00
Christoph Oelckers 4562695854 - fixed stringtable access in menus. 2017-02-12 14:28:38 +01:00
Christoph Oelckers bb6def820f - everything compiles and mostly works again. 2017-02-12 14:04:48 +01:00
Christoph Oelckers ee1217c8c7 - everything compiles again, now to make it work again with all menu widgets 100% scripted. 2017-02-12 01:18:49 +01:00
Christoph Oelckers 2a5b26c27c - removed native option menu controls. Note that this commit will not compile! 2017-02-11 21:28:48 +01:00
Christoph Oelckers 947b625c50 - all menu items scriptified, but not yet active. 2017-02-11 16:11:48 +01:00
Rachael Alexanderson a52f79055d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/menu/playerdisplay.cpp
2017-02-11 05:05:24 -05:00
Christoph Oelckers f91d91d6e8 - all optionmenu items scriptified, but not integrated yet. 2017-02-11 00:36:53 +01:00
Christoph Oelckers 8c780ab7ff - exported the drawer function of the colorpicker menu. 2017-02-10 13:21:35 +01:00
Christoph Oelckers be9b2b38fc - ColorpickerMenu.MouseEvent exported. 2017-02-10 11:44:46 +01:00
Rachael Alexanderson ad1092c670 Merge https://github.com/coelckers/gzdoom 2017-02-10 00:16:25 -05:00
Christoph Oelckers 07ba75762b - the first menu function has been scriptified. 2017-02-10 00:25:50 +01:00
Christoph Oelckers 7efa9cd70d - made the menu descriptors garbage collectable and started exporting some fields as preparation for script work on the menu. 2017-02-09 20:18:53 +01:00
Rachael Alexanderson 6ed46921c8 Merge https://github.com/coelckers/gzdoom 2017-02-09 11:21:01 -05:00
Christoph Oelckers 4e1300ecbe - added a script export for ACS's ReplaceTextures function. 2017-02-09 12:02:07 +01:00
Rachael Alexanderson 5948c7b0da Merge https://github.com/coelckers/gzdoom 2017-02-08 18:42:24 -05:00
Christoph Oelckers 8277299135 - Turned DropItem into a plain struct again like it was before the scripting branch got merged.
Making this an object had little to no advantage, except being able to remove the deleter code. Now, with some of the class data already being allocated in a memory arena so that freeing it is easier, this can also be used for the drop item lists which makes it unnecessary to subject them to the GC. This also merges the memory arenas for VM functions and flat pointers because both get deleted at the same time so they can share the same one.
2017-02-08 20:37:22 +01:00
Major Cooke dd102caf13 - Fixed: SetCamera didn't have the 'action' identifier, nor did it use the actual 'cam' actor provided, rendering it nonfunctional. 2017-02-08 18:17:09 +01:00
Christoph Oelckers eebe09fb59 - moved the scalar class properties of PClassInventory into AInventory.
What's left is the non-scalars, they will need different treatment to get them out of the way.
2017-02-08 16:57:48 +01:00
Christoph Oelckers 2ca0e34785 - turned many of PClassPlayerPawn's strings into names and moved all scalar properties into APlayerPawn.
The goal is to get rid of PClassPlayerPawn and PClassInventory so that the old assumption that all actor class descriptors have the same size can be restored
This is important to remove some code that seriously blocks optimization of the type table because that can only be done if types do not need to be replaced.
2017-02-08 16:42:13 +01:00
Christoph Oelckers a6785afddb - optimized the FName versions of IsDescendantOf and IsKindOf. These can be done without first looking up the class type itself. 2017-02-08 15:47:22 +01:00
Rachael Alexanderson c76c65d3f7 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_draw.cpp
2017-02-07 17:09:13 -05:00
Christoph Oelckers 7ed554158c - got rid of PClassWeapon.
Still 5 subclasses of PClass left...
2017-02-07 19:02:27 +01:00
Rachael Alexanderson d760b5070a Merge https://github.com/coelckers/gzdoom 2017-02-07 02:23:48 -05:00
Christoph Oelckers dae6230f76 - fixed: Since the FastProjectile does not perform a velocity underflow check it must use an approximate comparison when deciding whether to call the Effect method. 2017-02-07 00:39:46 +01:00
ZZYZX 77546ad5c2 Added non-playsim console-called event 2017-02-06 15:52:20 +02:00
ZZYZX b7e64a2bc5 Merge remote-tracking branch 'gz/master' into thereisnospoon 2017-02-06 14:14:23 +02:00
ZZYZX 124d025131 More string methods 2017-02-06 12:35:21 +01:00