2025-07-20 21:37 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000680Spring engineGeneralpublic2012-06-27 02:29
Reporterlurker 
Assigned Toabma 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000680: Adds full control to bonusshield, and renames it to flankingbonus
Description- default that can be set per mod
- can be specified in each .fbi
- can set per unit with GET functions in the script
- also adds a global experience multiplier
- allows negative damage
- four different modes:
   no flanking bonus
   global coords, mobile
   unit coords, mobile
   unit coords, locked
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files
  • diff file icon flankingbonus.diff (18,298 bytes) 2007-11-13 21:10 -
    Index: rts/Lua/LuaUnitDefs.cpp
    ===================================================================
    --- rts/Lua/LuaUnitDefs.cpp	(revision 4784)
    +++ rts/Lua/LuaUnitDefs.cpp	(working copy)
    @@ -773,11 +773,18 @@
     	ADD_FLOAT("waterline",     ud.waterline);
     	ADD_FLOAT("maxWaterDepth", ud.maxWaterDepth);
     
    +	ADD_FLOAT("flankingBonusMode", ud.flankingBonusMode);
    +	ADD_FLOAT("flankingBonusMax", ud.flankingBonusMax);
    +	ADD_FLOAT("flankingBonusMin", ud.flankingBonusMin);
    +	ADD_FLOAT("flankingBonusMode", ud.flankingBonusMax);
    +	ADD_FLOAT("flankingBonusDirX", ud.flankingBonusDir.x);
    +	ADD_FLOAT("flankingBonusDirY", ud.flankingBonusDir.y);
    +	ADD_FLOAT("flankingBonusDirZ", ud.flankingBonusDir.z);
    +	ADD_FLOAT("flankingBonusMobilityAdd", ud.flankingBonusMobilityAdd);
    +
     	ADD_INT("armorType",         ud.armorType);
     	ADD_FLOAT("armoredMultiple", ud.armoredMultiple);
     
    -	ADD_BOOL("bonusShieldEnabled", ud.bonusShieldEnabled);
    -
     	ADD_FLOAT("hitSphereScale",   ud.collisionSphereScale);
     	ADD_FLOAT("hitSphereOffsetX", ud.collisionSphereOffset.x);
     	ADD_FLOAT("hitSphereOffsetY", ud.collisionSphereOffset.y);
    Index: rts/Sim/ModInfo.cpp
    ===================================================================
    --- rts/Sim/ModInfo.cpp	(revision 4784)
    +++ rts/Sim/ModInfo.cpp	(working copy)
    @@ -116,6 +116,30 @@
     		// We already set the defaults so we should be able to ignore this
     		// Other optional mod rules MUST set their defaults...
     	}
    +
    +
    +	//Get the flanking bonus default option
    +	flankingBonusModeDefault = 1;
    +	try
    +	{
    +		TdfParser flankingBonusOptions("gamedata/modrules.tdf");
    +		flankingBonusModeDefault = atoi(flankingBonusOptions.SGetValueDef("1", "FLANKINGBONUS\\FlankingBonusModeDefault").c_str());
    +	} catch(content_error) // If the modrules.tdf isnt found
    +	{
    +		// We already set the defaults so we should be able to ignore this
    +		// Other optional mod rules MUST set their defaults...
    +	}
    +	//Get the mod's experience multiplier
    +	experienceMult = 1.0f;
    +	try
    +	{
    +		TdfParser experienceOptions("gamedata/modrules.tdf");
    +		experienceMult = atof(experienceOptions.SGetValueDef("1.0", "EXPERIENCE\\ExperienceMult").c_str());
    +	} catch(content_error) // If the modrules.tdf isnt found
    +	{
    +		// We already set the defaults so we should be able to ignore this
    +		// Other optional mod rules MUST set their defaults...
    +	}
     }
     
     CModInfo::~CModInfo() {}
    Index: rts/Sim/ModInfo.h
    ===================================================================
    --- rts/Sim/ModInfo.h	(revision 4784)
    +++ rts/Sim/ModInfo.h	(working copy)
    @@ -32,6 +32,9 @@
     	int fireAtKilled;	//1 = units fire at enemies running Killed() script, 0 = units ignore such enemies
     	int fireAtCrashing;	//1 = units fire at crashing aircrafts, 0 = units ignore crashing aircrafts
     
    +	int flankingBonusModeDefault;	//0=no flanking bonus;  1=global coords, mobile;  2=unit coords, mobile;  3=unit coords, locked
    +	float experienceMult;		//normally 1.0, 0.0 disables units getting automatice experience from attacks
    +
     };
     
     extern CModInfo *modInfo;
    Index: rts/Sim/Units/COB/CobInstance.cpp
    ===================================================================
    --- rts/Sim/Units/COB/CobInstance.cpp	(revision 4784)
    +++ rts/Sim/Units/COB/CobInstance.cpp	(working copy)
    @@ -105,6 +105,11 @@
     #define ALPHA_THRESHOLD          103 // set or get
     #define SET_WEAPON_UNIT_TARGET   106 // get (fake set)
     #define SET_WEAPON_GROUND_TARGET 107 // get (fake set)
    +#define FLANK_B_MODE			 120 // set or get
    +#define FLANK_B_DIR				 121 // set or get, set is through get for multiple args
    +#define FLANK_B_MOBILITY_ADD	 122 // set or get
    +#define FLANK_B_MAX_DAMAGE		 123 // set or get
    +#define FLANK_B_MIN_DAMAGE		 124 // set or get
     
     // NOTE: [LUA0 - LUA9] are defined in CobThread.cpp as [110 - 119]
     
    @@ -1180,6 +1185,25 @@
     		 
     		return weapon->AttackGround(pos, userTarget) ? 1 : 0;
     	}
    +	case FLANK_B_MODE:
    +		return unit->flankingBonusMode;
    +	case FLANK_B_DIR:
    +		switch(p1){
    +			case 1: return int(unit->flankingBonusDir.x * COBSCALE);
    +			case 2: return int(unit->flankingBonusDir.y * COBSCALE);
    +			case 3: return int(unit->flankingBonusDir.z * COBSCALE);
    +			case 4: unit->flankingBonusDir.x = (p2/(float)COBSCALE); return 0;
    +			case 5: unit->flankingBonusDir.y = (p2/(float)COBSCALE); return 0;
    +			case 6: unit->flankingBonusDir.z = (p2/(float)COBSCALE); return 0;
    +			case 7: unit->flankingBonusDir = float3(p2/(float)COBSCALE, p3/(float)COBSCALE, p4/(float)COBSCALE).Normalize(); return 0;
    +			default: return(-1);
    +		}
    +	case FLANK_B_MOBILITY_ADD:
    +		return int(unit->flankingBonusMobilityAdd * COBSCALE);
    +	case FLANK_B_MAX_DAMAGE:
    +		return int((unit->flankingBonusAvgDamage + unit->flankingBonusDifDamage) * COBSCALE);
    +	case FLANK_B_MIN_DAMAGE:
    +		return int((unit->flankingBonusAvgDamage - unit->flankingBonusDifDamage) * COBSCALE);
     	default:
     		if ((val >= GLOBAL_VAR_START) && (val <= GLOBAL_VAR_END)) {
     			return globalVars[val - GLOBAL_VAR_START];
    @@ -1435,6 +1459,24 @@
     			unit->alphaThreshold = float(param) / 255.0f;
     			break;
     		}
    +		case FLANK_B_MODE:
    +			unit->flankingBonusMode = param;
    +			break;
    +		case FLANK_B_MOBILITY_ADD:
    +			unit->flankingBonusMobilityAdd = (param / (float)COBSCALE);
    +			break;
    +		case FLANK_B_MAX_DAMAGE: {
    +			float mindamage = unit->flankingBonusAvgDamage - unit->flankingBonusDifDamage;
    +			unit->flankingBonusAvgDamage = (param / (float)COBSCALE + mindamage)*0.5f;
    +			unit->flankingBonusDifDamage = (param / (float)COBSCALE - mindamage)*0.5f;
    +			break;
    +		 }
    +		case FLANK_B_MIN_DAMAGE: {
    +			float maxdamage = unit->flankingBonusAvgDamage + unit->flankingBonusDifDamage;
    +			unit->flankingBonusAvgDamage = (maxdamage + param / (float)COBSCALE)*0.5f;
    +			unit->flankingBonusDifDamage = (maxdamage - param / (float)COBSCALE)*0.5f;
    +			break;
    +		}
     		default: {
     			if ((val >= GLOBAL_VAR_START) && (val <= GLOBAL_VAR_END)) {
     				globalVars[val - GLOBAL_VAR_START] = param;
    Index: rts/Sim/Units/Unit.cpp
    ===================================================================
    --- rts/Sim/Units/Unit.cpp	(revision 4784)
    +++ rts/Sim/Units/Unit.cpp	(working copy)
    @@ -37,6 +37,7 @@
     #include "Sim/Misc/QuadField.h"
     #include "Sim/Misc/RadarHandler.h"
     #include "Sim/Misc/Wind.h"
    +#include "Sim/ModInfo.h"
     #include "Sim/MoveTypes/AirMoveType.h"
     #include "Sim/MoveTypes/MoveType.h"
     #include "Sim/MoveTypes/ScriptMoveType.h"
    @@ -129,9 +130,12 @@
     	userAttackPos(0,0,0),
     	crashing(false),
     	cob(0),
    -	bonusShieldEnabled(true),
    -	bonusShieldSaved(10),
    -	bonusShieldDir(1,0,0),
    +	flankingBonusMode(0),
    +	flankingBonusDir(1,0,0),
    +	flankingBonusAvgDamage(1.4f),
    +	flankingBonusDifDamage(.5f),
    +	flankingBonusMobility(10),
    +	flankingBonusMobilityAdd(.01),
     	group(0),
     	lastDamage(-100),
     	lastFireWeapon(0),
    @@ -440,7 +444,7 @@
     	}
     
     	recentDamage*=0.9f;
    -	bonusShieldSaved+=0.005f;
    +	flankingBonusMobility+=flankingBonusMobilityAdd;
     
     	if(stunned)
     		return;
    @@ -648,7 +652,6 @@
     		}
     	}
     
    -	bonusShieldSaved += 0.05f;
     	residualImpulse *= 0.6f;
     
     	const bool oldCloak = isCloaked;
    @@ -772,19 +775,30 @@
     
     	float damage=damages[armorType];
     
    -	if(damage<0){
    -//		logOutput.Print("Negative damage");
    -		return;
    -	}
    -
    -	if (attacker) {
    -		SetLastAttacker(attacker);
    -		if (bonusShieldEnabled) {
    -			const float3 adir = (attacker->pos - pos).Normalize();
    -			bonusShieldDir += (adir * bonusShieldSaved);  //not the best way to do it(but fast)
    -			bonusShieldDir.Normalize();
    -			bonusShieldSaved = 0.0f;
    -			damage *= (1.4f - (0.5f * adir.dot(bonusShieldDir)));
    +	if(damage>0){
    +		if(attacker){
    +			SetLastAttacker(attacker);
    +			if (flankingBonusMode) {
    +				float3 adir=attacker->pos-pos;
    +				adir.Normalize();
    +				if (flankingBonusMode == 1) {		//mode 1 = global coordinates, mobile
    +					flankingBonusDir+=adir*flankingBonusMobility;
    +					flankingBonusDir.Normalize();
    +					flankingBonusMobility=0;
    +					damage*=flankingBonusAvgDamage-adir.dot(flankingBonusDir)*flankingBonusDifDamage;
    +				}else{
    +					float3 adirRelative;
    +					adirRelative.x = adir.dot(rightdir);
    +					adirRelative.y = adir.dot(updir);
    +					adirRelative.z = adir.dot(frontdir);
    +					if (flankingBonusMode == 2) {	//mode 2 = unit coordinates, mobile
    +						flankingBonusDir += adirRelative * flankingBonusMobility;
    +						flankingBonusDir.Normalize();
    +						flankingBonusMobility=0;
    +					}								//modes 2 and 3 both use this; 3 is unit coordinates, immobile
    +					damage*=flankingBonusAvgDamage-adirRelative.dot(flankingBonusDir)*flankingBonusDifDamage;
    +				}
    +			}
     		}
     	}
     
    @@ -817,56 +831,73 @@
     
     	restTime=0;
     
    -	float experienceMod=1;
    +	float experienceMod;
    +	experienceMod = modInfo->experienceMult;
     
    -	if(damages.paralyzeDamageTime){
    -		paralyzeDamage+=damage;
    -		experienceMod=0.1f;		//reduce experience for paralyzers
    -		if(health-paralyzeDamage<0){
    -			if(stunned)
    -				experienceMod=0;	//dont get any experience for paralyzing paralyzed enemy
    -			stunned=true;
    -			if(paralyzeDamage>health+(maxHealth*0.025f*damages.paralyzeDamageTime)){
    -				paralyzeDamage=health+(maxHealth*0.025f*damages.paralyzeDamageTime);
    +	if(damages.paralyzeDamageTime) {
    +		if (damages.paralyzeDamageTime > 0) {
    +			if (paralyzeDamage > health) {
    +				if(paralyzeDamage < health + (maxHealth*0.025f*damages.paralyzeDamageTime)) {
    +					//make sure the weapon can do any paralysis damage before adding it; can't just do the min or a weak paralysis weapon could undo a strong one
    +					paralyzeDamage = min((paralyzeDamage + damage), (health + (maxHealth*0.025f*damages.paralyzeDamageTime)));
    +					experienceMod *= 0.0f;	//no experience for extra paralysis
    +				}
    +			}else{
    +				paralyzeDamage+=damage;
    +				experienceMod *= 0.1f;		//reduce experience for paralyzers
    +				if (paralyzeDamage < health) {
    +					stunned = false;
    +				}
     			}
    +		}else{
    +			if (paralyzeDamage == 0) {
    +				experienceMod *= 0.0f;	//no experience when not healing
    +			}else{
    +				paralyzeDamage = max(0.0f, paralyzeDamage + damage);
    +				experienceMod *= 0.1f;
    +			}
     		}
     	} else {
    -		// Dont log overkill damage (so dguns/nukes etc dont inflate values)
    -		float statsdamage = std::min(health, damage);
    -		if (attacker)
    -			gs->Team(attacker->team)->currentStats.damageDealt += statsdamage;
    -		gs->Team(team)->currentStats.damageReceived += statsdamage;
    +		if (damage > 0) {
    +			// Dont log overkill damage (so dguns/nukes etc dont inflate values)
    +			float statsdamage = std::min(health, damage);
    +			if (attacker)
    +				gs->Team(attacker->team)->currentStats.damageDealt += statsdamage;
    +			gs->Team(team)->currentStats.damageReceived += statsdamage;
    +		}
     		health-=damage;
     	}
    -	recentDamage+=damage;
     
    -	if (attacker != 0 && !gs->Ally(allyteam, attacker->allyteam)) {
    -		attacker->AddExperience(0.1f * experienceMod
    -		                             * (power / attacker->power)
    -		                             * (damage + min(0.0f, health)) / maxHealth);
    -		ENTER_UNSYNCED;
    -		if (((!unitDef->isCommander && uh->lastDamageWarning+100<gs->frameNum) ||
    -		     (unitDef->isCommander && uh->lastCmdDamageWarning+100<gs->frameNum))
    -		    && (team == gu->myTeam) && !camera->InView(midPos,radius+50) && !gu->spectatingFullView) {
    -			logOutput.Print("%s is being attacked",unitDef->humanName.c_str());
    -			logOutput.SetLastMsgPos(pos);
    +	if (damage > 0) {
    +		recentDamage+=damage;
    +		if(attacker!=0 && !gs->Ally(allyteam,attacker->allyteam)){
    +			attacker->AddExperience(0.1f * experienceMod
    +										 * (power / attacker->power)
    +										 * (damage + min(0.0f, health)) / maxHealth);
    +			ENTER_UNSYNCED;
    +			if (((!unitDef->isCommander && uh->lastDamageWarning+100<gs->frameNum) ||
    +			     (unitDef->isCommander && uh->lastCmdDamageWarning+100<gs->frameNum))
    +			    && (team == gu->myTeam) && !camera->InView(midPos,radius+50) && !gu->spectatingFullView) {
    +				logOutput.Print("%s is being attacked",unitDef->humanName.c_str());
    +				logOutput.SetLastMsgPos(pos);
     
    -			if (unitDef->isCommander || uh->lastDamageWarning + 150 < gs->frameNum) {
    -				int soundIdx = unitDef->sounds.underattack.getRandomIdx();
    -				if (soundIdx >= 0) {
    -					sound->PlaySample(
    -						unitDef->sounds.underattack.getID(soundIdx),
    -						unitDef->isCommander? 4 : 2);
    +				if (unitDef->isCommander || uh->lastDamageWarning + 150 < gs->frameNum) {
    +					int soundIdx = unitDef->sounds.underattack.getRandomIdx();
    +					if (soundIdx >= 0) {
    +						sound->PlaySample(
    +							unitDef->sounds.underattack.getID(soundIdx),
    +							unitDef->isCommander? 4: 2);
    +					}
     				}
    -			}
     
    -			minimap->AddNotification(pos,float3(1,0.3f,0.3f),unitDef->isCommander? 1: 0.5f);	//todo: make compatible with new gui
    +				minimap->AddNotification(pos,float3(1,0.3f,0.3f),unitDef->isCommander? 1: 0.5f);	//todo: make compatible with new gui
     
    -			uh->lastDamageWarning=gs->frameNum;
    -			if(unitDef->isCommander)
    -				uh->lastCmdDamageWarning=gs->frameNum;
    +				uh->lastDamageWarning=gs->frameNum;
    +				if(unitDef->isCommander)
    +					uh->lastCmdDamageWarning=gs->frameNum;
    +			}
    +			ENTER_SYNCED;
     		}
    -		ENTER_SYNCED;
     	}
     
     	luaCallIns.UnitDamaged(this, attacker, damage, weaponId, !!damages.paralyzeDamageTime);
    @@ -2351,9 +2382,12 @@
     				CR_MEMBER(falling),
     				CR_MEMBER(fallSpeed),
     
    -				CR_MEMBER(bonusShieldEnabled),
    -				CR_MEMBER(bonusShieldSaved),
    -				CR_MEMBER(bonusShieldDir),
    +				CR_MEMBER(flankingBonusMode),
    +				CR_MEMBER(flankingBonusDir),
    +				CR_MEMBER(flankingBonusAvgDamage),
    +				CR_MEMBER(flankingBonusDifDamage),
    +				CR_MEMBER(flankingBonusMobility),
    +				CR_MEMBER(flankingBonusMobilityAdd),
     
     				CR_MEMBER(armoredState),
     				CR_MEMBER(armoredMultiple),
    Index: rts/Sim/Units/Unit.h
    ===================================================================
    --- rts/Sim/Units/Unit.h	(revision 4784)
    +++ rts/Sim/Units/Unit.h	(working copy)
    @@ -297,9 +297,12 @@
     	bool	falling;	//for units being dropped from transports (parachute drops)
     	float	fallSpeed; 
     
    -	float bonusShieldEnabled;		//defaults to true in UnitDefHandler
    -	float bonusShieldSaved;			//how much the bonus shield can turn upon an attack(zeroed when attacked, slowly increase)
    -	float3 bonusShieldDir;			//units takes less damage when attacked from this dir (encourage flanking fire)
    +	int flankingBonusMode;				//0=no flanking bonus;  1=global coords, mobile;  2=unit coords, mobile;  3=unit coords, locked
    + 	float3 flankingBonusDir;			//units takes less damage when attacked from this dir (encourage flanking fire)
    + 	float flankingBonusMobility;		//how much the lowest damage direction of the flanking bonus can turn upon an attack (zeroed when attacked, slowly increases)
    +	float flankingBonusMobilityAdd;		//how much ability of the flanking bonus direction to move builds up each frame
    +	float flankingBonusAvgDamage;		//average factor to multiply damage by
    +	float flankingBonusDifDamage;		//(max damage - min damage)/2
     
     	bool armoredState;
     	float armoredMultiple;
    Index: rts/Sim/Units/UnitDef.h
    ===================================================================
    --- rts/Sim/Units/UnitDef.h	(revision 4784)
    +++ rts/Sim/Units/UnitDef.h	(working copy)
    @@ -172,7 +172,11 @@
     	float armoredMultiple;
     	int armorType;
     
    -	bool bonusShieldEnabled;	// FIXME: remove this if the improved shield patch by ??? is committed
    +	int flankingBonusMode;				//0=no flanking bonus;  1=global coords, mobile;  2=unit coords, mobile;  3=unit coords, locked
    +	float3 flankingBonusDir;			//units takes less damage when attacked from this dir (encourage flanking fire)
    +	float flankingBonusMax;				//damage factor for the least protected direction
    +	float flankingBonusMin;				//damage factor for the most protected direction
    +	float flankingBonusMobilityAdd;		//how much the ability of the flanking bonus direction to move builds up each frame
     
     	UnitModelDef model;
     	float collisionSphereScale;
    Index: rts/Sim/Units/UnitDefHandler.cpp
    ===================================================================
    --- rts/Sim/Units/UnitDefHandler.cpp	(revision 4784)
    +++ rts/Sim/Units/UnitDefHandler.cpp	(working copy)
    @@ -20,6 +20,7 @@
     #include "Sim/Misc/CategoryHandler.h"
     #include "Sim/Misc/DamageArrayHandler.h"
     #include "Sim/Misc/SensorHandler.h"
    +#include "Sim/ModInfo.h"
     #include "Sim/Projectiles/ExplosionGenerator.h"
     #include "Sim/Weapons/WeaponDefHandler.h"
     #include "System/LogOutput.h"
    @@ -305,12 +306,18 @@
     	ud.captureSpeed   = udTable.GetFloat("captureSpeed",   ud.buildSpeed);
     	ud.terraformSpeed = udTable.GetFloat("terraformSpeed", ud.buildSpeed);
     
    +	ud.flankingBonusMode = udTable.GetFloat("flankingBonusMode", modInfo->flankingBonusModeDefault);
    +	ud.flankingBonusMax = udTable.GetFloat("flankingBonusMax", 1.9);
    +	ud.flankingBonusMin = udTable.GetFloat("flankingBonusMin", .9);
    +	ud.flankingBonusDir = udTable.GetFloat3("flankingBonusDir", float3(0.0f, 0.0f, 1.0f));
    +	ud.flankingBonusMobilityAdd = udTable.GetFloat("flankingBonusMobilityAdd", 0.01f);
    +
     	ud.armoredMultiple = udTable.GetFloat("damageModifier", 1.0f);
     	ud.armorType=damageArrayHandler->GetTypeFromName(ud.name);
     //	logOutput.Print("unit %s has armor %i",ud.name.c_str(),ud.armorType);
     
    -	ud.bonusShieldEnabled = udTable.GetBool("bonusShieldEnabled", true);
     
    +
     	ud.radarRadius    = udTable.GetInt("radarDistance",    0);
     	ud.sonarRadius    = udTable.GetInt("sonarDistance",    0);
     	ud.jammerRadius   = udTable.GetInt("radarDistanceJam", 0);
    Index: rts/Sim/Units/UnitLoader.cpp
    ===================================================================
    --- rts/Sim/Units/UnitLoader.cpp	(revision 4784)
    +++ rts/Sim/Units/UnitLoader.cpp	(working copy)
    @@ -151,7 +151,12 @@
     	unit->armorType=ud->armorType;
     	unit->floatOnWater = ud->floater || (ud->movedata && ((ud->movedata->moveType == MoveData::Hover_Move) || (ud->movedata->moveType == MoveData::Ship_Move)));
     	unit->maxSpeed = ud->speed/30.0;
    -	unit->bonusShieldEnabled = ud->bonusShieldEnabled;
    +	unit->flankingBonusMode = ud->flankingBonusMode;
    +	unit->flankingBonusDir = ud->flankingBonusDir;
    +	unit->flankingBonusMobility = ud->flankingBonusMobilityAdd * 1000;
    +	unit->flankingBonusMobilityAdd = ud->flankingBonusMobilityAdd;
    +	unit->flankingBonusAvgDamage = (ud->flankingBonusMax + ud->flankingBonusMin) * 0.5f;
    +	unit->flankingBonusDifDamage = (ud->flankingBonusMax - ud->flankingBonusMin) * 0.5f;
     	unit->decloakDistance = ud->decloakDistance;
     
     	if(ud->highTrajectoryType==1)
    
    diff file icon flankingbonus.diff (18,298 bytes) 2007-11-13 21:10 +

-Relationships
+Relationships

-Notes

~0001421

imbaczek (reporter)

your description is... lacking (I'm really, really generous here :grin:) please write a short explanation of everything important that you've changed. a set of short examples won't hurt, too.

~0001423

trepan (reporter)

I've got the patch applied and ready to commit (needed some edits
to avoid collisions with local changes I have made). Will commit it
as soon as I test it this evening.

~0001426

imbaczek (reporter)

I'd help test it, but without docs it's pretty hard to even guess what most of this means (and without reading the source, which I assume 99% of modders don't or won't do.) please put a more extensive explanation at least in the commit message, that's people are most likely to read anyway.

(BTW time to recruit changelog drones so Tobi won't have to spend a whole day updating it ;))

~0001429

tombom (reporter)

I'm up for updating the changelog.

~0001430

imbaczek (reporter)

cool! you can start whenever you want and can submit patches or whole sections to another ticket; or you could ask tobi for commit rights. (but that shouldn't stop you from helping, it'll just make it a little bit easier :))

~0001433

lurker (reporter)

Yeah I mentioned on the forum that documentation was forthcoming. Working on it right now, should have a good usage guide tonight.
+Notes

-Issue History
Date Modified Username Field Change
2007-11-13 21:10 lurker New Issue
2007-11-13 21:10 lurker File Added: flankingbonus.diff
2007-11-13 21:57 imbaczek Note Added: 0001421
2007-11-14 16:27 trepan Note Added: 0001423
2007-11-14 17:11 imbaczek Note Added: 0001426
2007-11-14 20:03 tombom Note Added: 0001429
2007-11-14 20:29 imbaczek Note Added: 0001430
2007-11-14 22:42 lurker Note Added: 0001433
2007-11-15 17:22 trepan Status new => resolved
2007-11-15 17:22 trepan Resolution open => fixed
2012-06-27 02:27 abma Status resolved => assigned
2012-06-27 02:27 abma Assigned To => abma
2012-06-27 02:29 abma Status assigned => resolved
+Issue History