[Freeciv-Dev] (PR#8483) killstack patch (fix 3)
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: |
undisclosed-recipients: ; |
Subject: |
[Freeciv-Dev] (PR#8483) killstack patch (fix 3) |
From: |
"LoboGris" <molv@xxxxxxxxxxxxxx> |
Date: |
Tue, 13 Apr 2004 17:42:20 -0700 |
Reply-to: |
rt@xxxxxxxxxxx |
<URL: http://rt.freeciv.org/Ticket/Display.html?id=8483 >
Description: optional killstack
If this is set to 1, all units in the same tile of a killed unit will
be killed (unless they are on a fortress, airbase or city). This is the
freeciv default.
If this options is set to 0, units are killed one by one,
except by nuclear weapons, of course.
Observation: common/packets.def was modified. Don't forget to run
common/generate_packets.py after patch applied.
Fix 3:
- added an "add-cap(killstack)" flag in packets.def.
Fix 2:
- Only killstack is here. damage has been removed.
- client now has awareness of this option (client/packhand.c)
- Check of valid killstack value when loading rulesets. If not valid,
killstack is enabled (the default).
- history/game.rulesets now has this option.
diff -Nur freeciv-orig-cvs/client/packhand.c freeciv-killstack/client/packhand.c
--- freeciv-orig-cvs/client/packhand.c 2004-04-02 20:28:43.000000000 -0300
+++ freeciv-killstack/client/packhand.c 2004-04-12 00:15:04.000000000 -0300
@@ -2655,6 +2655,7 @@
game.rgame.granary_food_inc = packet->granary_food_inc;
game.rgame.tech_cost_style = packet->tech_cost_style;
game.rgame.tech_leakage = packet->tech_leakage;
+ game.rgame.killstack = packet->killstack;
for (i = 0; i < MAX_VET_LEVELS; i++) {
game.trireme_loss_chance[i] = packet->trireme_loss_chance[i];
diff -Nur freeciv-orig-cvs/common/combat.c freeciv-killstack/common/combat.c
--- freeciv-orig-cvs/common/combat.c 2004-03-17 21:39:51.000000000 -0300
+++ freeciv-killstack/common/combat.c 2004-04-12 00:02:11.000000000 -0300
@@ -662,5 +662,6 @@
{
return !(map_get_city(x, y) != NULL
|| map_has_special(x, y, S_FORTRESS)
- || map_has_special(x, y, S_AIRBASE));
+ || map_has_special(x, y, S_AIRBASE)
+ || !(game.rgame.killstack));
}
diff -Nur freeciv-orig-cvs/common/game.h freeciv-killstack/common/game.h
--- freeciv-orig-cvs/common/game.h 2004-03-27 20:26:37.000000000 -0300
+++ freeciv-killstack/common/game.h 2004-04-12 00:02:11.000000000 -0300
@@ -203,6 +203,8 @@
* Advances given to all players at game start.
*/
int global_init_techs[MAX_NUM_TECH_LIST];
+
+ int killstack;
} rgame;
struct {
diff -Nur freeciv-orig-cvs/common/packets.def
freeciv-killstack/common/packets.def
--- freeciv-orig-cvs/common/packets.def 2004-04-09 20:29:59.000000000 -0300
+++ freeciv-killstack/common/packets.def 2004-04-13 21:33:39.000000000
-0300
@@ -968,6 +968,8 @@
UINT8 tech_leakage;
TECH_LIST global_init_techs[MAX_NUM_TECH_LIST];
+ UINT8 killstack; add-cap(killstack)
+
UINT8 trireme_loss_chance[MAX_VET_LEVELS]; add-cap(veteran)
UINT8 work_veteran_chance[MAX_VET_LEVELS]; add-cap(veteran)
UINT8 veteran_chance[MAX_VET_LEVELS]; add-cap(veteran)
diff -Nur freeciv-orig-cvs/data/civ1/game.ruleset
freeciv-killstack/data/civ1/game.ruleset
--- freeciv-orig-cvs/data/civ1/game.ruleset 2004-03-27 20:26:38.000000000
-0300
+++ freeciv-killstack/data/civ1/game.ruleset 2004-04-12 00:02:11.000000000
-0300
@@ -79,3 +79,12 @@
improvement_factor = 1
unit_factor = 1
total_factor = 100
+
+[combat_rules]
+;If this is set to 1, all units in the same tile of a killed unit will
+;be killed (unless they are on a fortress, airbase or city). This is the
+;freeciv default.
+;If this options is set to 0, units are killed one by one,
+;except by nuclear weapons, of course.
+killstack = 1
+
diff -Nur freeciv-orig-cvs/data/civ2/game.ruleset
freeciv-killstack/data/civ2/game.ruleset
--- freeciv-orig-cvs/data/civ2/game.ruleset 2004-03-27 20:26:39.000000000
-0300
+++ freeciv-killstack/data/civ2/game.ruleset 2004-04-12 00:02:11.000000000
-0300
@@ -79,3 +79,12 @@
improvement_factor = 1
unit_factor = 1
total_factor = 100
+
+[combat_rules]
+;If this is set to 1, all units in the same tile of a killed unit will
+;be killed (unless they are on a fortress, airbase or city). This is the
+;freeciv default.
+;If this options is set to 0, units are killed one by one,
+;except by nuclear weapons, of course.
+killstack = 1
+
diff -Nur freeciv-orig-cvs/data/default/game.ruleset
freeciv-killstack/data/default/game.ruleset
--- freeciv-orig-cvs/data/default/game.ruleset 2004-03-27 20:26:39.000000000
-0300
+++ freeciv-killstack/data/default/game.ruleset 2004-04-12 00:02:11.000000000
-0300
@@ -84,3 +84,12 @@
improvement_factor = 1
unit_factor = 1
total_factor = 100
+
+[combat_rules]
+;If this is set to 1, all units in the same tile of a killed unit will
+;be killed (unless they are on a fortress, airbase or city). This is the
+;freeciv default.
+;If this options is set to 0, units are killed one by one,
+;except by nuclear weapons, of course.
+killstack = 1
+
diff -Nur freeciv-orig-cvs/data/helpdata.txt freeciv-killstack/data/helpdata.txt
--- freeciv-orig-cvs/data/helpdata.txt 2003-12-24 01:30:41.000000000 -0300
+++ freeciv-killstack/data/helpdata.txt 2004-04-12 00:02:11.000000000 -0300
@@ -899,6 +899,9 @@
[help_combat]
name = _("Combat")
text = _("\
+Default Combat Rules
+--------------------- \
+"), _("\
When one unit attacks another unit, either the attacker will be \
destroyed, or the defender will be destroyed -- never both (unless \
the attacker was a missile). The outcome depends on several \
@@ -993,6 +996,19 @@
defender.\
")
+[help_combat_modifying]
+name = _(" Modifying Combat Rules")
+text = _("
+Modifying Combat Rules
+--------------------- \
+"), _("\
+The combat rules described before can be modified by changing the \
+following modifiers in game.ruleset, section combat_rules: \
+"), _("\
+ - killstack. (default: 1) If set to 0, units in the same tile of a \
+lost defender are not destroyed. \
+")
+
[help_combat_example_1]
name = _(" Combat example 1")
text = _("\
diff -Nur freeciv-orig-cvs/data/history/game.ruleset
freeciv-killstack/data/history/game.ruleset
--- freeciv-orig-cvs/data/history/game.ruleset 2004-03-27 20:26:40.000000000
-0300
+++ freeciv-killstack/data/history/game.ruleset 2004-04-12 00:17:17.000000000
-0300
@@ -84,3 +84,11 @@
improvement_factor = 1
unit_factor = 1
total_factor = 100
+
+[combat_rules]
+;If this is set to 1, all units in the same tile of a killed unit will
+;be killed (unless they are on a fortress, airbase or city). This is the
+;freeciv default.
+;If this options is set to 0, units are killed one by one,
+;except by nuclear weapons, of course.
+killstack = 1
diff -Nur freeciv-orig-cvs/server/ruleset.c freeciv-killstack/server/ruleset.c
--- freeciv-orig-cvs/server/ruleset.c 2004-03-27 20:26:40.000000000 -0300
+++ freeciv-killstack/server/ruleset.c 2004-04-12 00:11:43.000000000 -0300
@@ -2670,6 +2670,15 @@
lookup_tech_list(&file, "options", "global_init_techs",
game.rgame.global_init_techs, filename);
+ /* Enable/Disable killstack */
+ game.rgame.killstack = secfile_lookup_int(&file, "combat_rules.killstack");
+ if (game.rgame.killstack != 0 && game.rgame.killstack != 1) {
+ freelog(LOG_ERROR, "Bad value %i for killstack. Using 1.",
+ game.rgame.killstack);
+ game.rgame.killstack = 1;
+ }
+
+
section_file_check_unused(&file, filename);
section_file_free(&file);
}
@@ -3078,6 +3087,7 @@
memcpy(misc_p.global_init_techs, game.rgame.global_init_techs,
sizeof(misc_p.global_init_techs));
+ misc_p.killstack = game.rgame.killstack;
lsend_packet_ruleset_game(dest, &misc_p);
}
- [Freeciv-Dev] Re: (PR#8483) killstack and damage patch, (continued)
- [Freeciv-Dev] Re: (PR#8483) killstack and damage patch, imbaczek@xxxxxxxxxxxxxx, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack and damage patch, Per I. Mathisen, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack and damage patch, Jason Short, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack and damage patch, LoboGris, 2004/04/11
- [Freeciv-Dev] (PR#8483) killstack patch (fix 2), LoboGris, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 2), Mike Kaufman, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 2), LoboGris, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 2), LoboGris, 2004/04/11
- [Freeciv-Dev] Re: (PR#8483) killstack and damage patch, Raimar Falke, 2004/04/12
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 2), Jason Short, 2004/04/12
- [Freeciv-Dev] (PR#8483) killstack patch (fix 3),
LoboGris <=
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 3), LoboGris, 2004/04/14
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 3), Jason Short, 2004/04/14
- [Freeciv-Dev] Re: (PR#8483) killstack patch (fix 3), Raimar Falke, 2004/04/14
|
|