Commit graph

313 commits

Author SHA1 Message Date
Vsevolod Kremianskii
721e8c3e58 refactor: Use a single PixelFormat enum for textures and renderbuffers 2021-02-14 13:06:09 +07:00
Vsevolod Kremianskii
88c78c8bae feat: Add OpenGL renderbuffer abstraction 2021-02-14 11:59:34 +07:00
Vsevolod Kremianskii
df61386f9a refactor: Move scene animation classes into animation folder 2021-02-14 10:20:13 +07:00
Vsevolod Kremianskii
4f3e28d8df refactor: Delete CubeSceneNode in favor of MeshSceneNode 2021-02-14 10:11:17 +07:00
Vsevolod Kremianskii
1d72765265 refactor: Reorganize librender files 2021-02-14 09:36:57 +07:00
Vsevolod Kremianskii
730263881f refactor: Replace Singleton with boost::noncopyable 2021-02-14 08:55:35 +07:00
Vsevolod Kremianskii
d6d14fed0e refactor: Move mesh management into Meshes class 2021-02-13 23:57:35 +07:00
Vsevolod Kremianskii
78e8126961 refactor: Add Singleton base class to reduce duplication 2021-02-13 22:14:28 +07:00
Vsevolod Kremianskii
bdd369f5e4 feat: Finalize PBR support, refactor shaders
- Implement loading materials from material.2da
- Fix BRDF lookup texture creation
- Add a global variable to switch between PBR and Blinn-Phong
2021-02-13 18:46:31 +07:00
Vsevolod Kremianskii
9ff3227c3a feat: Enable loading metallic and roughness from lookup table 2021-02-12 21:19:31 +07:00
Vsevolod Kremianskii
c927bffce8 feat: Implement specular IBL as part of PBR
While at it, refactor framebuffer and texture abstractions.
2021-02-12 19:28:02 +07:00
Vsevolod Kremianskii
157c562ab9 feat: Implement physically based rendering 2021-02-12 02:05:30 +07:00
Vsevolod Kremianskii
8df62d5b48 refactor: Refactor SceneNodeAnimator
AnimationChannel is extracted into a separate class.
2021-02-11 16:51:42 +07:00
Vsevolod Kremianskii
2566e0d1e4 feat: Implement loading LIP files in conversations 2021-02-10 17:54:55 +07:00
Vsevolod Kremianskii
2f4d568c15 refactor: Streamline and cleanup tools 2021-02-09 14:53:53 +07:00
Vsevolod Kremianskii
41dca204fa feat: Add JSON to 2DA conversion tool 2021-02-09 12:40:14 +07:00
Vsevolod Kremianskii
3f3fe8663e refactor: Merge libnet into libmp 2021-02-08 17:26:42 +07:00
Vsevolod Kremianskii
4fa24a2842 refactor: Reimplement GR2 models and JBA animations
Still not working properly...
2021-02-08 02:05:19 +07:00
Vsevolod Kremianskii
ed1731c4b7 refactor: Move models(.h|.cpp) into model folder 2021-02-07 22:36:55 +07:00
Vsevolod Kremianskii
f9e54cbd10 refactor: Move libmp, libnet and libtor into experimental folder 2021-02-07 20:54:11 +07:00
Vsevolod Kremianskii
b90c1d9f4a refactor: Move TOR support code into a separate library 2021-02-07 20:45:10 +07:00
Vsevolod Kremianskii
c23100b95e feat: Add partial support for SWTOR animations 2021-02-04 22:37:49 +07:00
Vsevolod Kremianskii
2b0e9fa9d4 feat: Add support for GR2 model files (SWTOR) 2021-01-31 22:14:52 +07:00
Vsevolod Kremianskii
4b323899d6 feat: Render trigger geometry, toggleable by a flag 2021-01-31 14:09:03 +07:00
Vsevolod Kremianskii
e900157122 feat(render): Add LIP file support (untested) 2021-01-31 10:33:19 +07:00
Vsevolod Kremianskii
43bc1ac9ec feat: Implement combat sounds
- Party leader selection sound
- Death sound
- Ranged weapon shot sound

Also refactor sound set handling as part of this commit.
2021-01-31 01:31:37 +07:00
Vsevolod Kremianskii
53fbfe49fc feat(game): Implement map notes 2021-01-30 23:22:15 +07:00
Vsevolod Kremianskii
3bc66751f7 fix: Fix rendering of multiline listbox items 2021-01-28 15:49:34 +07:00
Vsevolod Kremianskii
2c6955bd22 refactor: Refactor conversations
Computer conversation is now a separate GUI.
2021-01-28 13:54:16 +07:00
Vsevolod Kremianskii
19d6981290 feat: Implement one-line conversations 2021-01-27 21:10:20 +07:00
Vsevolod Kremianskii
27645f5d38 feat: Implement onClick and onEnter GUI sounds 2021-01-20 16:32:46 +07:00
Vsevolod Kremianskii
d0d5d1eeed feat: Implement loading creatures sound sets 2021-01-20 01:47:33 +07:00
Vsevolod Kremianskii
c68e631c89 chore: Cleanup and document SceneNodeAnimator 2021-01-19 14:20:16 +07:00
Vsevolod Kremianskii
da1880d1db refactor: Move file loaders into format subdirectory 2021-01-19 13:56:51 +07:00
Vsevolod Kremianskii
6b56f7de24 refactor: Give concrete names to util files 2021-01-19 12:59:00 +07:00
Vsevolod Kremianskii
e1a9b981ee refactor: Reuse KeyBifProvider in the ModuleProbe tool 2021-01-19 12:37:04 +07:00
Vsevolod Kremianskii
e52912dd8a refactor: Extract Key/BIF handling into a separate class 2021-01-19 11:59:56 +07:00
Vsevolod Kremianskii
33345559e9 refactor: Refactor and document Resources
Make resource caches non-static members of the class.
2021-01-19 11:40:16 +07:00
Vsevolod Kremianskii
793cb45b22 refactor: Use file extensions in ResourceType, extract IResourceProvider 2021-01-19 10:53:12 +07:00
Vsevolod Kremianskii
6fd165cd38 feat: Add ModuleProbe tool
ModuleProbe generates a JSON file describing a game module.
2021-01-18 00:48:16 +07:00
Vsevolod Kremianskii
4be0627f2e fix: Fix cube map side order and orientation
- Swap +x and -x faces
- Rotate individual cube faces to match what the original engine does
2021-01-14 21:58:24 +07:00
Vsevolod Kremianskii
672f86fecf feat: Implement TPC to TGA conversion in reone-tools 2021-01-13 20:30:48 +07:00
Vsevolod Kremianskii
ac2a7ae2b4 feat: Add s3tc library 2021-01-13 16:45:31 +07:00
Vsevolod Kremianskii
b585bb79a8 feat: Properly implement fountain emitters 2021-01-11 17:23:39 +07:00
Vsevolod Kremianskii
0f26b589ff feat: Initial fountain emitter implementation 2021-01-10 20:13:21 +07:00
Vsevolod Kremianskii
7eb38cea59 feat: Implement partial emitter loading 2021-01-10 15:24:29 +07:00
Vsevolod Kremianskii
127022a0d9 refactor: Refactor combat, fix TSL crashes 2021-01-10 11:38:21 +07:00
Vsevolod Kremianskii
cd0772bb06 feat: Load class saving throws 2021-01-10 11:17:15 +07:00
Vsevolod Kremianskii
097c518d72 feat: Implement GetItemPossessedBy 2021-01-08 17:46:17 +07:00
Vsevolod Kremianskii
2c219022e1 feat: Implement playAnimation action 2021-01-06 20:27:47 +07:00
Vsevolod Kremianskii
936d6d0a5c feat: Implement stunt models in conversations 2021-01-06 18:28:39 +07:00
Vsevolod Kremianskii
53f069e57d refactor: Extract abilities and skills from CreatureAttributes 2021-01-05 14:56:48 +07:00
Vsevolod Kremianskii
589919dd2d feat: Implement more of levelling up, refactor GUI
Extract duplicate GUI configuration into GameGUI.
2021-01-05 08:01:40 +07:00
Vsevolod Kremianskii
415f3c80d2 feat: Add support code for levelling up 2021-01-04 18:39:18 +07:00
Vsevolod Kremianskii
1ff8b46521 refactor: Drop CreatureConfiguration in favor of StaticCreatureBlueprint 2021-01-04 11:09:53 +07:00
Vsevolod Kremianskii
bd4cee6bde refactor: Refactor creature class management
Replace classutil with Classes and CreatureClass.
2021-01-03 12:09:30 +07:00
Vsevolod Kremianskii
956bca3d64 chore: Update year in copyright notices 2021-01-02 22:06:11 +07:00
Vsevolod Kremianskii
9dc0ddba6c feat: Add support for custom character generation (minus actual values) 2020-12-30 14:08:57 +07:00
Vsevolod Kremianskii
82716d8685 feat: Implement random name generation 2020-12-29 23:52:13 +07:00
Vsevolod Kremianskii
91bc755a06 feat: Implement time routines 2020-12-29 20:17:10 +07:00
Vsevolod Kremianskii
f4a37f15dd refactor: Rename CameraObject to PlaceableCamera to match nwscript.nss 2020-12-18 18:48:35 +07:00
Vsevolod Kremianskii
2128ca8bc1 refactor: Extract structs and classes from game/types.h 2020-12-18 16:22:14 +07:00
Vsevolod Kremianskii
58f5b6feaf refactor: Run scripts through the ScriptRunner class 2020-12-17 14:28:48 +07:00
Vsevolod Kremianskii
f923b24fef feat: Implement effect creation script routines 2020-12-12 16:44:51 +07:00
Vsevolod Kremianskii
901d07aecd refactor: Move damageresolver and factionutil into rp folder 2020-12-12 12:32:59 +07:00
Vsevolod Kremianskii
5e5305a713 refactor: Major refactoring of the scripting subsystem
- Use smart pointers for objects and engine types instead of ids
- Use helper functions to access routine arguments
2020-12-12 11:09:59 +07:00
Vsevolod Kremianskii
c24955f857 feat: Implement logging to a file 2020-12-11 15:35:51 +07:00
Vsevolod Kremianskii
525c0b3025 feat: Implement simple attack rolls and damage calculation 2020-12-10 17:26:28 +07:00
Vsevolod Kremianskii
0fcb37f45f refactor: Extract creature animation handling into a separate class 2020-12-10 13:48:40 +07:00
Vsevolod Kremianskii
798eb3f809 refactor: Rename files with utility functions in libgame
- characters to characterutil
- classes to classutil
- colors to colorutil
- factions to factionutil
- portraits to portraitutil
2020-12-10 13:09:54 +07:00
Vsevolod Kremianskii
534c9f92eb chore: Remove unused WaypointBlueprint 2020-12-09 20:30:45 +07:00
UW Admin
2508f4fc28 nit: style and fix build error. 2020-12-07 22:28:08 +07:00
Vsevolod Kremianskii
5677bf29cb refactor: Refactor map
- Extract map logic into a separate class
- Load map properties as part of the area
2020-12-07 08:38:31 +07:00
Vsevolod Kremianskii
249270c2e0 feat: Implement video streaming 2020-12-06 15:00:18 +07:00
Vsevolod Kremianskii
c4dc990bec refactor: Move AABB class into libcommon 2020-11-28 22:26:39 +07:00
Vsevolod Kremianskii
2fb0183bbe refactor: Restructure classes in librender
- Rename format folder into image
- Move MdlFile class into model folder
- Move BwmFile class into the parent folder
2020-11-28 21:32:56 +07:00
Vsevolod Kremianskii
e409d8314f chore: Remove Octree class
It is redundnant and is unlikely to be used.
2020-11-28 15:13:32 +07:00
Vsevolod Kremianskii
26e9473db6 refactor: Move scene node classes into a separate folder 2020-11-28 15:09:02 +07:00
Vsevolod Kremianskii
5d43bc0572 refactor: Move rendering pipelines into libscene 2020-11-28 14:15:40 +07:00
Vsevolod Kremianskii
f66791aaa4 refactor: Refactor combat
Streamline timers, switch from real-time to turn-based combat.
2020-11-21 19:13:05 +07:00
Vsevolod Kremianskii
83c69e1010 chore: Switch to a centralized copyright notice
Contributors are listed in a separate CONTRIBUTORS file.
2020-11-18 13:06:55 +07:00
Vsevolod Kremianskii
4d12a769af refactor: Cleanup combat, split timer classes, fix style issues 2020-11-17 16:52:48 +07:00
Vsevolod Kremianskii
e61c8fdd71 Merge remote-tracking branch 'uwadmin12/combat-basic' into combat-basic 2020-11-17 13:29:20 +07:00
Vsevolod Kremianskii
88571f3840 feat: Implement force move and jump actions 2020-11-16 21:46:40 +07:00
UW Admin
491aadac34 fix: style issues per request 2020-11-16 01:14:10 -05:00
Vsevolod Kremianskii
e5f15f2c4a refactor: Drop custom vector and quaternion classes
They were redundant with no real benefit.
2020-11-16 12:45:36 +07:00
Vsevolod Kremianskii
390b7bde91 feat: Implement location script routines 2020-11-16 11:48:21 +07:00
Vsevolod Kremianskii
7537960c03 build: Link against libatomic on Unix systems 2020-11-15 07:58:05 -05:00
Vsevolod Kremianskii
aa128580ab refactor: Split script routine implementations into multiple files 2020-11-15 18:17:21 +07:00
Vsevolod Kremianskii
28168f9a23 reactor: Make CreatureAttributes a class 2020-11-15 17:08:52 +07:00
Vsevolod Kremianskii
cfa652575e refactor: Confine all OpenAL calls to the audio thread
To make sure, return SoundHandle, not SoundInstance from the
AudioPlayer.
2020-11-14 23:42:18 +07:00
UW Admin
8d7b55e7cf feat: basic combat architecture. 2020-11-14 01:08:25 -05:00
Brian Allred
a70264c394 fix: Fix building on Windows (broken by previous fix) 2020-11-13 08:29:19 +07:00
Brian Allred
0c74db9a6d fix: Fix building on certain Linux distros 2020-11-13 08:29:19 +07:00
Vsevolod Kremianskii
4ec98e768e feat: Implement static cameras
This includes refactoring of the camera handling: camera type is moved
into the Game class.
2020-11-12 11:38:04 +07:00
Vsevolod Kremianskii
ac0ad1b026 refactor: Move PthFile and DlgFile into game namespace 2020-11-10 14:49:01 +07:00
Vsevolod Kremianskii
743d0ebfd5 refactor: Move MdlFile and BwmFile to format folder 2020-11-10 14:27:59 +07:00
Vsevolod Kremianskii
7cf42df34c refactor: Move Mp3File and WavFile into format folder 2020-11-10 14:23:16 +07:00
Vsevolod Kremianskii
c6d381b11b refactor: Do not use glm in libresource and libscript 2020-11-10 14:07:02 +07:00
Vsevolod Kremianskii
f5deeb480e refactor: Rename libsystem to libcommon 2020-11-10 13:44:48 +07:00
Vsevolod Kremianskii
934e57cb3c feat: Add initial Octree implementation 2020-11-09 19:33:36 +07:00
Vsevolod Kremianskii
32c04ad0c7 feat: Implement environmental sounds 2020-11-09 14:20:50 +07:00
Vsevolod Kremianskii
0ebd9f12bb feat: Implement audio playback in movies, refactor BikFile 2020-11-09 08:49:52 +07:00
Vsevolod Kremianskii
bd41a0ee59 build: Build with movie support by default 2020-11-08 22:04:54 +07:00
Vsevolod Kremianskii
1a50e274ff build: Enable libvideo compilation on Unix systems 2020-11-08 10:02:04 -05:00
Vsevolod Kremianskii
8545b1eb33 feat: Implement video playback using FFmpeg 2020-11-08 21:08:52 +07:00
Vsevolod Kremianskii
a182063e2e refactor: Add StreamReader and StreamWriter classes 2020-11-07 23:52:53 +07:00
Vsevolod Kremianskii
304520473b feat: Add bare in-game options and save/load menus 2020-11-07 12:43:30 +07:00
Vsevolod Kremianskii
07d13abbeb refactor: Rename game/gui/menu to game/gui/ingame 2020-11-07 10:47:13 +07:00
Vsevolod Kremianskii
f735bd673d feat: Load character attributes from blueprint and during chargen 2020-11-06 13:08:23 +07:00
Vsevolod Kremianskii
c4d31c6a51 feat: Add bare versions of the remaining in-game menus 2020-11-05 01:25:52 +07:00
Vsevolod Kremianskii
0d59555718 feat: Add bare inventory and character menus, refactor in-game menus 2020-11-03 11:01:59 +07:00
Vsevolod Kremianskii
47bb4f0e7e chore: Add a custom program icon 2020-11-02 22:53:29 +07:00
Vsevolod Kremianskii
39804cb4d2 feat: Change cursor based on the selected object 2020-11-01 14:26:25 +07:00
Vsevolod Kremianskii
bfe467dab0 chore: Replace Unicode copyright symbol with "(c)"
This is to improve code portability.
2020-10-31 16:19:51 +07:00
Vsevolod Kremianskii
1f769e90b1 build: Fix compilation error on Debian 2020-10-29 09:43:35 +07:00
Vsevolod Kremianskii
2542dc13e0 build: Implicitly link against Boost.System
This fixes a compilation error on Debian using GCC.
2020-10-29 09:31:28 +07:00
Vsevolod Kremianskii
bd41f7c9a2 refactor: Extract declarations from game/types.h
- Move MovementType to the Creature class
- Move CameraType and CameraStyle into the camera folder
- Move ObjectType into the object folder
2020-10-28 12:32:39 +07:00
Vsevolod Kremianskii
98e949783d refactor: Refactor HUD
- Remove context classes: HUD and overlays now query the Game object
- Remove debug functionality: I want to redesign it
2020-10-28 10:00:38 +07:00
Vsevolod Kremianskii
8994cfa26b feat: Add scaffolding for the role-playing system 2020-10-28 08:54:52 +07:00
Vsevolod Kremianskii
577c48293d refactor: Move Blueprints class to the blueprint folder 2020-10-28 08:32:16 +07:00
Vsevolod Kremianskii
3283ebd702 refactor: Move video code to a separate library 2020-10-28 08:28:00 +07:00
Vsevolod Kremianskii
25bfe66cdd feat: Add scaffolding for video playback 2020-10-28 01:15:37 +07:00
Vsevolod Kremianskii
6dbbd46deb refactor: Confine OpenGL calls to librender 2020-10-26 11:11:58 +07:00
Vsevolod Kremianskii
020c7387bf refactor: Split libsystem into multiple libraries
- Move each subsystem into a separate library
- Extract caches from ResourceManager to avoid circular dependencies
2020-10-26 09:21:21 +07:00
Vsevolod Kremianskii
82cf6e3384 feat: Implement party management 2020-10-25 11:48:03 +07:00
Vsevolod Kremianskii
456663f383 feat: Implement showPartySelectionGUI routine 2020-10-22 09:58:33 +07:00
Vsevolod Kremianskii
744a38e383 refactor: Transfer responsibility from the Game class to concrete GUIs 2020-10-20 08:52:54 +07:00
Vsevolod Kremianskii
ab02686b3c refactor: Remove most of the multiplayer game logic
I want to come up with a better architecture.
2020-10-19 22:04:29 +07:00
Vsevolod Kremianskii
3aa51c5d34 refactor: Make scene a separate namespace 2020-10-19 14:01:37 +07:00
Vsevolod Kremianskii
a0d7a6e485 refactor: Extract core folder into the system folder 2020-10-19 13:36:09 +07:00
Vsevolod Kremianskii
2880ddf93a refactor: Move MultiplayerMode into mp library 2020-10-19 13:30:08 +07:00
Vsevolod Kremianskii
b2338b15ee refactor: Extract multiplayer code into a separate library
This is to reduce coupling between singleplayer and multiplayer.
2020-10-19 13:23:39 +07:00
Vsevolod Kremianskii
9fbf529a64 refactor: Extract libsystem sources into system folder 2020-10-19 13:11:01 +07:00
Vsevolod Kremianskii
e8c0d1260f refactor: Refactor model scene nodes
- Extract animation code into the SceneNodeAnimator class
- Combine MeshSceneNode and LightSceneNode into ModelNodeSceneNode
- Make a ModelNodeSceneNode for every ModelNode
2020-10-17 15:55:07 +07:00
Vsevolod Kremianskii
c134ebd1f3 feat: Initial animated camera implementation 2020-10-15 22:12:22 +07:00
Vsevolod Kremianskii
51de55b6bf feat: Implement standard dialog camera angles 2020-10-14 16:56:27 +07:00
Vsevolod Kremianskii
975e53d1cc refactor: Extract findPortrait to a separate file 2020-10-12 07:58:35 +07:00
Vsevolod Kremianskii
b295610b4c refactor: Move color declarations to a separate header 2020-10-12 07:55:06 +07:00
Vsevolod Kremianskii
6061b325e2 refactor: Move util from game to audio namespace 2020-10-12 07:50:22 +07:00
Vsevolod Kremianskii
e0c75977d0 feat: Add placeholders for party management 2020-10-11 22:56:25 +07:00
Vsevolod Kremianskii
3575499033 test: Simplify unit test discovery 2020-10-11 16:56:50 +07:00
Vsevolod Kremianskii
a57fe44f97 refactor: Refactor actions into a class hierarchy 2020-10-11 16:14:15 +07:00
Vsevolod Kremianskii
aece694246 refactor: Rename actions to actionexecutor 2020-10-11 14:16:09 +07:00
Vsevolod Kremianskii
2d0f19bc0a refactor: Extract action queue into a separate class 2020-10-11 14:05:41 +07:00
Vsevolod Kremianskii
8e3b5f931a test: Fix running unit tests 2020-10-11 12:55:10 +07:00
Vsevolod Kremianskii
016673a245 build: Rename libengine to libsystem 2020-10-11 12:04:36 +07:00
Vsevolod Kremianskii
a9ed02b120 build: Compile Program class as part of the reone executable 2020-10-11 11:53:17 +07:00
Vsevolod Kremianskii
36e6855c5d build: Extract game logic to a separate static library
This is decouple engine subsystems from the game logic.
2020-10-11 11:02:29 +07:00
Vsevolod Kremianskii
c795188eab build: Output executables and static libraries to separate directories 2020-10-11 10:50:55 +07:00