Commit graph

91 commits

Author SHA1 Message Date
revility
f060e97aae pm_thirdperson cvar archive removed
This was done so pm_thirdperson wil always reset to 1 when starting the game.  If the game crashes or quits while in first person it was starting back up in it before.
2018-10-21 04:31:15 +02:00
revility
1f82525502 pm_projectileOrigin added
New cvar to enable and disable launching projectiles from the weapon's world model barrel joint and also towards the crosshair's position.  launchfrombarrel must be set to 0 in projectile def files to use.  Done incase a weapon doesn't need it or has issues using it in the future.  none currently do.
2018-10-21 04:31:15 +02:00
revility
d92edb81e2 pm_projectileorigin added
new cvar to enable and disable the new projectile direction correction for weapons.  check the weapon.cpp for more info.
2018-10-21 04:31:15 +02:00
revility
10be5f2713 pm_crossHairOrigin added
Changes cross hair trace line origin from the camera's origin to a joint on the player's model defined in player.cpp file
Done this way because pm_modelview cvar has some kind of over ride going on when the levels start.  Consider this a work  around fix.
2018-10-21 04:31:15 +02:00
revility
918d780d36 added pm_crossHairOrigin cvar
Changes cross hair trace line origin from the camera's origin to a joint on the player's model defined in player.cpp file
2018-10-21 04:31:15 +02:00
revility
63152f3283 Weapon firing bug fix
Not sure how or why it happened, but the code was causing the bow to use wrong cross hairs, and auto weapon switch.  I believe there was a mistake on my end when cleaning up the code in the player.cpp and playercursor.cpp files.
Additionally having a second weapon to use the soul cube hud notice is not needed as the planned weapon is not happening anytime soon.
2018-10-21 04:31:15 +02:00
revility
8d95330115 Added soulcube clone
Only the soul cube can display hud notifications when enough kills are done.  this adds support for a 2nd weapon to do so. weapon is not in 2010 but will be 2018 build.  Code should still be compatible with 2010 build.
2018-10-21 04:31:15 +02:00
revility
066c8b3263 always enable pm_modelview
fix pm_modelview resetting on map loads.  Cross hair fix.  Still needs some tweaks and test.
2018-10-21 04:31:15 +02:00
revility
5eb99fb857 Cleaned code
Removed commented code from early 2000's tests.  Was never used. 
Cleaned up my comments a bit too :)
2018-10-21 04:31:15 +02:00
revility
451cb994ee Removed commented out code
Removed commented out code.  Was from very old cross hair system back in the early 2000's.
2018-10-21 04:31:15 +02:00
revility
72f407bbd7 cvar_archive hdr, pm_modelview, pm_thirdperson
This should fix hdr always resetting every time the game is restarted, thirdperson view sometimes not enabled by default, and the need for pm_modelview to be turned on for cross hair trace line origin fix.
Also cleaned up formatting around hdr cvars, and third person camera cvars.
2018-10-21 04:31:15 +02:00
revility
825f5f8372 pm_modelview enabled by default
Enabling the pm_modelview and setting the correct joint in the player.cpp file corrects issues with the trace line used for creating thirdperson crosshair getting cut off early due to objects being to close.  Most mostly noticeable shooting around corners.
2018-10-21 04:31:15 +02:00
revility
e8744d3172 Headshot Frozen ragdoll bug fix
line 2403
2018-10-21 04:31:15 +02:00
revility
37780e0801 New shield int
tellishield is used in player.cpp as part of the shield/shield spell system.
Mostly used in game script to check if the shield is active or not.
2018-10-21 04:31:15 +02:00
revility
3a5de32467 launch projectile direction updated.
Further comments on changes to launching projectiles and "launchfrombarrel" key used in projectile defs.
2018-10-21 04:31:15 +02:00
revility
81931da8c5 Replaced stamina system with shield system
Stamina is now used for the player's shield spell.  hold down the old zoom key to activate while the player has stamina.  Calls are made to the player's script to UpdateSkin.  UpdateSkin is new and not apart of vanilla d3 or Rivensin 2010 build
Stamina use also is no longer associated with player's movement and does not adjust movement speed.
The telishield key is used via the player script file to check if active and change the torso animations to blocking/spell casting.
2018-10-21 04:31:15 +02:00
revility
864fa1fd3d Update Player.cpp
Added the telishield key for the player def and script to use.  This key disables the player taking damage and can be checked in the script for stuff like changing skins, etc.

cross hair fix:  pm_modelview .  This cvar changes the origin of the playerview to a joint for the crosshairs.  This is set to a joint close to the player weapons to prevent the trace line used for cross hairs stopping too early when shooting around corners. 
Additionally pm_modelview's axis is now the renderview axis and not the joint other wise the thirdperson crosshair is displayed in wrong directions.
pm_modelview is now on by default.
2018-10-21 04:31:15 +02:00
revility
d1093579ff Update Player.h
adds the telishield key for the player.def & script to use.  When set to 1, the player will take no damage.  Done this way so we can check it and also apply other effects such as player skin changing.
2018-10-21 04:31:15 +02:00
revility
dd30a38bb1 Update Weapon.cpp
launch from barrel is no longer needed for projectiles to launch from the weapon's barrel, and then to the thirdperson cross hair position.  This fixes the projectiles not launching to the center of the thirdperson cross and also fixes the offset when aiming too high or too low.
projectiles in weapon.def files need launchfrombarrel set to 0 for this work.  the crosshair offsets also need to be adjust in the cursor.gui file as each one offset manually in Rivensin/Ruiner 2010 build.
2018-10-21 04:31:15 +02:00
revility
85352e4a48 Update Actor.cpp
sdk side of the fix to stop ragdolls from freezing during a head shot.  Other parts were in the ai script files due too much sys.waits.
2018-10-21 04:31:15 +02:00
revility
22d4c82607 Update SysCvar.cpp
pm_modelview enabled by default. part of correcting the trace line origin used for the thirdperson crosshair.
2018-10-21 04:31:15 +02:00
Daniel Gibson
ef3b057ebd Remove SourceHook, use new common->SetCallback() instead 2018-09-30 05:21:12 +02:00
Daniel Gibson
40d9f20843 Fix another arrow-shooting Assertion 2018-09-02 03:42:59 +02:00
Daniel Gibson
b41ce2627c Fix Assertion in Engine when shooting Arrows
it was caused by decals of size 0 (when the arrow hits the floor)
2018-09-02 01:17:57 +02:00
Daniel Gibson
cdcb02b26e Make it build in Debugbuilds and only include sourcehook.h where needed 2018-08-27 22:15:30 +02:00
Daniel Gibson
bf931218cc Ruiner compiles 2018-08-27 15:13:36 +02:00
Daniel Gibson
0c717b0313 Import Ruiner source (doesn't build yet) 2018-08-27 15:13:17 +02:00
Daniel Gibson
4dd278d6fb Make game dll names and compiler defines for mods configurable
so mod authors can tell cmake to call it mymod.dll instead of base.dll
or d3xp.dll

and the compiler defines are also easily configurable now

I also added a comment to EndLevel.cpp, which was released with the GPL
source (and in d3xp/ it already existed in the SDK), but has not been
used to build the dlls.
2018-08-26 04:47:00 +02:00
Daniel Gibson
53db277bae Make it build as SDK
I created this repo from the original dhewm3 repo, but I used
git filter-branch to kill all the files that are not needed to just
build base.dll and d3xp.dll (or .so or .dylib or whatever).
So this is basically just the files the original Doom3 SDK had, but
taken from dhewm3 instead (and thus GPL licensed and patched for
64bit-support etc) + some dhewm3 specific stuff + CMakeLists.txt
to build them.

The git filter-branch details:

filter-branch -f --prune-empty --tree-filter /tmp/killkill.sh @

## /tmp/killkill.sh:

#!/bin/sh

find . -exec /tmp/removeothers.sh {} \;

exit 0

## /tmp/removeothers.sh:

#!/bin/bash

FNAME="$1"

if [[ $FNAME == \./\.git* ]] || [[ $FNAME == \./d3xp/* ]] || [[ $FNAME == \./game/* ]]
then
	#echo "ignoring $FNAME"
	exit 0
fi

if ! grep -Fxq "$FNAME" /tmp/d3sdklist.txt
then
	#echo "REMOVING $FNAME"
	rm -rf "$FNAME"
fi

exit 0

## /tmp/d3sdklist.txt was is just a textfile with one path per line with
   all the files (and directories!) I wanted to keep, like:

.
..
./sys/platform.h
./framework/Game.h
./config.h.in
./CMakeLists.txt
## ... and all the relevant files from the SDK
2018-08-26 01:43:10 +02:00
Tobias Frost
84e5ef45bc Some spelling error fixes found during Debian build
- s/allready/already
- s/Uknown/Unknown
- s/thier/their
2018-08-20 01:46:40 +02:00
Kalamatee
2fb870b13f import AROS changes 2018-08-20 01:46:39 +02:00
Daniel Gibson
86c634b55c Fix new[]/delete missmatches and memory leaks found by clang's ASAN
Sometimes memory was allocated with new[] but freed with delete instead
of delete[], which is wrong.
And there were some small memory leaks, too.
Furtunately clang's AddressSanitizer detected all that so I could easily
fix it.

(There seem to be some more small memory leaks which are harder to fix,
though)
2018-08-20 01:46:39 +02:00
Daniel Gibson
4ad1349113 Fix crash by assert in last RoE level (and maybe elsewhere)
The assertion in idBounds::operator-(const idBounds&) was triggered
from idWeapon::Event_LaunchProjectiles() (ownerBounds - projBounds)
It only happened when using the BFG.
So I added a check to make sure calling operator- is legal.

I guess this also caused #122
2018-08-20 01:46:39 +02:00
leffmann
5baf5deca7 make base build with Visual Studio 14 2018-08-20 01:46:39 +02:00
Daniel Gibson
34490bb875 Fix some compiler warnings (wrong types, superfluous checks, printf-fuckup) 2018-08-20 01:46:38 +02:00
Daniel Gibson
5e13e6f36f (Hopefully) fix crashes in MP if r_aspectRatio = -1, fix #70
While I couldn't reproduce the crash, according to the bugreport it
happens if renderSystem->GetScreenWidth()/Height() returned 0 - and
that is indeed the only plausible reason I can imagine for it.

So I check for that case and handle it gracefully by defaulting to
4:3 FOV values.
2018-08-20 01:46:38 +02:00
Tobias Frost
7b7c7a5238 Fixing some spelling errors: s/unkown/unknown, s/seperate/separate. (#107) 2018-08-20 01:46:38 +02:00
Daniel Gibson
385a1965e7 Guess x/y FOV/aspectratio from resolution
Added r_aspectratio -1 which means "auto" (as new default).
This mode sets fov_x and fov_y according to screen-width/height.
=> No need to set r_aspectratio manually anymore (assuming your display's
   pixels are about square).

The standard aspect ratios can still be enforced as before, though.
2018-08-20 01:46:37 +02:00
dhewg
8275299d7e More logging cleanup 2018-08-20 01:46:36 +02:00
dhewg
49067a82aa Get rid of Sys_FPU_StackIsEmpty()
Same as with Sys_FPU_GetState().
2018-08-20 01:46:35 +02:00
dhewg
16871256f8 Get rid of Sys_FPU_GetState()
This was only implemented with MSVC style asm.
Comments suggest that it was used to help catch invalid FOV calculations,
which were probably only happening with ancient compiler bugs.
2018-08-20 01:46:35 +02:00
dhewg
5aa122978d Don't try to extract libraries from gamepaks. 2018-08-20 01:46:34 +02:00
dhewg
e632cd030b Get rid of ID_DEMO_BUILD
There are no demo pk4s compatible to this 1.3.1 codebase.
2018-08-20 01:46:34 +02:00
dhewg
16657c0ce3 Rename PVS vars to match their type 2018-08-20 01:46:33 +02:00
dhewg
8dfc6df02a s/ReadDeltaLong/ReadDeltaInt/
to match the argument type
2018-08-20 01:46:33 +02:00
dhewg
8cd1580d60 s/WriteDeltaLong/WriteDeltaInt/
to match the return type
2018-08-20 01:46:33 +02:00
dhewg
431415c51c s/ReadLong/ReadInt/ to match the return type 2018-08-20 01:46:33 +02:00
dhewg
814abb55b9 s/WriteLong/WriteInt/ to match the argument type 2018-08-20 01:46:33 +02:00
Daniel Gibson
ce87a8904c Remove longs from game/ and d3xp/
(Except for handling of longs in TypeInfo and win32-only Maya import stuff).

sizeof(long) == sizeof(int) on x86 and win64,
but not on 64bit (x86_64) linux/unix/osx/.. so they should be avoided.
2018-08-20 01:46:33 +02:00
Daniel Gibson
5c08cb0140 Fix PVS calculations on 64bit systems
Monsters got stuck in same places of d3xp because PVS calculations
returned that they were not in the players PVS.
This only happened on LP64 systems like Unix/Linux amd64 where
sizeof(long) == 8 - it did not happen on Win64 because it's LLP64, i.e.
sizeof(long) == 4 (like on x86 32bit).

Bit fiddling code in Pvs.cpp seemed to assume that sizeof(long) == 4
like on win32.

Fixes #7.
2018-08-20 01:46:33 +02:00