mse / RSOD (public) (License: CC0 and other licenses) (since 2025-03-01) (hash sha1)
Free software FPS engine
List of commits:
Subject Hash Author Date (UTC)
Allow free look in third-person a8b209cdd85ae914027ffd6c04990b75e9752578 MSE 2024-08-24 21:26:39
Auto-rotate third-person camera b9f034155274b8dc20b9f33d1fc39ce701017b0d MSE 2024-08-24 04:25:51
Use common math to rotate avatars 75e98c52899f17d8d511e733c1445f5eb69b738a MSE 2024-08-24 02:03:53
Correct minimap rotation in third-person 9bcf201c6b24b80b7eec2bb4b2ad296cd5d296ed MSE 2024-08-22 07:07:08
Rotate third-person agents independently of camera d4bcdb8ff8b47d6429117002a71881812c45a3dc MSE 2024-08-22 06:43:19
Remove browser launch from package-steam edb75b8fd4499e49f4a7893b0acf23bde9c8e5f9 MSE 2024-07-31 23:42:42
Work around a minimap regression acc3a99e8b96af34179824bcef7a11b0d539a499 MSE 2024-07-18 23:44:57
Check noautosave flag 185b4817614429cd43e8cdc1237fa5c9e635eff9 MSE 2024-07-12 01:04:06
Make MSAA a setting (default 0) e236f9370b87befa80f03118bd269ced22953868 MSE 2024-07-12 00:44:19
Use maxTurn for AI rotation speed b43198bfbc9a9cfe88caf6dabb40aaf55fa5e7b6 MSE 2024-07-05 17:34:02
Add -DNO_OPENGL3, which seems to help with building for Windows 3fc75eb3ce6186e4fe34a155b138ac6bfaea74e4 MSE 2024-07-03 17:32:43
Add sheen to water edge ecb869a7849857e06f83b3e58a7abc118badcf95 MSE 2024-07-02 23:33:16
Copy globals from multiple convos on new game (enables 3D title screens) b7af9cf230da946e04edf1e3e2ed6731b9bfcfbc MSE 2024-07-02 04:52:46
Work around world floor regression 46115bf455166ca407a8e99babbb0b0ea6f6bf5b MSE 2024-06-22 06:38:58
Make static models destroyable 82b787e2bc63b07d67cac610098580e7aafc054f MSE 2024-06-22 06:14:32
Make static avatars killable 76f5731a518512057d7868e6c3f4d24825d74005 MSE 2024-06-22 03:26:48
Add support for weapon-dependent avatar prims 4b59a1911ce1f13caddfe187db737914491ba6fe MSE 2024-06-20 06:00:45
Hide FPS in non-debug builds 3994b75c7c8ccf67d8d9437582d2533fb4d13dc4 MSE 2024-06-19 04:45:32
De-hardcode data path for shaders 648b298f390f039c44f4f23aa8fdd2e5d2650df6 MSE 2024-06-16 19:01:24
Hide reserve ammo count when there is none 09c6e3131b04936949f1310e5fd15179b29c5c4f MSE 2024-06-12 23:02:55
Commit a8b209cdd85ae914027ffd6c04990b75e9752578 - Allow free look in third-person
Author: MSE
Author date (UTC): 2024-08-24 21:26
Committer name: MSE
Committer date (UTC): 2024-08-24 21:26
Parent(s): b9f034155274b8dc20b9f33d1fc39ce701017b0d
Signer:
Signing key:
Signing status: N
Tree: 327930321e1df810d00e06be6c3cbfb2a946cc4b
File Lines added Lines deleted
src/rsod.cpp 8 3
File src/rsod.cpp changed (mode: 100644) (index 2156a2d..4733c22)
... ... void Render(){
3463 3463 void FirstPersonLoop( double d ){ void FirstPersonLoop( double d ){
3464 3464 linalg::vec<double,3> player_translation = { 0.0, 0.0, 0.0 }; linalg::vec<double,3> player_translation = { 0.0, 0.0, 0.0 };
3465 3465
3466 static bool bobbing = false;
3466 static bool autorotate = false, bobbing = false;
3467 3467
3468 3468 if( dungeon.playerAgent && convo_main.screen.ids.empty() if( dungeon.playerAgent && convo_main.screen.ids.empty()
3469 3469 && !inputTarget ){ && !inputTarget ){
 
... ... void FirstPersonLoop( double d ){
3496 3496 0.0 0.0
3497 3497 } ); } );
3498 3498
3499 // Allow free look in third-person mode.
3500 if(fgl::mouseMoveX != 0 || fgl::mouseMoveY != 0 || rsx != 0.0f || rsy != 0.0f)
3501 autorotate = false;
3502
3499 3503 // Calculate rotation deltas. // Calculate rotation deltas.
3500 3504 double mf = -dungeon.mouseSpeed / std::max( dungeon.playerZoom, 1.0 ); double mf = -dungeon.mouseSpeed / std::max( dungeon.playerZoom, 1.0 );
3501 3505 double rx = fgl::mouseMoveY * mf + rsy * f * d; double rx = fgl::mouseMoveY * mf + rsy * f * d;
 
... ... void FirstPersonLoop( double d ){
3654 3658 // Move the player with directional input. // Move the player with directional input.
3655 3659 linalg::vec<float,2> move = { moveX, moveY }; linalg::vec<float,2> move = { moveX, moveY };
3656 3660 bool walking = linalg::length( move ) > dead_zone_left; bool walking = linalg::length( move ) > dead_zone_left;
3661 if(walking) autorotate = true;
3657 3662 float speed_factor = 1.0f; float speed_factor = 1.0f;
3658 3663
3659 3664 fdungeon::Agent *parentAgent = dungeon.playerAgent->parentAgent; fdungeon::Agent *parentAgent = dungeon.playerAgent->parentAgent;
 
... ... void FirstPersonLoop( double d ){
3834 3839 // Bob the weapon. // Bob the weapon.
3835 3840 bobbing = true; bobbing = true;
3836 3841 } }
3837 // Rotate the third-person camera about the player. TODO: Make the speed adjustable, adjust pitch, don't fight mouse/joystick input.
3838 {
3842 // Rotate the third-person camera about the player. TODO: Make the speed adjustable, adjust pitch.
3843 if(autorotate){
3839 3844 double yaw = dungeon.thirdPersonYawOffset; double yaw = dungeon.thirdPersonYawOffset;
3840 3845 double rdist = std::abs(std::atan2(std::sin(yaw), std::cos(yaw))); double rdist = std::abs(std::atan2(std::sin(yaw), std::cos(yaw)));
3841 3846 double rspeed = (1.0 - (rdist / M_PI)) * 1.5 * d; double rspeed = (1.0 - (rdist / M_PI)) * 1.5 * d;
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/mse/RSOD

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/mse/RSOD

Clone this repository using git:
git clone git://git.rocketgit.com/user/mse/RSOD

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main