Commit graph

30 commits

Author SHA1 Message Date
zicodxx 49649ab697 calling scrape_object_on_wall in each case of HIT_WALL more reliable to properly do hazard surface damage and prevent weapon objects from possibly sliding against walls 2011-11-24 11:30:29 +01:00
zicodxx fa85aa820d By using fixed distance bumping for fix_illegal_wall_intersection making the whole process much more reliable on sharp edges 2011-06-17 00:33:42 +02:00
zicodxx 1a97660653 for fix_illegal_wall_intersection() try using the distance we moved to move out from the wall. Just in case it's a sane value, i.e. > 0 and <= obj->size/2 2011-05-19 11:49:47 +02:00
zicodxx 42fbf5a5e6 crap ... fix for last commit - conditional check for fix_illegal_wall_intersection was wrong... 2011-05-19 01:35:41 +02:00
zicodxx 6f4ad8eef3 Improvement for fix_illegal_wall_interesection(): Move away from wall in right angle - not towards center. This improves the bumping in many situations and prevents ship getting stuck in small segments. Simplified and optimized code as well and removed check for degenerated Segments as not needed with this approach; Fixed some compiler warnings regarding set but unused variables 2011-05-19 01:25:36 +02:00
zicodxx cdbf6c0485 To compensate fewer FVI runs in lower FPS and wall penetration caused by strong forces allowed fix_illegal_wall_intersection() to move an object out of the wall half it's size improving the collisions once more 2011-05-04 13:06:27 +02:00
zicodxx 609bd15fd1 Since current approach to improve wall collisions prevented the player to enter segments which basically are too small for the player ship, added simple bumping function via object_intersects_wall(); Also when validating segments check for segment degeneration outside the editor build, too and set flag in segment structure for all different purposes but right now helps us to disable bumping when encountering degenerated segments and not break such levels 2011-05-04 02:15:07 +02:00
zicodxx ee9ac80b62 Bit more safeguarding in find_plane_line_intersection() and as a result less agressive but more beautiful back-bumping on illegal wall interesections; Scaling of movement from PhysTime to FrameTime now done with vector math functions 2011-04-13 21:08:08 +02:00
zicodxx 82edf638fe When sliding along a wall keep wall_part sane to ensure good velocity for slide 2011-04-07 22:49:39 +02:00
zicodxx 2bbbabb078 Another rework for anti-stuck-bumping: Execute after calculation of velocity and add fvi check to make sure we deal with an actual wall collision 2011-03-27 18:01:14 +02:00
zicodxx 8cff6ca835 Again reworked new bump hack to only apply when fate == HIT_WALL (to not break level SKYBOX) and made bumping by distance between object position and wall hit point; Removed/handled some safety checks in find_plane_line_intersection() to make sliding along joining edges smoother again while bad values *should* be handled in pyhsics.c and not make object warp-crashing tru the whole level or stuck in walls (fvi code should still be rewritten tho) 2011-03-14 11:07:36 +01:00
zicodxx c1e4e9c3d7 Moved all these unsorted global cheat variables to a handy structure; Simplified reading of the cheats without trying to make it complicated so no one finds them (everyone can get the source); Removed one or two cheats which carry more garbage than they are worth; Added replacement for the bittersweet cheat; Made FPS Counter an option of Graphics menu 2011-02-14 22:27:02 +01:00
zicodxx 54097a9a3e Added some new conditions to the bumping code: Only bump objects which can slide (alive robots and players) and added a count making sure this function can never get stuck in an infinite loop 2011-01-24 20:45:59 +01:00
zicodxx 273d0b0dbe Added some new conditions to the bumping code: Only bump objects which can slide (alive robots and players) and added a count making sure this function can never get stuck in an infinite loop 2011-01-24 20:37:45 +01:00
zicodxx 6263db8521 Revamped what previously was the BUMP_HACK by checking if an object is actually intersecting a segment and move it out towards segment center just after the initial object movement composed by fvi and before velocity is made - should make inaccurate wall collisions a bit smoother and prevent objects from goind inside or through walls, too 2011-01-24 15:26:06 +01:00
zicodxx 5b6c028c60 Increasing the collision count for objects so there can be 8 for all objects; also do not increase count when colliding with a powerup as it should not change our movement 2011-01-23 11:59:46 +01:00
zicodxx 134f6dc388 In do_physics_sim() only set velocity from movement for certain objects which actually do collisions like Player or Robots - otherwise we might be able to shoot down projectiles or produce other unfortunate glitches 2010-02-05 18:49:24 +00:00
zicodxx f1544295dd Adjusted D1 Lifter collision damage according to D2 to scale with FPS as Melee combats can happen in every frame; Actually set velocity from movement when colliding with objects 2009-01-13 01:19:19 +00:00
zicodxx 8466399451 Took out the disable_new_fvi-hack. After all we do not need that specific optimisation anymore and also without it we can have more accurate collisions with non-player objects. After playtesting for a while let's just do this. 2008-11-22 00:43:59 +00:00
zicodxx 2043c19d60 Update object segment after object position interpolation. This is always done in DEBUG, but not in RELEASE, where further movement would break at segment check 2008-10-01 11:53:27 +00:00
zicodxx 63d2c4a2cf Added new function to calculate common timesteps; Increased MAXIMUM_FPS to 200 for release and 1000 for debug; Used fixed sim_time for do_physics_sim and Interpolating to ensure collisions stay accurate at high FPS; New code and faster code for dot products by The_Lion; Disabled Nice-FPS and common Frame-Loop if VSync is active; More accurate delta timer for mouse (consider overhead); Added SDL_(Un)LockAudio for old SDL Audio interface; General support for up to 16 mouse buttons; Code cleanup; Made some AI movement and Player shaking FPS-independent 2008-09-30 00:07:07 +00:00
zicodxx 3192ab5b54 Fixing collision bugs; Cleaning hudmsg.h; Solving death sequence timer without GameTime and removed another global 2008-04-13 13:14:19 +00:00
zicodxx a172315d4a Implemented Console-style game logging system to print graphics, to stdout and gamelog.txt; Added structure to keep values for descent.cfg; Added aspect and Texture Filtering to descent.cfg; Removed mono code - printing important stuff over console; Removed some obsolete or very common defines; Code cleanup and small fixes 2008-04-06 20:23:28 +00:00
zicodxx 285da809a8 Code cleanup - old/unused/obsolete multiplayer code and more 2007-12-29 14:18:49 +00:00
md2211 d393f32eed * Removed executable flag on most files
* Reverted value of SOUND_MAX_VOLUME
2007-09-21 19:06:05 +00:00
zicodxx 4902db8884 Apply BUMP_HACK on walls only 2007-08-28 22:53:37 +00:00
zicodxx e8771e7d0e FindArg cleanup; Removed remnants of Observer-mode 2007-07-18 21:36:53 +00:00
zicodxx 3a2a5a0bd6 ARM CPU support with words alignment and GP2X handheld support 2006-11-22 05:35:10 +00:00
zicodxx dc63a0f373 allow asserting objet to none if player is dead; code reformatting 2006-03-21 14:00:25 +00:00
zicodxx cde0244a09 initial import 2006-03-20 16:43:15 +00:00