Commit Graph

672 Commits

Author SHA1 Message Date
Lioncash cc376d3e21 CMaterialLoader: Make use of std::array 2020-06-14 19:41:42 -04:00
Lioncash 903f6dfe7e CGameArea: Make use of in-class initializers where applicable
Same behavior, less code.
2020-06-14 19:27:54 -04:00
Lioncash 2c274897c9 CLightParameters: Make EWorldLightingOptions an enum class
Avoids polluting the global namespace.
2020-06-14 19:21:30 -04:00
Lioncash cec88d182b CLightNode: Mark member functions as const where applicable
Several functions don't modify internal member state.
2020-06-14 19:13:35 -04:00
Lioncash f2201ca03c CLight: Make CalculateSpotAngleAtten() const
This member function doesn't modify internal member state.
2020-06-14 19:05:29 -04:00
Lioncash b439e4bba1 CLight: Make use of in-class initializers where applicable
Same behavior, less code.
2020-06-14 19:03:32 -04:00
Lioncash f942ad6551 CGameTemplate: Mark getter functions as const
These don't modify internal class state, so we can mark them as const.
2020-06-14 18:58:05 -04:00
Lioncash 15708b8624 CGameTemplate: Collapse loops into ranged for where applicable 2020-06-14 18:49:37 -04:00
Lioncash d9bb255518 CGameTemplate: Use in-class initializers where applicable
Same behavior, less code.
2020-06-14 18:35:10 -04:00
Lioncash 332be356de CIndexBuffer: Make use of size_t where applicable
Provides a nicer interface for operating with standard types, etc.
2020-06-14 18:29:39 -04:00
Lioncash d4564434c3 FShowFlags: Remove use of cpp file
Now that these constructs are constexpr capable, we can make use of
constexpr here to contain it fully within the header.
2020-06-14 17:12:37 -04:00
Lioncash b2db6a21fa CFlagsProperty: Mark HasValidValue() as const
This doesn't modify internal state.
2020-06-14 17:07:47 -04:00
Lioncash d5a33b631a CFlagsProperty: Make use of a ranged for loop 2020-06-14 17:06:46 -04:00
Lioncash 84184da66d CFont: Prevent Wmaybe-uninitialized warning 2020-06-14 17:04:35 -04:00
Lioncash 4861f118fb CFont: Make PtsToFloat() internally linked
This is only ever used within the cpp file
2020-06-14 17:04:35 -04:00
Lioncash 1c292f5e2d CFont: Make use of std::array
Same behavior, stronger typing.
2020-06-14 17:04:32 -04:00
Lioncash b6b7bcace1 CFont: In-class initialize members where applicable
Provides a consistent initial state.
2020-06-14 16:54:16 -04:00
Lioncash 01e68ec5d8 CFontLoader: Default constructor 2020-06-14 16:51:13 -04:00
Lioncash e49315a645 CSkeleton: Make use of unique_ptr where applicable
Makes ownership semantics explicit.
2020-06-14 16:49:51 -04:00
Lioncash 4dcb539763 CSkeletonLoader: Make use of ranged for where applicable
Same behavior, less code.
2020-06-14 16:13:28 -04:00
Lioncash 6909c75d64 CTextureDecoder: Misc cleanup
Const correctness, unimplemented prototypes, reducing copies, etc.
2020-06-14 16:07:43 -04:00
Lioncash 68455c54e8 CTextureDecoder: Make utility functions internally linked
Same behavior, but keeps implementation details internal.
2020-06-14 15:41:32 -04:00
Lioncash f0cd6ee99b CStructProperty: Make use of ranged for 2020-06-12 17:25:06 -04:00
Lioncash 7b40eec19c CScriptObject: Collapse for loops into ranged for loops
While we're at it, eliminate sign conversion warnings.
2020-06-12 17:12:37 -04:00
Lioncash 5c42bcc580 CLink: Resolve sign conversion warnings 2020-06-12 16:46:49 -04:00
Lioncash 38d245b460 CLink: Make constructor explicit 2020-06-12 16:45:33 -04:00
Lioncash f5e9254c9a CIndexBuffer: Make use of in-class initializers where applicable 2020-06-12 16:43:54 -04:00
Lioncash 721c4d8121 CIndexBuffer: Make constructor explicit
Prevents implicit constructions.
2020-06-12 16:41:47 -04:00
Lioncash ece0aec27a CGraphics: Make use of std::array 2020-06-12 16:36:34 -04:00
Lioncash bf9233779a CGraphics: Make skDefaultAmbientColor constexpr
Same behavior, no runtime initializer.
2020-06-12 16:19:59 -04:00
Lioncash e8a20933de CVirtualDirectory: Resolve -Wreorder warnings 2020-06-12 16:09:20 -04:00
Lioncash 1ae5462cd7 CGameProject: Make use of unique_ptr where applicable
Makes the ownership semantics explicit.
2020-06-12 16:07:04 -04:00
Lioncash 1bdcdb85de CResourceStore: Use unique_ptr where applicable
Makes the ownership semantics explicit and prevents leaks from occurring
a little better.
2020-06-12 14:43:39 -04:00
Lioncash 137b2395c9 CResourceStore: Use in-class initializers where applicable 2020-06-12 14:11:57 -04:00
Lioncash 7da16efe9d CDependencyTree: Make use of unique_ptr
Makes the ownership semantics explicit in the interface.
2020-06-12 14:09:08 -04:00
Lioncash e2190793fd CDependencyTree: Tidying up
- Convert for loops to ranged for loops.
- Collapse loop into an any_of.
2020-06-12 13:37:54 -04:00
Lioncash 7d4ce7e909 CDependencyGroupLoader: Default constructor 2020-06-12 13:26:39 -04:00
LC 10cbcd4024
Merge pull request #31 from lioncash/properties
Property: Make use of override where applicable
2020-06-12 13:17:05 -04:00
Lioncash c020084587 CCollisionMaterial: Make use of std::array
Allows simplifying some size calculations.
2020-06-12 13:14:39 -04:00
Lioncash a51604ca91 CCollisionMeshGroup: Make use of unique_ptr 2020-06-12 13:08:48 -04:00
Lioncash 48d8d361b6 CCollisionLoader: Collapse for loop into ranged for pt. 2 2020-06-12 12:57:18 -04:00
Lioncash 3b3b2cc80f CCollisionLoader: Collapse for loop into ranged for
Also removes a delete left behind in an error case.
2020-06-12 12:52:28 -04:00
Lioncash 3449f60317 CCollisionLoader: Make use of unique_ptr more
Same behavior, but makes the allocation ownership explicit
2020-06-12 12:50:19 -04:00
Lioncash d43f2dab31 CAudioGroupLoader: Default constructor 2020-06-12 12:44:27 -04:00
Lioncash 9e2a8bd693 CAnimationLoader: Make use of std::array
Prevents implicit array to pointer decay.
2020-06-12 12:43:09 -04:00
Lioncash 12ccb2fbd4 CGameArea: Simplify allocation handling
Eliminates manual new/delete and also makes the lifecycle of allocations
enforced within the interface.
2020-06-12 12:38:54 -04:00
Lioncash 674ae65e56 CAnimSetLoader: Collapse for loops into ranged for loops 2020-06-12 11:28:05 -04:00
Lioncash 9921ccfe25 IMetaTransition: Always initialize CMetaTransTrans members
Always provides a deterministic initial state.
2020-06-12 10:47:22 -04:00
Lioncash eabc789910 CAnimSet: Simplify allocation code
We can make use of std::unique_ptr to prevent any potential memory leaks
from occurring and simplifying the destruction code.
2020-06-12 10:43:29 -04:00
Lioncash 4eb1027362 CAnimSet: Collapse loops into ranged for where applicable 2020-06-12 10:03:02 -04:00
Lioncash 2a5ab1ed32 CAnimEventLoader: Use unique_ptr more
Makes memory handling a little more robust.
2020-06-11 21:10:02 -04:00
Lioncash ecbd3eb83d CAnimEventLoader: Default destructor
Allows the constructor to be considered trivial.
2020-06-11 21:00:08 -04:00
Lioncash 114742fc37 CCamera: Resolve -Wreorder warnings 2020-06-11 20:58:59 -04:00
Lioncash 6f0c8669de CCollisionLoader: Formatting 2020-06-11 20:53:11 -04:00
Lioncash d0bd7eb292 CCollisionLoader: Make LoadAreaCollision() return a unique_ptr
Same behavior, less boilerplate
2020-06-11 20:46:39 -04:00
Lioncash 907f1270bd CResourceFactory: Make use of unique_ptr
Makes the API more memory safe
2020-06-11 20:22:21 -04:00
Lioncash ce315280c3 CResource: Make BuildDependencyTree() return a unique_ptr
Makes the functions more memory safe in terms of freeing memory in
exceptional paths .
2020-06-11 18:39:07 -04:00
Lioncash eb8ca98a8a CAnimEventData: Collapse for loop into a ranged for loop 2020-06-11 18:02:52 -04:00
Lioncash 044efcf59d CAnimEventData: Remove unnecessary inline specifiers 2020-06-11 18:01:18 -04:00
Lioncash aeea0f8052 CMaterialPass: Make use of std::array 2020-06-11 17:50:40 -04:00
Lioncash 7b81aa5268 CMaterialPass: Simplify initialization code 2020-06-11 17:41:54 -04:00
Lioncash 92811a9309 CShader: Simplify initialization 2020-06-11 17:34:52 -04:00
Lioncash b8078e7419 CShaderGenerator: Fix compiler warning
MSVC desires the namespace version
2020-06-11 15:55:06 -04:00
Lioncash 012da6fb6d General: Remove unnecessary inline specifiers and add overrides 2020-06-11 15:49:42 -04:00
Lioncash 2d76c5865a CCharacterNode: Add missing override specifiers 2020-06-11 13:44:20 -04:00
Lioncash 060101c718 CCharacterNode: Remove unnecessary inline specifiers
Functions defined in class declarations are implicitly inline
2020-06-11 13:43:19 -04:00
Lioncash 100453b356 CCamera: Remove unnecessary inline specifiers
Functions defined within a class declaration are inline by default.
2020-06-11 13:41:33 -04:00
Lioncash 53b257fb8a CBoneTransformData: Remove unnecessary inline keywords
Functions defined within the class declaration are inline by default.
2020-06-11 13:40:00 -04:00
Lioncash 9ec61de2ca CAudioManager: Make LogSoundInfo() a const member function
This function doesn't modify internal state.
2020-06-11 13:38:00 -04:00
Lioncash 872c38b384 CAudioManager: Make GetSoundInfo() a const member function
This doesn't modify internal member state.
2020-06-11 13:35:38 -04:00
Lioncash 9692a064cd CAudioManager: Make constructor explicit
Prevents potentially error-prone constructions from occurring
2020-06-11 13:34:17 -04:00
Lioncash 7f881b1b10 CAudioMacro: Make use of ranged for where applicable
Same behavior, less moving parts.
2020-06-11 13:32:29 -04:00
Lioncash f9031283d0 CAudioMacro: Add missing override specifier 2020-06-11 13:31:40 -04:00
Lioncash 416608a76a CAudioMacro: Remove unnecessary inline specifiers
Functions defined within a class declaration are already inline by
default.
2020-06-11 13:31:00 -04:00
Lioncash edaafd4bcf CAudioMacro: Make constructor explicit
Prevents implicit error-prone constructions from occurring.
2020-06-11 13:30:07 -04:00
Lioncash e95cb1117a CAudioLookupTable: Include used headers 2020-06-11 13:28:11 -04:00
Lioncash 1b4ebd5f7b CAudioLookupTable: Make FindSoundDefineID() const
This doesn't mutate any contained state, so it can be const.
2020-06-11 13:26:32 -04:00
Lioncash a82f9c197b CAudioLookupTable: Make use of explicit constructors
Prevents implicit constructions
2020-06-11 13:25:19 -04:00
Lioncash d223bac56a CAudioGroup: Make use of in-class initializers 2020-06-11 13:23:50 -04:00
Lioncash 7ce0e14e29 CAssetNameMap: Eliminate file-scope string allocations 2020-06-11 13:21:33 -04:00
Lioncash 9925925b6f TResPtr: Use in-class initializers where applicable 2020-06-11 13:14:33 -04:00
Lioncash 11f156352a CAnimSetLoader: Default constructor 2020-06-11 13:11:38 -04:00
Lioncash 61a6151afe externals: Update LibCommon 2020-06-11 11:10:04 -04:00
LC b5ddc20771
Merge pull request #26 from lioncash/scene
CSceneNode: Minor cleanup
2020-06-11 10:53:51 -04:00
LC 1fb554fa4c
Merge pull request #24 from lioncash/cook
CAreaCooker: Minor cleanup
2020-06-11 10:53:17 -04:00
LC 8babcc13bb
Merge pull request #22 from lioncash/anim2
CAnimation: Minor clean up
2020-06-11 10:52:59 -04:00
LC 9c2b7e4c95
Merge pull request #23 from lioncash/iter
CResourceIterator: Cleanup and undefined behavior prevention
2020-06-11 10:52:41 -04:00
LC d7b6ab81ea
Merge pull request #27 from lioncash/gen
CShaderGenerator: Make file-scope arrays non-allocating
2020-06-11 10:52:19 -04:00
LC 80ccc32e68
Merge pull request #29 from lioncash/viewport
CBasicViewport: Make member functions const where applicable
2020-06-11 10:51:53 -04:00
LC 919dcfd8d9
Merge pull request #28 from lioncash/table
CStringTable: Eliminate file-scope allocations
2020-06-11 10:51:34 -04:00
LC 4f289193bb
Merge pull request #32 from lioncash/str
CGameInfo: Make file-scope strings non-allocating
2020-06-11 10:51:20 -04:00
LC 156c92909e
Merge pull request #33 from lioncash/index
CIndexBuffer: Mark member functions as const where applicable
2020-06-11 10:50:52 -04:00
Lioncash 76ec0df8a2 externals: Update LibCommon 2020-06-11 10:49:37 -04:00
Lioncash c929293789 CIndexBuffer: Mark member functions as const where applicable
These member functions don't alter internal state, so we can mark them
as const.
2020-06-10 19:33:50 -04:00
Lioncash 7da0cdb8a3 CGameInfo: Make file-scope strings non-allocating
Same behavior, minus any potential heap allocations and static
constructors.
2020-06-10 18:04:40 -04:00
Lioncash 96876b70e0 Property: Make use of override where applicable
Makes the API strongly enforced. This also fixes a bug in CBoolProperty,
where ValueAsString() had an incorrect signature (was missing a const).
2020-06-10 09:19:12 -04:00
Lioncash 01372f7049 CBasicViewport: Make member functions const where applicable
These don't modify member state. While we're at it, we can mark
functions as override where applicable.
2020-06-10 01:47:51 -04:00
Lioncash 583472f2f9 CStringTable: Eliminate file-scope allocations
Eliminates all runtime static initializers, reducing the heap usage of
the application lifetime just a little bit.
2020-06-10 01:06:46 -04:00
Lioncash ef0030872a CShaderGenerator: default constructor and destructor 2020-06-10 00:55:12 -04:00
Lioncash e75c077bda CShaderGenerator: Make file-scope arrays non-allocating
We can make these plain views to eliminate any potential static runtime
constructors.
2020-06-10 00:55:08 -04:00
Lioncash c285207f24 CSceneNode: Collapse loops into ranged for loops
Where applicable, we can simplify some loops a little bit, migrating off
the slightly more verbose iterator means of traversing standard
containers.
2020-06-09 23:07:47 -04:00
Lioncash 3d4f2d60eb CSceneNode: Make use of std::array
Same behavior, stronger typing.
2020-06-09 22:57:44 -04:00
Lioncash 7065005c30 CSceneNode: Make use of override
Same behavior, stronger enforcement of API.
2020-06-09 22:56:38 -04:00
Lioncash d3315bf84f CSceneNode: Make use of in-class initializers
Same behavior, less code.
2020-06-09 22:55:25 -04:00
Lioncash 03f1aba7e8 CAreaCooker: Collapse for loops into ranged for where applicable
Same behavior, less code.
2020-06-09 07:56:56 -04:00
Lioncash f727c07d13 CAreaCooker: Make use of in-class initializers where applicable
Simplifies the construction code.
2020-06-09 07:42:51 -04:00
Lioncash 0eef99f72e CResourceIterator: Provide a virtual destructor
Prevents any potential undefined behavior from occurring from deleting a
derived type from a base class pointer.
2020-06-09 05:14:15 -04:00
Lioncash 621367e120 CResourceIterator: Make use of override where applicable
Same behavior, but enforces the interface.
2020-06-09 05:11:08 -04:00
Lioncash 65cc3a0d89 CResourceIterator: Use prefix form for iterators
Same behavior, minus any created temporaries.
2020-06-09 05:10:09 -04:00
Lioncash e2209106fb CResourceIterator: Remove unnecessary inline specifiers 2020-06-09 05:09:31 -04:00
Lioncash 0c784aa305 CAnimation: Make use of std::array
Same behavior, but more strongly typed.
2020-06-09 04:21:45 -04:00
Lioncash 9f63991a0a CAnimation: Mark BuildDependencyTree() as overwritten
Same behavior, but enforces the interface.
2020-06-09 04:21:45 -04:00
Lioncash a4f45aeb2d CAnimation: Remove unnecessary inline specifiers
Same behavior, less writing. Functions defined in a class declaration
are already implicitly inline.
2020-06-09 04:21:45 -04:00
Lioncash f233af5de4 CAnimation: Convert typedefs into using aliases
Same behavior, nicer readability
2020-06-09 04:21:45 -04:00
Lioncash d4d7cf66cd CAnimation: Make use of in-class initializers where applicable
Simplifies member initialization
2020-06-09 04:21:41 -04:00
Lioncash 7824d0720d CAnimationParameters: Add missing break in switch cases in SetUnknown()
Prevents undocumented switch fallthrough.
2020-06-09 04:10:49 -04:00
Lioncash cf92227587 CAnimationParameters: Make use of in-class variable declarations where applicable
Same behavior, less code.
2020-06-09 04:10:45 -04:00
Jack Andersen 644d89aa2d Use PrimeWorldEditor for setApplicationName 2020-03-30 19:44:07 -10:00
Jack Andersen 6e08f95d10 Replace deprecated Qt APIs, Windows fixes 2020-03-30 18:07:18 -10:00
Jack Andersen 5bda353d57 Fix dolphin open panel filter, force X11 on linux launcher 2020-03-30 13:50:07 -10:00
EthanArmbrust 3aefd515bb
Include QCloseEvent in IEditor.cpp
Without this include, project fails to build on Arch Linux with gcc 9.3.0 with the following error:
`../src/Editor/IEditor.cpp:79:15: error: invalid use of incomplete type ‘class QCloseEvent’
   79 |         pEvent->ignore();
      |               ^~
`
2020-03-26 14:10:55 -04:00
Bearborg 4f3f5ea02d Replace deprecated GL_LUMINANCE and GL_LUMINANCE_ALPHA texture formats 2019-12-25 11:34:28 -05:00
Jack Andersen 94bdd70cb3 Prevent unpriveleged mouse-drag on macOS from conflicting with priveleged case. 2019-11-25 16:49:17 -10:00
Jack Andersen 9a96deed0a Add *.nfs extract support 2019-11-24 17:50:08 -10:00
Jack Andersen bcfcab1247 Merge branch 'master' of https://github.com/AxioDL/PrimeWorldEditor 2019-11-24 16:50:43 -10:00
Jack Andersen 30c1646f02 Update dew, fix no lighting mode 2019-11-24 16:46:57 -10:00
April Wade c90ce7d507 Fix 3D rendering on macOS 2019-11-22 03:17:50 -06:00
Jack Andersen e55b6b43e3 Fixes for building on ubuntu 2019-11-19 05:06:03 +00:00
Jack Andersen 37c462725c Default zero mat/amb alpha so bloom does not get overpowered 2019-11-17 12:03:09 -10:00
Jack Andersen 6e2bf5be83 Fix MP3 extraction crash 2019-11-16 20:48:07 -10:00
Jack Andersen 8ad13ff4c9 MP1 material fix after MP3 refactor 2019-11-16 15:42:36 -10:00
Jack Andersen dfc9d1ddb0 Merge remote-tracking branch 'origin/mp3-materials' 2019-11-16 15:26:14 -10:00
Jack Andersen cfea90e9d2 Segfault fixes 2019-11-16 15:24:46 -10:00
Jack Andersen 55c4a5818e Use non-1.0 alpha component for default lighting 2019-11-07 14:54:35 -10:00
Jack Andersen 6e3b23ec50 Accurate MP3 material processing 2019-11-06 16:52:45 -10:00
Phillip Stephens 79ec379c66
Minor lighting fixes and initial Mode 8 implementation 2019-10-27 04:03:57 -07:00
Aruki cd7937f73c Fixed CMayaSpline source files not compiling 2019-06-18 12:10:04 -07:00
Aruki ca40d34739 Merge branch 'master' of https://github.com/arukibree/primeworldeditor 2019-06-14 23:32:26 -07:00
Aruki a21407a1b7 Commit of old 2016-era WIP CMayaSpline implementation 2019-06-14 23:31:27 -07:00
Jack Andersen 036c56370c Various memory-related bug fixes
Also new lzokay API to reduce erroneous usage.
2019-06-14 09:01:29 -10:00
Jack Andersen 4c873591f0 Make InstanceID label selectable and add parsing tooltip 2019-06-13 13:12:53 -10:00
Jack Andersen 741185e8d6 Add CMake variable for PUBLIC_RELEASE 2019-06-12 11:21:41 -10:00
Jack Andersen b507196851 LibCommon now being integrated as an add_subdirectory submodule 2019-06-04 14:44:39 -10:00
Jack Andersen 12f4d5a267 Native handling of relative cursor coordinates for camera control 2019-06-03 19:38:13 -10:00
Pwootage 694c0b0765
Fix HiDPI on macOS (and possibly others?) 2019-06-03 21:51:01 -06:00
Jack Andersen fb88c81ef6 Fix package target for macOS 2019-06-03 14:01:15 -10:00
Jack Andersen 574ab7d6ac Enable CPack for Windows and macOS deployment 2019-06-03 11:28:47 -10:00
Jack Andersen 9b95f0b33d Ensure editor window deletion is deferred 2019-05-28 19:32:18 -10:00
Jack Andersen ca28e21739 Fixes to support building with GCC 2019-05-28 16:51:30 -10:00
Jack Andersen 5011e7d26b Make tooltip base color black for contrast 2019-05-27 13:47:08 -10:00