Commit graph

10629 commits

Author SHA1 Message Date
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
c0f588e234 - let M_ClearMenus destroy all open menus so that they can properly deinitialize. 2017-02-19 16:08:10 +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
Christoph Oelckers
c4a90f39af - split up DConversationMenu::Drawer for future flexibility.
- fixed: The in-conversation gold display did not work because it relied on an unused global variable.
2017-02-19 11:49:59 +01:00
Christoph Oelckers
129787546d - transitioned the Conversation menu from FBrokenLines to DBrokenLines so that the internal representation matches scriptable types. 2017-02-19 10:46:53 +01: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
alexey.lysiuk
033792078c Fixed compilation with GCC/Clang
src/menu/messagebox.cpp:70:95: error: no viable conversion from 'hfunc' (aka 'void (*)()') to 'VMValue'
2017-02-19 11:31:58 +02:00
Christoph Oelckers
c0dd37e16e - ncopystring is not needed anymore. 2017-02-19 01:14:31 +01:00
Christoph Oelckers
b1a7941414 - some preparations of the Strife dialogue data to make it usable for ZScript, most importantly this means to replace all const char * with FString. 2017-02-19 01:11:52 +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
6e0e2b2457 - replaced all subclasses of DMessageBoxMenu with a callback option and lambdas to reduce the amount of menu code to port over. Now this is only one class. 2017-02-18 22:07:28 +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
06141338f1 - made DMenu's static variables regular global variables because that class is going to go completely scripted soon. 2017-02-18 19:19:14 +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
e58a03de9b - the savegame manager needs a destructor 2017-02-18 14:18:27 +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
9d51266145 - some more encapsulation of savegame data in the savegame manager, because some of its info is not in a state that can be accessed directly through script code and needs a few helper functions. 2017-02-18 13:05:33 +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
alexey.lysiuk
0ffd475d8c Fixed compilation with GCC/Clang
src/r_data/sprites.cpp:805:79: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2017-02-18 10:34:27 +02:00
Christoph Oelckers
013e52fabd - fixed: newly created list menus did not call their scripted virtual Init method. 2017-02-18 01:31:01 +01: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
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
Christoph Oelckers
18925d07be - fixed a typo. 2017-02-16 23:17:19 +01:00
Christoph Oelckers
b523aa13c8 - fixed crash with bad state labels. 2017-02-16 21:51:32 +01:00
Christoph Oelckers
1d52037779 - skip the Direct3D setup if building with a non-XP toolset on Visual Studio. 2017-02-16 21:01:52 +01:00
Christoph Oelckers
36e5bab657 - removed the fixed search path for FMod on drive E: because this can cause problems with automated builds on unknown systems.
This should never have been set up like this.
2017-02-16 19:45:03 +01:00
Christoph Oelckers
944f2bf266 - fixed armor save percentage values in Dehacked. 2017-02-16 19:29:07 +01:00