Mircea Kitsune [Fri, 25 May 2012 20:45:50 +0000 (23:45 +0300)]
Add sys_frametime dependency for avelocity and properly name a float. Also reduce a duplicated line of code. Still doesn't fix angles not going quite all the way
Mircea Kitsune [Fri, 25 May 2012 20:28:36 +0000 (23:28 +0300)]
Set .avelocity instead of .angles for bezier curves rotation. For one this might be smoother, but the reason is to fix players falling off trains and becoming stuck entities as they rotate (which happens when changing angles / origin directly on push entities). This does not work right yet, but brings the train almost near its correct anagular destination
Mircea Kitsune [Thu, 24 May 2012 14:43:39 +0000 (17:43 +0300)]
Modify still turning code to accept rotation toward the next target for both bezier and non-bezier movement. This doesn't happen yet, and the turning is still incorrect
Mircea Kitsune [Thu, 24 May 2012 12:31:18 +0000 (15:31 +0300)]
Attempt to get overriding working, needs to be tested. Note that in order to avoid storing extra values for no reason, each path_corner tokenizes self.platmovetype when the train reaches it. It's a more logical implementation, but if it's harmful I'll store two more values for start_default and end_default
Mircea Kitsune [Thu, 24 May 2012 12:23:13 +0000 (15:23 +0300)]
Turn self.platmovetype into a string so it can accept either two values or one. Partly get path_corner to override train movement this way. Not ready yet.
Rudolf Polzer [Wed, 23 May 2012 11:00:31 +0000 (13:00 +0200)]
bulletconstant 0 now means only penentrate objects with density -1; bulletconstant -1 doesn't even penetrate these, but works like a regular projectile
Rudolf Polzer [Wed, 23 May 2012 07:45:15 +0000 (09:45 +0200)]
cvar: g_projectiles_keep_owner (keep owner when projectile is damaged), was previously controlled by g_ca for no reason; never allow a projectile's owner to become world or a non-player; fixes #1226
Mircea Kitsune [Tue, 22 May 2012 14:51:10 +0000 (17:51 +0300)]
Get rotation closer to the correct position, but for some reason it still doesn't work (it aims toward the next point but goes slightly under / over the final position sometimes)
Mircea Kitsune [Tue, 22 May 2012 14:32:01 +0000 (17:32 +0300)]
Use an origin code which is closer to the correct rotation. The train will aim toward the next point while standing now, but it still doesn't seem to reach full rotation before carrying on
Mircea Kitsune [Tue, 22 May 2012 13:13:08 +0000 (16:13 +0300)]
Don't use target2 for the curve point, use another field called curve. This is to avoid conflicting or limiting the 4 target triggers, as well as allowing netRadiant later on to draw the bezier curve line in order to preview it
Mircea Kitsune [Tue, 22 May 2012 11:13:12 +0000 (14:13 +0300)]
Make the train turn in the direction it's facing (still turning stays broken). Note that this is done by setting self.angles each tick, whereas self.avelocity would be smoother, but I can't figure the maths for that
Mircea Kitsune [Tue, 22 May 2012 10:50:34 +0000 (13:50 +0300)]
Try to make the train turn in the direction it's facing while waiting (no velocity-based turning yet). Fixed the conflict with the wait function but something still goes wrong
Mircea Kitsune [Mon, 21 May 2012 19:44:10 +0000 (22:44 +0300)]
Actually, don't treat a path_corner without a control point as an error. If you WANT a straight path, you can simply not include a control point and save an extra entity
Mircea Kitsune [Mon, 21 May 2012 19:41:18 +0000 (22:41 +0300)]
Subtract self.mins from the origin of the control point as well. Not sure if this is needed here too, but it looks more correct to me, and I assume it should be done like for the other origins. Movement is ready and working, now to get the train to rotate in the proper direction
Mircea Kitsune [Mon, 21 May 2012 19:08:24 +0000 (22:08 +0300)]
Execute fallback code if a path_corner for a beizer curves train doesn't have a control point as target2. This includes a warning and assuming a straight line for origin (otherwise the train would go to origin 0 0 0 and back). For some reason this still doesn't work well
Mircea Kitsune [Mon, 21 May 2012 18:55:44 +0000 (21:55 +0300)]
Integrate beizer curve movement for func_train (not yet finished). When this system is used (spawnfunc 1 on the train) each path_corner will require a path_corner or target_position as target2 to specify the control point of the curve. Thanks go to divVerent for the beizer curve code