Commit Graph

318 Commits

Author SHA1 Message Date
parax0 2d6dfad2d3 Completely overhauled resource loading in preparation for projects 2016-06-29 17:18:31 -06:00
parax0 8293f1d206 Initial implementation of world/area exports, added support for asset lists to specify a path/name for resources 2016-06-05 01:57:31 -06:00
parax0 f15aca3f99 Initial implementation of resource database (mainly creation and read/write), and added resource registration system with a registrant for every format from every game 2016-05-31 00:45:30 -06:00
parax0 5f2064178c Began initial implementation of the game exporter and game project classes 2016-05-22 00:58:52 -06:00
parax0 3009f06d11 Implemented filesystem handling functions in Common 2016-05-18 20:59:01 -06:00
parax0 da5676d25b Enable public release mode for release branch 2016-05-03 14:26:14 -06:00
parax0 b362a23e4b Added button icons to the character editor 2016-05-03 14:23:55 -06:00
parax0 7423cdce42 Fixed edit link line being drawn at the wrong depth 2016-05-03 05:15:47 -06:00
parax0 f64ee6b3b7 A model's surfaces are now depth sorted together (except on world geometry) 2016-05-03 05:05:10 -06:00
parax0 af59009b56 Minor bugfixes in world/character editors 2016-05-03 03:18:42 -06:00
parax0 57451e231d Fixed damageable triggers rendering the wrong side in rotated areas 2016-05-03 03:13:21 -06:00
parax0 ab38205611 Added some application-wide macros, set up various parts of the editor to reference the application name via macro instead of hardcoded to a specific string 2016-05-03 00:42:55 -06:00
parax0 2db740e572 Added a bunch of new options and tools to the character editor 2016-05-02 05:23:16 -06:00
parax0 7880dd34f4 Added keyboard shortcuts for play/prev anim/next anim to character editor 2016-05-02 00:36:11 -06:00
parax0 709087d2fe Added support for bone selection in the character editor 2016-05-01 21:01:15 -06:00
parax0 ed16d05136 Added skeleton hierarchy tree view to the character editor 2016-05-01 20:00:35 -06:00
parax0 ce688fcb8e Applied various fixes to the attachment system, made skeleton rendering more flexible, added the ability for attachments to specify an attach type 2016-05-01 17:32:55 -06:00
parax0 07609cfa14 Made a fix to CQuaternion::Slerp to fix animation jitteriness 2016-05-01 05:02:36 -06:00
parax0 cf84f9909a Added support for attaching assets from properties to locator bones in the World Editor 2016-04-30 06:17:02 -06:00
parax0 2655f9d3fd Read in bone rotation on Echoes CINFs 2016-04-29 23:52:51 -06:00
parax0 18e9eebb8d Fixed crash when loading uncompressed MP2 animations 2016-04-29 23:17:52 -06:00
parax0 3a5b63c484 Fixed incorrect scale decoding on compressed animations 2016-04-29 19:08:32 -06:00
parax0 420f483b56 Cache shader uniform locations instead of looking them up every frame (1-2 fps boost yay?) 2016-04-29 15:59:26 -06:00
parax0 e781908205 Fixed child bones inheriting scale from their parent, fixed null weights on CSkin being incorrect, fixed uncompressed animations being read incorrectly 2016-04-29 15:58:50 -06:00
parax0 82f037c69e Added support for Echoes animation formats 2016-04-28 05:10:49 -06:00
parax0 7f3929d4ca Fixed grid drawing at incorrect depth, fixed MP2 areas not loading correctly with the AnimSet loader changes 2016-04-28 00:44:50 -06:00
parax0 c4268746f2 Fixed skeleton raycasting using the incorrect bone position + renamed a variable 2016-04-27 23:55:41 -06:00
parax0 59d8de0f31 Added support for depth groups on the renderer 2016-04-27 23:32:02 -06:00
parax0 5b63556527 Switched to 8-bit bone indices, removed material skinning flag 2016-04-27 21:33:45 -06:00
parax0 0bd9506a93 Fixed null animations not being cleared out correctly when loading animsets 2016-04-27 20:40:43 -06:00
parax0 50dcc9cc1a Pre-transform bones with inverse bind instead of sending it to the shader 2016-04-27 20:36:50 -06:00
parax0 98059cedaa Added support for model skinning 2016-04-27 04:27:57 -06:00
parax0 c5ff634cd1 Implemented assert macros 2016-04-10 14:59:34 -06:00
parax0 61afbabfa4 Character editor UI improvements 2016-04-10 07:54:49 -06:00
parax0 feace9e38c Fixed animation loader bug, added CBoneTransformData to separate animation transforms away from CSkeleton, added skeleton raycasting, added a bunch of animation playback controls to the character editor 2016-04-10 06:49:42 -06:00
parax0 dfdbed24c4 Change CTransform4f to inherit from CMatrix4f 2016-04-08 19:16:26 -06:00
parax0 876cb0e737 Added support for loading animations from ANCS, fixed some bugs 2016-04-08 18:38:40 -06:00
parax0 a931e2aec6 Added support for loading compressed animations 2016-04-08 09:02:15 -06:00
parax0 ef523c2339 Added support for loading uncompressed animations and playing them back 2016-04-07 12:15:24 -06:00
parax0 2376a36f0b Added support for loading and rendering skeletons, added character editor 2016-04-05 17:26:16 -06:00
parax0 f9a2d019e1 Color properties now update in realtime while the user is choosing a color from the color dialog; also some misc bugfixes 2016-03-28 03:28:33 -06:00
parax0 e461039882 Fixed crash when reading STRG files, fixed scale on script objects defaulting to 0, more cleanup 2016-03-27 22:01:07 -06:00
parax0 1150ee2b22 More code cleanup 2016-03-27 20:26:33 -06:00
parax0 82ad4fb5c8 Mass code cleanup 2016-03-27 13:09:38 -06:00
parax0 8234ffce1b Fixed a bug in the unlink dialog, changed the link/unlink keyboard shortcuts 2016-03-22 21:53:16 -06:00
parax0 77eb2b3dc5 Fixed crash when editing character properties 2016-03-22 20:22:43 -06:00
parax0 0ca82afbfe Fixed a crash after extracting or repacking a pak 2016-03-22 17:21:49 -06:00
parax0 843ea96ceb Fixed PakTool dialog not having a parent assigned, fixed a crash when attempting to clone SCGN objects 2016-03-22 01:29:17 -06:00
parax0 e43cc3586b Finalized the About dialog, made it accessible through the start window 2016-03-21 18:24:12 -06:00
parax0 b8b9426411 Fixed crash when repacking paks 2016-03-21 18:23:25 -06:00
parax0 220c54004f Fixed combo boxes in the property view resizing when you modify them and screwing up vertical alignment 2016-03-21 17:07:11 -06:00
parax0 87bf3dbfcc Fixed draggable spinboxes updating while the user is typing into them 2016-03-21 16:51:35 -06:00
parax0 9d782f5a4c Fixed rotation arrow rendering bug, fixed waypoint path bounding boxes not updating when the waypoints are transformed, fixed clone selection and paste nodes commands not properly notifying linked instances of their links being modified 2016-03-21 16:01:14 -06:00
parax0 0faa4c3630 Replaced uses of std::cout with Log::Write and Log::Error 2016-03-21 15:29:56 -06:00
parax0 2c120e0b16 Added improved functionality for running PakTool and added "Save and Repack" button in the World Editor 2016-03-21 06:55:01 -06:00
parax0 bb921dc613 Copy/paste bugfixes 2016-03-20 18:22:11 -06:00
parax0 8dddbd8b92 Attempt to find a new filename for the log if we can't open the requested one 2016-03-20 06:39:07 -06:00
parax0 5009c08c87 Added support for script instance copy/paste in the World Editor 2016-03-20 06:31:23 -06:00
parax0 d961545309 Added some extra menu actions to allow the user more control over which connected instances are selected 2016-03-19 21:47:40 -06:00
parax0 1921fbf5de Added "select connected" action to CSceneViewport context menu 2016-03-19 21:02:23 -06:00
parax0 99a64342e9 Added support for script instance cloning 2016-03-19 20:30:42 -06:00
parax0 3d6993a1ec Fixed an issue in the area cooker where unneeded padding is written to the file if the padding is exactly 32 bytes 2016-03-19 03:00:13 -06:00
parax0 c1014f4748 Fixed a bug that caused a crash if you tried to spawn an instance without changing the spawn layer 2016-03-17 15:23:26 -06:00
parax0 f19e5c1153 Added check for no clean index 2016-03-16 22:22:10 -06:00
parax0 7bc7a7a610 Fixed a bug in the World Editor clean state checks 2016-03-16 22:09:53 -06:00
parax0 b774f08097 Implemented spawn layer on the create tab 2016-03-16 21:31:27 -06:00
parax0 2bcf29dd7f Correctly handle link modifications, run OnLoadFinished when creating new nodes 2016-03-16 19:36:38 -06:00
parax0 c4e05610f3 Fully implemented delete, added an easy-to-use ID lookup system for undo commands, fixed a bunch of crashes when undoing/redoing after creating/deleting an object 2016-03-16 19:09:59 -06:00
parax0 f02f7ada0f Moved selection handling code to CNodeSelection, implemented instance spawning, half-implemented instance deleting (this build is buggy/crash prone) 2016-03-13 22:30:04 -06:00
parax0 c6a4190042 Fixed edit link line not rendering correctly in rooms without a skybox 2016-03-07 21:23:58 -07:00
parax0 57b7fbe7f6 Split check for picking into a separate line 2016-03-07 21:14:43 -07:00
parax0 4b8a42f341 Draw the edit link line when picking from the modify tab 2016-03-07 21:13:44 -07:00
parax0 95d4deeab6 Draw a line in the viewport to visualize the link the user is editing 2016-03-07 17:34:48 -07:00
parax0 0eae2162b9 Added Edit button icon 2016-03-07 15:22:11 -07:00
parax0 0b5c7c8e90 Implemented World Editor Link/Unlink actions 2016-03-07 14:44:09 -07:00
parax0 93d6e8dd14 Added context menu for picking the connecting object when creating a link 2016-03-07 10:25:53 -07:00
parax0 f4484556c0 Disable ok button in the link dialog when there's no sender/receiver; fix toggling Active not changing game mode visibility 2016-03-07 07:41:45 -07:00
parax0 c3ae63718b Turn off pick mode when the link dialog is closed 2016-03-06 18:05:40 -07:00
parax0 8f82dcbdd9 Implemented functionality for editing, creating, and deleting script object links 2016-03-06 17:44:51 -07:00
parax0 984d9cf3f3 Added "add/edit link" dialog to the modify tab 2016-03-01 11:18:07 -07:00
parax0 2860c27d15 Made collision wireframe render with glPolygonMode 2016-03-01 04:05:40 -07:00
parax0 6ac7c1cbd2 Fixed undo/redo when selecting objects from the instance view, set DKCR to render basic lighting for objects with no ingame model 2016-02-27 02:51:11 -07:00
parax0 ecab7be63f Set up DKCR waypoints to draw using the color of their attached spline path 2016-02-27 02:16:29 -07:00
parax0 17bb4567df Renamed should_cook to cook_pref 2016-02-26 05:45:21 -07:00
parax0 146c88d016 Removed some lines that weren't deleted in an earlier commit for some reason, fixed some objects being selectable in game mode despite not being visible, fixed a few property templates 2016-02-26 05:38:26 -07:00
parax0 e8f48ef66a Bugfixes + removing warning for invalid property count in MP2/3 areas 2016-02-26 04:58:58 -07:00
parax0 baeb898f22 Made IPropertyTemplate::CookPreference non-virtual and replaced it with IProperty::ShouldCook 2016-02-24 07:18:29 -07:00
parax0 a166dd8ac3 Fixed incorrect LayerSwitch/LayerID templates, made IPropertyTemplate::CookPreference() virtual and overrode it for certain types, fixed a CAnimationParameters bug 2016-02-24 04:01:03 -07:00
parax0 9f2c4d75bf Added area cooking support for MP2 and MP3. DKCR support has been started but is currently broken. 2016-02-22 11:47:47 -07:00
parax0 200918671b Implemented grid toggle in the model editor 2016-02-20 04:48:17 -07:00
parax0 5fbdfc8298 Added/updated some icons and made some UI changes - added/changed some UI actions and removed some UI elements that aren't being used 2016-02-20 04:41:07 -07:00
parax0 8c722c8308 Quick fix to keep the "white ambient" flag from being enabled in MP1/2 2016-02-19 18:47:21 -07:00
parax0 1727a337c6 Added support for "white ambient" flag in DKCR to fix black world geometry 2016-02-17 03:43:15 -07:00
parax0 63bdc1def7 Set DKCR game mode to check for InternalState5/6 + fixed an infinite recursion issue 2016-02-17 02:40:17 -07:00
parax0 c36c09a674 Improved DKCR game mode + a few other assorted fixes 2016-02-17 01:55:19 -07:00
parax0 9eaf537611 Added application icon 2016-02-16 19:41:54 -07:00
parax0 dfd9ea92db Overhauled CompressionUtil 2016-02-15 06:20:34 -07:00
parax0 a35044ef83 Moved Log to Common and made some changes to log formatting 2016-02-15 05:28:20 -07:00
parax0 d39a9dd1c1 Added "support" for MayaSpline properties 2016-02-15 02:06:44 -07:00
parax0 c1e3808196 Added dialog for editing property templates 2016-02-14 21:36:24 -07:00
parax0 34eb7c436e Finished the template writer and regenerated templates (most of the template changes are just automated formatting changes) 2016-02-14 01:03:17 -07:00
parax0 3296948bea Fixes to avoid needless re-buffering in PostLoad + fix for a crash/memory leak when changing areas 2016-02-10 18:49:56 -07:00
parax0 7bd97f0fce Make enum properties track the enumerator ID internally instead of the index + CUniqueID bugfix 2016-02-10 18:48:34 -07:00
parax0 739e3c51bf Added PostLoad methods to ensure all models have created vertex buffers and all materials have generated shaders before the user gains control of the camera, to fix hitching issues 2016-02-10 17:38:32 -07:00
parax0 6d55444cc2 Added a label to WEditorProperties to present some basic information on the selected instance 2016-02-10 17:35:36 -07:00
parax0 e13868921c Added a bunch of new functionality to the property classes, set up property view to bold property names if the property has been modified from its default value 2016-02-10 04:55:05 -07:00
parax0 d9b5895074 Merged all the Properties.xmls together to eliminate the need to sync property name changes between games 2016-02-08 04:35:04 -07:00
parax0 55b2c053ab Added support for numerical property suffixes 2016-02-08 03:35:28 -07:00
parax0 37110f4e54 Clear error log before loading an area 2016-02-08 00:51:09 -07:00
parax0 a46cd5446f Added Editor Properties widget at the top of every World Editor tab, made tons of backend changes to get it to work properly 2016-02-07 23:48:43 -07:00
parax0 8e1b66fa5a Unsaved changes bugfix, added close event for start window 2016-02-01 22:15:28 -07:00
parax0 0fe0c667a1 Check for unsaved changes before changing area/world 2016-02-01 18:30:09 -07:00
parax0 1a07a9c083 Added TPropCast property casting function, added support for clean/dirty state in the world editor + check for unsaved changes when the window is closed 2016-02-01 16:42:12 -07:00
parax0 6669dd4367 Added check for the World Lighting Options property in LightParameters when lighting script nodes 2016-01-31 23:53:35 -07:00
parax0 e430cbfb73 Implemented area cooker, added the ability to resave Prime 1 MREAs from the World Editor 2016-01-31 19:29:10 -07:00
parax0 7a28db3d40 Open property editor on single click, fix for sub-value edits 2016-01-31 14:48:29 -07:00
parax0 f6f36f4f2e Support for undo/redo on array resize 2016-01-31 14:25:16 -07:00
parax0 cc054cf571 Support for undoing property changes + tons of tweaks and fixes 2016-01-31 01:11:32 -07:00
parax0 c7d448225c Update the rest of the UI on property changes and update properties on node transform 2016-01-30 18:54:00 -07:00
parax0 2e6024b413 Notify script nodes when their properties are modified 2016-01-30 11:21:29 -07:00
parax0 b4c8226e15 Pass through LURD and LRLD material passes with no effect 2016-01-30 00:17:19 -07:00
parax0 61769fefe2 Added Qt error message redirect to PWE's log 2016-01-29 21:43:22 -07:00
parax0 c91c275af7 Template updates + small fixes 2016-01-25 23:12:22 -07:00
parax0 75091f718c Added rotation arrow for when billboards are selected 2016-01-25 22:26:38 -07:00
parax0 9a24a34bc6 Added interface for editing array properties in the property view 2016-01-25 16:57:04 -07:00
parax0 3b41415581 Added the ability to extract paks by invoking PakTool + added PakTool to the repo (temporarily) 2016-01-24 00:50:03 -07:00
parax0 cae8caaabb Implemented sorting and context menus on the instance views 2016-01-23 04:00:26 -07:00
parax0 38942988d5 Implemented new property editor, CPropertyView 2016-01-22 13:53:57 -07:00
parax0 26485b1151 Changed double-click behavior in the POI list dialog, readded and fixed error message for incorrect struct property count in SCLY 2016-01-18 16:10:26 -07:00
parax0 8611e692a9 Added the ability to add/remove POIs to the EGMC editor 2016-01-16 23:27:08 -07:00
parax0 f25042125f Added Unmap All button to the EGMC editor dialog 2016-01-16 13:51:38 -07:00
parax0 af94b54acf Fixed lighting mode in EGMC editor, disabled EGMC editor outside MP2/3, fixed a crash in the anim params editor 2016-01-16 13:32:40 -07:00
parax0 440c3ad484 Feature additions and improvements for pick mode and the POI -> World editor 2016-01-16 12:57:20 -07:00
parax0 5c3a37ca4a Added support for editing and resaving EGMC files + improved its preview rendering 2016-01-16 01:13:27 -07:00
parax0 c0b74c9883 Added support for EGMC and a basic EGMC visualizer dialog 2016-01-15 16:36:58 -07:00
parax0 b71e1268fa Added experimental code for re-splitting world meshes in MP2/3/DKCR 2016-01-14 21:15:06 -07:00
parax0 29bf0234ec Loading SCLY file properties into a new class CResourceInfo instead of loading it as a CResource 2016-01-10 08:57:21 -07:00
parax0 b768473b44 Added lightmap multiplier to allow applying basic lighting on world geometry 2016-01-10 06:17:12 -07:00
parax0 444382c1a9 Added more actions to CSceneViewport context menu 2016-01-09 16:52:01 -07:00
parax0 6aa5150787 Implemented Unhide All 2016-01-09 10:24:39 -07:00
parax0 38d04bcd25 Added CSceneIterator and implemented support for Select All/Invert Selection 2016-01-09 09:39:43 -07:00
parax0 7eeb90b925 Minor game mode fixes 2016-01-06 06:44:17 -07:00
parax0 c7d8e47d73 Render with full white ambient color on static nodes outside world lighting mode. 2016-01-06 03:47:54 -07:00
parax0 a2bb48f53f Committing a couple things that should've been in the last commit 2016-01-06 03:47:18 -07:00
parax0 d66b3dee8e Reorganized CScene; better organization, less redundant code, responsibility for show/hide shifted to other classes, and in position to implement CSceneIterator 2016-01-06 03:42:07 -07:00
parax0 3fa109d5b8 Renamed CSceneManager to CScene 2016-01-06 03:19:06 -07:00
parax0 5375f34c19 Implemented TFlags for easy, type-safe bitflags 2016-01-05 11:50:10 -07:00
parax0 ee5d5fae0a Added viewport context menus 2016-01-05 07:54:16 -07:00
parax0 aa5453b84a Added log error dialog 2016-01-05 03:20:47 -07:00
parax0 70d8981037 Added support for property descriptions 2016-01-05 01:41:22 -07:00
parax0 8cf9968134 SCAN support for Echoes demo, lights/CHAR support/instance view bugfix for the Corruption proto 2016-01-02 13:39:29 -07:00
parax0 37fd93d10e Added new batch of script object icons + some fixes 2016-01-02 11:03:33 -07:00
parax0 78400b7072 Updated to Script Template V4 2016-01-02 10:24:40 -07:00
parax0 1c80970a04 Minor fixes on TString and CTextInStream 2015-12-31 04:56:58 -07:00
parax0 efb21f629a Fixed bugged color pickers caused by incorrect conversion from CColor to QColor 2015-12-26 00:42:34 -07:00
parax0 72f87665d4 Allow coplanar ray intersections (fixes an issue with the ray hit node not matching what's visibly on top in the viewport) 2015-12-16 19:43:21 -07:00
parax0 2faf44821b Fix for preview scale on billboards, prevent CDoorExtra from drawing its wireframe in game mode, change default World Editor tab to Modify 2015-12-16 18:20:26 -07:00
parax0 b4ac78fd62 Light radius calculation fix (was broken by CColor changes) 2015-12-16 17:47:50 -07:00
parax0 6e3deb836c Getting rid of CylinderLarge, replacing with preview volume scaling support 2015-12-16 17:44:21 -07:00
parax0 2a38fb5b09 Added CRadiusSphereExtra for RadialDamage and Repulsor objects 2015-12-16 16:10:36 -07:00
parax0 4eaf4d9440 Renaming things in FileIO to match PWE's naming conventions 2015-12-16 15:21:21 -07:00
parax0 2db8d23516 Splitting Math into a separate subproject and adding FileIO as a PWE subproject 2015-12-16 14:39:51 -07:00
parax0 610c1c11a5 Fixing some CColor bugs and fixing icon paths 2015-12-16 12:17:03 -07:00
parax0 6b8966f0b9 Making CColor use floats instead of u8s 2015-12-16 03:28:40 -07:00
parax0 f11a8b938b Fixing pro files to properly rebuild projects when their dependencies are rebuilt (needs to be done for Mac/Linux as well at some point) 2015-12-16 03:27:27 -07:00
parax0 0de2bf5bac Going back to dynamic_cast on TResPtr 2015-12-16 01:03:02 -07:00
parax0 824d23efc1 Mass refactoring part 2/2: fixing include paths and project files 2015-12-14 19:07:22 -07:00
parax0 8805baaee1 Mass refactoring part 1/2: establishing multiple subprojects, moving source files to their new location, adding resources/templates to version control 2015-12-14 18:33:16 -07:00