Commit Graph

291 Commits

Author SHA1 Message Date
parax0 9a243f94ac Heavily modified the dependency tree system and applied other various fixes and updates to work towards supporting Echoes package cooking 2016-08-19 02:13:02 -06:00
parax0 881bb28d84 Added support for loading all dependencies of MP2 ANCS, FRME, and SCAN 2016-08-16 03:00:31 -06:00
parax0 bc35e15a6a Added support for parsing MP2 particles 2016-08-15 00:40:13 -06:00
parax0 8f2b39469a Added versioning support to the serializer; began restructuring CWorld and getting world cooking/serialization working for other games; gave CAssetID an alternate input stream constructor that takes an EGame instead of an EIDLength 2016-08-14 04:56:51 -06:00
parax0 a914736172 Added rel/rso module dependencies to the script template format 2016-08-13 23:57:41 -06:00
parax0 74574c318e Moved EGame to Common 2016-08-13 01:43:55 -06:00
parax0 de18044ae0 Fixed some missed dependencies in a few formats and implemented support for building file lists for paks and MLVLs, and implemented support for package cooking for MP1 2016-08-12 04:27:19 -06:00
parax0 0f2c0d5b39 Implemented serialization support and initial support for raw resource formats 2016-08-09 21:58:27 -06:00
parax0 b582e7208e Finished dependency gathering support for MREA and MLVL 2016-08-09 21:36:41 -06:00
parax0 3bca8410b0 Added support for gathering dependencies of ANCS and FRME; changed CDependencyGroup to use a vector instead of a set 2016-08-03 13:01:48 -06:00
parax0 11a7b86120 Added support for loading dependencies of EVNT and STRG 2016-07-27 03:24:15 -06:00
parax0 7f2cac6216 Added support for loading dependencies of CSNG, HINT, MAPW, and MAPU 2016-07-27 01:47:47 -06:00
parax0 1a0aed95ec Added unsupported format loader with support for particle formats and RULE; overhauled CFourCC implementation 2016-07-26 16:12:07 -06:00
parax0 5f1b5da430 Renamed CUniqueID to CAssetID and heavily modified the implementation to drop 128-bit support and use a u64 internally instead of a u8[16] 2016-07-25 03:25:22 -06:00
parax0 9341c11ac8 Added dependency tree system, methods for generating dependency trees from resources, and saving/loading dependency trees to the project cache folder 2016-07-25 02:12:30 -06:00
parax0 c1405bfac1 Applied some minor optimizations to the resource browser and right-aligned the file size column 2016-07-12 04:49:56 -06:00
parax0 6f98ae5bb8 Implemented initial version of resource browser 2016-07-10 06:58:23 -06:00
parax0 08dcfe5e5a Added project overview dialog with placeholder UI to allow loading worlds through a game project 2016-07-08 01:10:07 -06:00
parax0 12bd4eff90 Added support for saving/loading game projects 2016-07-05 20:09:21 -06:00
parax0 f55b3666a0 Added support for saving/loading package definitions 2016-07-05 01:45:42 -06:00
parax0 24c5ad5cd7 Applied a bunch of fixes to get the current game exporter functionality working with the resource store system 2016-07-04 20:28:17 -06:00
parax0 2f2ec13ced Fixed CHAR files failing to load 2016-06-29 23:23:49 -06:00
parax0 f967519a77 Fixed unnecessary ray tests being performed 2016-06-29 23:20:34 -06:00
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