Vanilla List Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
patch: true wall wrap support, custom wall behaviour, custom orbits
I don't know which format is best, so I'm including the patch in two
formats, the unified format, and the contextual format.
The patch is relative to Vanilla-2.9pl5.
I've placed the patches at the following URL's because it seems EZLM
doesn't like "messages longer than 40,000 bytes"... grrr...
http://mark.mielke.cc/netrek/vanilla-2.9pl5/context_diff.patch
http://mark.mielke.cc/netrek/vanilla-2.9pl5/unified_diff.patch
High level summary of patch:
- true wall wrap support:
+ continuous wrap instead of rounding to the nearest GWIDTH for
ships, torps, plasmatorps.
+ PFSEEN (as well as the alert statuses), tractor beams, torpedo tracking,
torpedo proximity explosion, damage from exploding torpedoes,
damage from planets, ship explosions, detonate others, orbit planets,
phasers, and player/planet locks all work across borders.
+ client updating for players, torpedoes, plasmas, and phasers on the other
side of the border, but visible from my tactical occurs properly. This
requires client side support.
+ torpedoes, using short packets, get displayed at the correct pixel
locations even without client side support.
+ the robots understand galaxy wrap and try to be smart about it.
- custom wall behaviour for torpedoes and ships:
+ wall behaviour only has effect when wrap_galaxy == 0.
+ when ship_wall_behaviour requires a ship to explode (16 + ?), the
"reason" for death is KPROVIDENCE.
+ addition of the following define in config.h.in:
#define CUSTOM_WALL_BEHAVIOUR
/* CUSTOM_WALL_BEHAVIOUR - Enable code
that will allow .sysdef configurable changes
to the wall collision code when show_galaxy
is turned off.
*/
+ addition of the following lines to the end of docs/sample_sysdef:
# CUSTOM_WALL_BEHAVIOUR:
#
# For both of the following, the following actions can be defined:
# 0 = Traditional (whatever is the traditional behaviour)
# 1 = Bounce (for ships, this is a smarter bounce)
# 2 = Pass Through (allow object to go outside bounds)
#
# You can also add 16 to the value to set an "explode" flag. Usually
# torpedoes should explode when they hit the wall,
#
SHIP_WALL_BEHAVIOUR=0
TORP_WALL_BEHAVIOUR=0
+ smarter bounce for ships means that the p_desdir gets bounced separate
from the p_dir. The effect is more predictable. Previously, the bounce
would lose the p_desdir information.
- custom orbits:
+ addition of the following define in config.h.in:
#define CUSTOM_ORBITS
/* CUSTOM_ORBITS - Enable code that will
allow .sysdef configurable changes to the
orbit code for ships orbitting planets.
*/
+ addition of the following lines to the end of docs/sample_sysdef:
# CUSTOM_ORBITS:
#
# 0 = Traditional (clockwise only)
# 1 = Counter clockwise only
# 2 = Random
# 3 = Intelligent
#
ORBIT_BEHAVIOUR=0
+ this takes up PFORBITREVERSE=0x20000000 in player.p_flags... is this bad?
it would likely be possible to guess the orbit direction based on the
offset from the planet quite efficiently... but i didn't do it that way
right now.
- tractor beam code re-written, but no change in effect right now as was
previously proposed.
I hope these changes are in a satisfactory format. There were a very small
amount of random code fixes as well included in here. All quite minor.
mark
--
mark@mielke.cc/markm@ncf.ca/markm@nortelnetworks.com __________________________
. . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder
|\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ |
| | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada
One ring to rule them all, one ring to find them, one ring to bring them all
and in the darkness bind them...
http://mark.mielke.cc/
message/external-body
message/external-body