You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(187) |
Dec
(318) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(268) |
Feb
(231) |
Mar
(251) |
Apr
(372) |
May
(258) |
Jun
(197) |
Jul
(85) |
Aug
(175) |
Sep
(77) |
Oct
(213) |
Nov
(108) |
Dec
(53) |
| 2002 |
Jan
(38) |
Feb
(50) |
Mar
(32) |
Apr
(30) |
May
(34) |
Jun
(24) |
Jul
(42) |
Aug
(29) |
Sep
(58) |
Oct
(57) |
Nov
(73) |
Dec
(51) |
| 2003 |
Jan
(98) |
Feb
(64) |
Mar
(39) |
Apr
(38) |
May
(67) |
Jun
(39) |
Jul
(80) |
Aug
(21) |
Sep
(82) |
Oct
(85) |
Nov
(48) |
Dec
(30) |
| 2004 |
Jan
(29) |
Feb
(82) |
Mar
(43) |
Apr
(54) |
May
(60) |
Jun
(41) |
Jul
(23) |
Aug
(35) |
Sep
(55) |
Oct
(53) |
Nov
(18) |
Dec
(22) |
| 2005 |
Jan
(49) |
Feb
(28) |
Mar
(112) |
Apr
(60) |
May
(120) |
Jun
(67) |
Jul
(129) |
Aug
(67) |
Sep
(173) |
Oct
(221) |
Nov
(126) |
Dec
(198) |
| 2006 |
Jan
(172) |
Feb
(141) |
Mar
(54) |
Apr
(15) |
May
(60) |
Jun
(50) |
Jul
(79) |
Aug
(118) |
Sep
(114) |
Oct
(78) |
Nov
(56) |
Dec
(106) |
| 2007 |
Jan
(80) |
Feb
(268) |
Mar
(238) |
Apr
(222) |
May
(198) |
Jun
(178) |
Jul
(114) |
Aug
(234) |
Sep
(202) |
Oct
(141) |
Nov
(182) |
Dec
(446) |
| 2008 |
Jan
(260) |
Feb
(143) |
Mar
(210) |
Apr
(158) |
May
(342) |
Jun
(195) |
Jul
(309) |
Aug
(99) |
Sep
(154) |
Oct
(279) |
Nov
(555) |
Dec
(327) |
| 2009 |
Jan
(182) |
Feb
(289) |
Mar
(30) |
Apr
(51) |
May
(59) |
Jun
(304) |
Jul
(95) |
Aug
(50) |
Sep
(16) |
Oct
(44) |
Nov
(57) |
Dec
(27) |
| 2010 |
Jan
(59) |
Feb
(178) |
Mar
(220) |
Apr
(272) |
May
(297) |
Jun
(75) |
Jul
(104) |
Aug
(157) |
Sep
(247) |
Oct
(105) |
Nov
(100) |
Dec
(75) |
| 2011 |
Jan
(61) |
Feb
(32) |
Mar
(47) |
Apr
(79) |
May
(68) |
Jun
(247) |
Jul
(174) |
Aug
(98) |
Sep
(127) |
Oct
(198) |
Nov
(627) |
Dec
(421) |
| 2012 |
Jan
(521) |
Feb
(372) |
Mar
(489) |
Apr
(256) |
May
(143) |
Jun
(132) |
Jul
(74) |
Aug
(38) |
Sep
(42) |
Oct
(18) |
Nov
(58) |
Dec
(21) |
| 2013 |
Jan
(10) |
Feb
(10) |
Mar
(68) |
Apr
(50) |
May
(33) |
Jun
(17) |
Jul
(100) |
Aug
(111) |
Sep
(107) |
Oct
(21) |
Nov
(63) |
Dec
(53) |
| 2014 |
Jan
(29) |
Feb
(20) |
Mar
(39) |
Apr
(86) |
May
(122) |
Jun
(87) |
Jul
(7) |
Aug
(35) |
Sep
(40) |
Oct
(39) |
Nov
(21) |
Dec
(18) |
| 2015 |
Jan
(6) |
Feb
(56) |
Mar
(67) |
Apr
(24) |
May
(86) |
Jun
(5) |
Jul
(2) |
Aug
(17) |
Sep
(2) |
Oct
(14) |
Nov
(80) |
Dec
(97) |
| 2016 |
Jan
(9) |
Feb
(14) |
Mar
(3) |
Apr
(2) |
May
(45) |
Jun
(9) |
Jul
(5) |
Aug
(21) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(2) |
| 2017 |
Jan
(9) |
Feb
|
Mar
(7) |
Apr
|
May
(24) |
Jun
(35) |
Jul
(60) |
Aug
(44) |
Sep
(22) |
Oct
(1) |
Nov
(2) |
Dec
(2) |
| 2018 |
Jan
(21) |
Feb
(6) |
Mar
(1) |
Apr
(1) |
May
(11) |
Jun
(2) |
Jul
(1) |
Aug
(5) |
Sep
(11) |
Oct
(15) |
Nov
(4) |
Dec
(55) |
| 2019 |
Jan
(41) |
Feb
(9) |
Mar
(23) |
Apr
(25) |
May
(55) |
Jun
(82) |
Jul
(19) |
Aug
(81) |
Sep
(15) |
Oct
(11) |
Nov
(12) |
Dec
(37) |
| 2020 |
Jan
(11) |
Feb
(34) |
Mar
(77) |
Apr
(24) |
May
(6) |
Jun
(14) |
Jul
(4) |
Aug
(76) |
Sep
(141) |
Oct
(62) |
Nov
(46) |
Dec
(116) |
| 2021 |
Jan
(188) |
Feb
(134) |
Mar
(38) |
Apr
(55) |
May
(12) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
1
|
|
2
|
3
(4) |
4
(1) |
5
(1) |
6
|
7
(1) |
8
(5) |
|
9
(3) |
10
(3) |
11
|
12
|
13
|
14
|
15
|
|
16
(2) |
17
|
18
|
19
(5) |
20
(2) |
21
(2) |
22
|
|
23
|
24
(4) |
25
|
26
|
27
|
28
|
29
|
|
30
(5) |
31
(1) |
|
|
|
|
|
|
From: <cro...@li...> - 2003-03-31 05:16:43
|
Module Name: arch Committed By: temitchell Date: Mon Mar 31 05:16:42 UTC 2003 Modified Files: arch/player/class/Warrior: barbarian.arc barbarian.base.111.png barbarian.base.151.png mage.arc mage.base.111.png mage.base.151.png swashbuckl.arc swashbuckl.base.111.png swashbuckl.base.131.png swashbuckl.base.151.png swashbuckl.base.171.png warlock.arc warrior.arc warrior.base.111.png warrior.base.151.png Added Files: arch/player/class/Warrior: barbarian.base.112.png barbarian.base.152.png barbarian.clsc.112.png barbarian.clsc.152.png mage.base.112.png mage.base.152.png mage.clsc.112.png mage.clsc.152.png swashbuckl.base.112.png swashbuckl.base.152.png swashbuckl.clsc.112.png swashbuckl.clsc.152.png warrior.base.112.png warrior.base.152.png warrior.clsc.112.png warrior.clsc.152.png Log Message: -simple animation for warrior classes Start of context diffs Index: arch/player/class/Warrior/barbarian.arc diff -c arch/player/class/Warrior/barbarian.arc:1.2 arch/player/class/Warrior/barbarian.arc:1.3 *** arch/player/class/Warrior/barbarian.arc:1.2 Tue Mar 18 23:44:31 2003 --- arch/player/class/Warrior/barbarian.arc Sun Mar 30 21:16:41 2003 *************** *** 1,15 **** Object barbarian_class name barbarian randomitems barbarian_class_items ! face barbarian.171 anim barbarian.111 barbarian.131 barbarian.151 barbarian.171 facings 4 mina ! is_animated 0 type 37 Str 3 Dex 2 --- 1,20 ---- Object barbarian_class name barbarian randomitems barbarian_class_items ! face barbarian.151 anim barbarian.111 + barbarian.112 + barbarian.131 barbarian.131 barbarian.151 + barbarian.152 + barbarian.171 barbarian.171 facings 4 mina ! is_animated 1 ! anim_speed -1 type 37 Str 3 Dex 2 Index: arch/player/class/Warrior/barbarian.base.111.png Index: arch/player/class/Warrior/barbarian.base.112.png |
|
From: <cro...@li...> - 2003-03-30 23:43:45
|
Module Name: arch Committed By: temitchell Date: Sun Mar 30 23:43:44 UTC 2003 Modified Files: arch/player/race: dwarf_p.arc elf.arc gnome_p.arc halfling.arc human.arc northman.arc troll_player.arc wraithp.arc Log Message: -missed setting the face - hmm, they all look to the right anyway.. what's up with that? Start of context diffs Index: arch/player/race/dwarf_p.arc diff -c arch/player/race/dwarf_p.arc:1.5 arch/player/race/dwarf_p.arc:1.6 *** arch/player/race/dwarf_p.arc:1.5 Sun Mar 30 14:55:11 2003 --- arch/player/race/dwarf_p.arc Sun Mar 30 15:43:44 2003 *************** *** 1,7 **** Object dwarf_player name dwarf randomitems dwarf_player_items ! face dwarf_p.111 msg The Dwarves are the hardy scions of Mostrai. The traditional profession of the dwarf is --- 1,7 ---- Object dwarf_player name dwarf randomitems dwarf_player_items ! face dwarf_p.151 msg The Dwarves are the hardy scions of Mostrai. The traditional profession of the dwarf is Index: arch/player/race/elf.arc diff -c arch/player/race/elf.arc:1.6 arch/player/race/elf.arc:1.7 *** arch/player/race/elf.arc:1.6 Sun Mar 30 14:55:11 2003 --- arch/player/race/elf.arc Sun Mar 30 15:43:44 2003 *************** *** 2,8 **** race faerie name elf randomitems elf_player_items ! face elf.171 msg An Elf is a child of Faerie, a scion of Lythander. Being of Faerie, they heal more --- 2,8 ---- race faerie name elf randomitems elf_player_items ! face elf.151 msg An Elf is a child of Faerie, a scion of Lythander. Being of Faerie, they heal more Index: arch/player/race/troll_player.arc diff -c arch/player/race/troll_player.arc:1.9 arch/player/race/troll_player.arc:1.10 *** arch/player/race/troll_player.arc:1.9 Sun Mar 30 14:55:11 2003 --- arch/player/race/troll_player.arc Sun Mar 30 15:43:44 2003 *************** *** 2,8 **** name troll race troll randomitems troll_player_items ! face smalltroll.111 msg A Troll is a nasty creature, usually: a scion of Gnarg. They have amazing strength and amazing --- 2,8 ---- name troll race troll randomitems troll_player_items ! face troll_p.151 msg A Troll is a nasty creature, usually: a scion of Gnarg. They have amazing strength and amazing Index: arch/player/race/wraithp.arc diff -c arch/player/race/wraithp.arc:1.10 arch/player/race/wraithp.arc:1.11 *** arch/player/race/wraithp.arc:1.10 Sun Mar 30 14:55:11 2003 --- arch/player/race/wraithp.arc Sun Mar 30 15:43:44 2003 *************** *** 2,8 **** name Wraith race undead randomitems wraith_player_items ! face wraithp.111 msg A Wraith is a spirit which has made an evil bargain in order to persist after natural --- 2,8 ---- name Wraith race undead randomitems wraith_player_items ! face wraithp.151 msg A Wraith is a spirit which has made an evil bargain in order to persist after natural |
|
From: <cro...@li...> - 2003-03-30 23:08:21
|
Module Name: arch Committed By: temitchell Date: Sun Mar 30 22:55:11 UTC 2003 Modified Files: arch/player/race: dwarf_p.arc dwarf_p.base.111.png dwarf_p.base.131.png dwarf_p.base.151.png dwarf_p.base.171.png elf.arc elf.base.151.png elf.base.152.png elf.clsc.111.png elf.clsc.151.png elf.clsc.152.png gnome_p.arc gnome_p.base.151.png gnome_p.base.152.png halfling.arc halfling.base.151.png halfling.clsc.111.png halfling.clsc.131.png halfling.clsc.151.png halfling.clsc.171.png human.arc human.base.111.png human.base.151.png human.base.152.png human.clsc.111.png human.clsc.151.png human.clsc.152.png northman.arc troll_player.arc wraithp.arc wraithp.base.151.png wraithp.base.152.png wraithp.clsc.111.png wraithp.clsc.131.png wraithp.clsc.151.png wraithp.clsc.152.png wraithp.clsc.171.png Added Files: arch/player/race: dwarf_p.base.112.png dwarf_p.base.152.png dwarf_p.clsc.112.png dwarf_p.clsc.152.png elf.base.112.png elf.clsc.112.png halfling.base.112.png halfling.base.152.png halfling.clsc.112.png halfling.clsc.152.png human.base.112.png human.clsc.112.png viking.clsc.152.png wraithp.base.112.png wraithp.clsc.112.png Removed Files: arch/player/race: gnome.111.png Log Message: Checking in a bunch of player animations - starting with some race images. Start of context diffs Index: arch/player/race/dwarf_p.arc diff -c arch/player/race/dwarf_p.arc:1.4 arch/player/race/dwarf_p.arc:1.5 *** arch/player/race/dwarf_p.arc:1.4 Tue Mar 18 23:44:31 2003 --- arch/player/race/dwarf_p.arc Sun Mar 30 14:55:11 2003 *************** *** 24,36 **** mages. endmsg anim - dwarf_p.151 - dwarf_p.131 dwarf_p.111 dwarf_p.171 facings 4 mina ! is_animated 0 type 1 level 1 ac 10 --- 24,41 ---- mages. endmsg anim dwarf_p.111 + dwarf_p.112 + dwarf_p.131 + dwarf_p.131 + dwarf_p.151 + dwarf_p.152 + dwarf_p.171 dwarf_p.171 facings 4 mina ! is_animated 1 ! anim_speed -1 type 1 level 1 ac 10 Index: arch/player/race/dwarf_p.base.111.png Index: arch/player/race/dwarf_p.base.112.png Index: arch/player/race/elf.arc diff -c arch/player/race/elf.arc:1.5 arch/player/race/elf.arc:1.6 *** arch/player/race/elf.arc:1.5 Sat Mar 29 21:46:57 2003 --- arch/player/race/elf.arc Sun Mar 30 14:55:11 2003 *************** *** 22,28 **** endmsg anim elf.111 ! elf.111 elf.131 elf.131 elf.151 --- 22,28 ---- endmsg anim elf.111 ! elf.112 elf.131 elf.131 elf.151 *************** *** 32,37 **** --- 32,38 ---- facings 4 mina is_animated 1 + anim_speed -1 type 1 level 1 ac 10 Index: arch/player/race/elf.clsc.111.png Index: arch/player/race/gnome.111.png Index: arch/player/race/troll_player.arc diff -c arch/player/race/troll_player.arc:1.8 arch/player/race/troll_player.arc:1.9 *** arch/player/race/troll_player.arc:1.8 Tue Mar 18 23:44:31 2003 --- arch/player/race/troll_player.arc Sun Mar 30 14:55:11 2003 *************** *** 19,30 **** endmsg anim troll_p.111 troll_p.131 troll_p.151 troll_p.171 facings 4 mina ! is_animated 0 type 1 level 1 ac 10 --- 19,35 ---- endmsg anim troll_p.111 + troll_p.111 + troll_p.131 troll_p.131 troll_p.151 + troll_p.152 + troll_p.171 troll_p.171 facings 4 mina ! is_animated 1 ! anim_speed -1 type 1 level 1 ac 10 Index: arch/player/race/wraithp.arc diff -c arch/player/race/wraithp.arc:1.9 arch/player/race/wraithp.arc:1.10 *** arch/player/race/wraithp.arc:1.9 Tue Mar 18 23:44:31 2003 --- arch/player/race/wraithp.arc Sun Mar 30 14:55:11 2003 *************** *** 26,37 **** color_fg black anim wraithp.111 wraithp.131 wraithp.151 wraithp.171 facings 4 mina ! is_animated 0 type 1 level 1 undead 1 --- 26,42 ---- color_fg black anim wraithp.111 + wraithp.112 + wraithp.131 wraithp.131 wraithp.151 + wraithp.152 + wraithp.171 wraithp.171 facings 4 mina ! is_animated 1 ! anim_speed -1 type 1 level 1 undead 1 |
|
From: <cro...@li...> - 2003-03-30 16:40:26
|
Module Name: crossfire
Committed By: temitchell
Date: Sun Mar 30 16:40:22 UTC 2003
Modified Files:
crossfire/server: weather.c
Log Message:
added one more groundtype to the weather code:
Start of context diffs
Index: crossfire/server/weather.c
diff -c crossfire/server/weather.c:1.29 crossfire/server/weather.c:1.30
*** crossfire/server/weather.c:1.29 Tue Feb 25 07:08:03 2003
--- crossfire/server/weather.c Sun Mar 30 08:40:20 2003
***************
*** 1,6 ****
/*
* static char *rcsid_weather_c =
! * "$Id: weather.c,v 1.29 2003/02/25 15:08:03 garbled Exp $";
*/
/*
CrossFire, A Multiplayer game for X-windows
--- 1,6 ----
/*
* static char *rcsid_weather_c =
! * "$Id: weather.c,v 1.30 2003/03/30 16:40:20 temitchell Exp $";
*/
/*
CrossFire, A Multiplayer game for X-windows
***************
*** 75,89 ****
{"snow2", 1},
{"snow4", 1},
{"snow5", 1},
! {"mountain1_snow", 1},
! {"mountain2_snow", 1},
{"rain1", 1},
{"rain2", 1},
{"rain3", 1},
{"rain4", 1},
{"rain5", 1},
! {"mountain1_rivlets", 1},
! {"mountain2_rivlets", 1},
{"drifts", 0},
{"glacier", 0},
{"cforest1", 0},
--- 75,89 ----
{"snow2", 1},
{"snow4", 1},
{"snow5", 1},
! {"mountain1_snow", 1},
! {"mountain2_snow", 1},
{"rain1", 1},
{"rain2", 1},
{"rain3", 1},
{"rain4", 1},
{"rain5", 1},
! {"mountain1_rivlets", 1},
! {"mountain2_rivlets", 1},
{"drifts", 0},
{"glacier", 0},
{"cforest1", 0},
***************
*** 135,140 ****
--- 135,141 ----
{"impossible_match2", "snow4", NULL, 0}, /* placeholders */
{"impossible_match3", "snow3", NULL, 0},
{"hills", "drifts", NULL, 0},
+ {"treed_hills", "drifts", "woods5", 1},
{"grass", "snow", NULL, 0},
{"sand", "snow", NULL, 0},
{"stones", "snow2", NULL, 0},
***************
*** 176,182 ****
{"onion", "farmland", 10, 1.0, 2.0, 30, 100, 10, 25, 100, 9999, 0},
{"carrot", "farmland", 10, 1.0, 2.0, 30, 100, 10, 25, 100, 9999, 0},
{"thorns", "brush", 15, 0.5, 1.3, 30, 100, 10, 25, -100, 9999, 0},
! {"mountain_foilage", "mountain", 6, 1.0, 2.0, 25, 100, 5, 30, 0, 15999, 2},
{NULL, NULL, 1, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0}
};
--- 177,183 ----
{"onion", "farmland", 10, 1.0, 2.0, 30, 100, 10, 25, 100, 9999, 0},
{"carrot", "farmland", 10, 1.0, 2.0, 30, 100, 10, 25, 100, 9999, 0},
{"thorns", "brush", 15, 0.5, 1.3, 30, 100, 10, 25, -100, 9999, 0},
! {"mountain_foilage", "mountain", 6, 1.0, 2.0, 25, 100, 5, 30, 0, 15999, 2},
{NULL, NULL, 1, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0}
};
|
|
From: <cro...@li...> - 2003-03-30 06:02:20
|
Module Name: arch Committed By: mwedel Date: Sun Mar 30 06:02:19 UTC 2003 Modified Files: arch/readable: sign.base.111.png Added Files: arch/floor: tile.arc tile.base.111.png tile_tan.arc tile_tan.base.111.png tile_white.arc tile_white.base.111.png Log Message: Add new images by Oliver (obe...@ea...) - made up new archetypes for these tiled images. MSW 2003-03-30 Start of context diffs Index: arch/floor/tile.arc diff -c /dev/null arch/floor/tile.arc:1.1 *** /dev/null Sat Mar 29 22:02:19 2003 --- arch/floor/tile.arc Sat Mar 29 22:02:19 2003 *************** *** 0 **** --- 1,7 ---- + Object tile_floor + face tile.111 + color_fg grey + no_pick 1 + is_floor 1 + editable 8 + end Index: arch/readable/sign.base.111.png |
|
From: <cro...@li...> - 2003-03-30 05:46:59
|
Module Name: arch Committed By: mwedel Date: Sun Mar 30 05:46:58 UTC 2003 Modified Files: arch/magic/Fire: firebolt.base.111.png firebolt.base.121.png firebolt.base.131.png firebolt.base.141.png firebolt.base.151.png firebolt.base.161.png firebolt.base.171.png firebolt.base.181.png arch/player/old: barbarian.arc cleric.arc dwarf_p.arc elf.arc halfling.arc human.arc mage.arc monk.arc ninja.arc priest.arc swashbuckl.arc thief.arc viking.arc warrior.arc wizard.arc wraithp.arc arch/player/race: elf.arc Log Message: Fix transperancies of firebolts as per Bernd Edlers comments. This doesn't effect display on new clients, but may make things work better for systems with old png libraries. Update the old player archetypes to contain proper animation information. Update the elf arch to demonstrate a 4 direction animated elf player - only one of the directions is actually animated. MSW 2003-03-30 Start of context diffs Index: arch/magic/Fire/firebolt.base.111.png Index: arch/player/old/barbarian.arc diff -c arch/player/old/barbarian.arc:1.3 arch/player/old/barbarian.arc:1.4 *** arch/player/old/barbarian.arc:1.3 Mon Jul 15 22:02:59 2002 --- arch/player/old/barbarian.arc Sat Mar 29 21:46:57 2003 *************** *** 8,13 **** --- 8,14 ---- barbarian.131 barbarian.151 barbarian.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/old/wraithp.arc diff -c arch/player/old/wraithp.arc:1.4 arch/player/old/wraithp.arc:1.5 *** arch/player/old/wraithp.arc:1.4 Mon Jul 15 22:02:59 2002 --- arch/player/old/wraithp.arc Sat Mar 29 21:46:57 2003 *************** *** 9,14 **** --- 9,15 ---- wraithp.131 wraithp.151 wraithp.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/race/elf.arc diff -c arch/player/race/elf.arc:1.4 arch/player/race/elf.arc:1.5 *** arch/player/race/elf.arc:1.4 Tue Mar 18 23:44:31 2003 --- arch/player/race/elf.arc Sat Mar 29 21:46:57 2003 *************** *** 22,33 **** endmsg anim elf.111 elf.131 elf.151 elf.171 facings 4 mina ! is_animated 0 type 1 level 1 ac 10 --- 22,37 ---- endmsg anim elf.111 + elf.111 + elf.131 elf.131 elf.151 + elf.152 + elf.171 elf.171 facings 4 mina ! is_animated 1 type 1 level 1 ac 10 |
|
From: <cro...@li...> - 2003-03-24 19:11:24
|
Module Name: maps-bigworld Committed By: jbontje Date: Mon Mar 24 19:11:21 UTC 2003 Modified Files: maps-bigworld/scorn/misc: cityhall Log Message: fixed download url mids 2003-03-24 Start of context diffs Index: maps-bigworld/scorn/misc/cityhall diff -c maps-bigworld/scorn/misc/cityhall:1.1 maps-bigworld/scorn/misc/cityhall:1.2 *** maps-bigworld/scorn/misc/cityhall:1.1 Mon Dec 17 23:04:22 2001 --- maps-bigworld/scorn/misc/cityhall Mon Mar 24 11:11:20 2003 *************** *** 3767,3774 **** so you can always enjoy the latest features and bugfixes. For a detailed list of valid download sites, ! look at <http://crossfire.real-time.com/ ! Website_Index/download.html> endmsg x 17 y 13 --- 3767,3774 ---- so you can always enjoy the latest features and bugfixes. For a detailed list of valid download sites, ! look at: ! http://crossfire.real-time.com/download/ endmsg x 17 y 13 |
|
From: <cro...@li...> - 2003-03-24 08:03:50
|
Module Name: client
Committed By: mwedel
Date: Mon Mar 24 08:03:47 UTC 2003
Modified Files:
client: CHANGES
client/common: client.c
Log Message:
common/client.c: Add some usleeps() in negotiate_connection() - this reduces
cpu load when negotiating the connection (given 10 ms for data to actually
come in before checking for new data). Also, add a count and if we don't
get a response back from the server in the time frame, bail out.
MSW 2003-03-24
Start of context diffs
Index: client/CHANGES
diff -c client/CHANGES:1.98 client/CHANGES:1.99
*** client/CHANGES:1.98 Sun Mar 23 22:01:25 2003
--- client/CHANGES Mon Mar 24 00:03:45 2003
***************
*** 1,6 ****
! "$Id: CHANGES,v 1.98 2003/03/24 06:01:25 mwedel Exp $"
Top of CVS tree:
------------------------------------------------------------------------------
configure.in, configure: checks added for alsa9 sound - update for cfsndserv.c
should come shortly.
--- 1,12 ----
! "$Id: CHANGES,v 1.99 2003/03/24 08:03:45 mwedel Exp $"
Top of CVS tree:
------------------------------------------------------------------------------
+
+ common/client.c: Add some usleeps() in negotiate_connection() - this reduces
+ cpu load when negotiating the connection (given 10 ms for data to actually
+ come in before checking for new data). Also, add a count and if we don't
+ get a response back from the server in the time frame, bail out.
+ MSW 2003-03-24
configure.in, configure: checks added for alsa9 sound - update for cfsndserv.c
should come shortly.
Index: client/common/client.c
diff -c client/common/client.c:1.13 client/common/client.c:1.14
*** client/common/client.c:1.13 Sun Mar 23 22:01:28 2003
--- client/common/client.c Mon Mar 24 00:03:46 2003
***************
*** 1,6 ****
/*
* static char *rcsid_client_c =
! * "$Id: client.c,v 1.13 2003/03/24 06:01:28 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
--- 1,6 ----
/*
* static char *rcsid_client_c =
! * "$Id: client.c,v 1.14 2003/03/24 08:03:46 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
***************
*** 236,241 ****
--- 236,243 ----
void negotiate_connection(int sound)
{
+ int tries;
+
SendVersion(csocket);
/* We need to get the version command fairly early on because
***************
*** 245,253 ****
--- 247,265 ----
* However, if it doesn't send the version command, we have no idea
* what we are dealing with.
*/
+ tries=0;
while (csocket.cs_version==0) {
DoClient(&csocket);
if (csocket.fd == -1) return;
+
+ usleep(10*1000); /* 10 milliseconds */
+ tries++;
+ /* If we have't got a response in 10 seconds, bail out */
+ if (tries > 1000) {
+ close(csocket.fd);
+ csocket.fd=-1;
+ return;
+ }
}
if (csocket.sc_version<1023) {
***************
*** 330,335 ****
--- 342,354 ----
}
} /* Still have image_sums request to send */
} /* endif download all faces */
+
+ usleep(10*1000); /* 10 milliseconds */
+ /* Don't put in an upper time limit with tries like we did above - if the
+ * player is downloading all the images, the time this takes could be
+ * considerable.
+ */
+
} while (replyinfo_status != requestinfo_sent);
}
if (use_config[CONFIG_DOWNLOAD]) {
|
|
From: <cro...@li...> - 2003-03-24 06:58:36
|
Module Name: crossfire
Committed By: mwedel
Date: Mon Mar 24 06:58:34 UTC 2003
Modified Files:
crossfire: ChangeLog
crossfire/common: glue.c
crossfire/lib: animations archetypes bmaps bmaps.paths crossfire.0
crossfire.1 faces
crossfire/server: init.c player.c
Log Message:
common/glue.c, include/funcpoint.h: remove draw_func() pointer - no longer
needed, so code that sets up pointer removed.
lib/*: rebuilt - facings added to old player animation information.
ruined_temple archetype added.
server/init.c: remove set_draw() function
server/player.c: remove call to draw() - socket code takes care of this.
socket/info.c: remove draw() - instead, draw_client_map() can be used,
as that is most the only thing draw() did anyways.
socket/loop.c: Update draw() calls to draw_client_map()
socket/request.c: Remove special handling for darkness==4 cases (first
space that is in full darkness) - this is extra complications and causes
display problems. Update draw_client_map() to include the little bit
of logic that draw() had that this function did not have.
MSW 2003-03-24
The following files had too many changes to show the context diffs here:
cvs rdiff -r1.53 -r1.54 crossfire/lib/animations
cvs rdiff -r1.124 -r1.125 crossfire/lib/archetypes
cvs rdiff -r1.54 -r1.55 crossfire/lib/bmaps.paths
Start of context diffs
Index: crossfire/ChangeLog
diff -c crossfire/ChangeLog:1.58 crossfire/ChangeLog:1.59
*** crossfire/ChangeLog:1.58 Fri Mar 21 00:01:03 2003
--- crossfire/ChangeLog Sun Mar 23 22:58:07 2003
***************
*** 17,22 ****
--- 17,37 ----
------------------------------------------------------------------------------
Changes for CVS:
+ common/glue.c, include/funcpoint.h: remove draw_func() pointer - no longer
+ needed, so code that sets up pointer removed.
+ lib/*: rebuilt - facings added to old player animation information.
+ ruined_temple archetype added.
+ server/init.c: remove set_draw() function
+ server/player.c: remove call to draw() - socket code takes care of this.
+ socket/info.c: remove draw() - instead, draw_client_map() can be used,
+ as that is most the only thing draw() did anyways.
+ socket/loop.c: Update draw() calls to draw_client_map()
+ socket/request.c: Remove special handling for darkness==4 cases (first
+ space that is in full darkness) - this is extra complications and causes
+ display problems. Update draw_client_map() to include the little bit
+ of logic that draw() had that this function did not have.
+ MSW 2003-03-24
+
server/spell_effect.c: Some code cleanuip to cast_change_attr - mostly
to combine the processing of the stat improving spells together.
The actual change to playability is that bless and holy possession
Index: crossfire/common/glue.c
diff -c crossfire/common/glue.c:1.9 crossfire/common/glue.c:1.10
*** crossfire/common/glue.c:1.9 Thu Jan 16 20:38:35 2003
--- crossfire/common/glue.c Sun Mar 23 22:58:07 2003
***************
*** 1,6 ****
/*
* static char *rcsid_glue_c =
! * "$Id: glue.c,v 1.9 2003/01/17 04:38:35 garbled Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_glue_c =
! * "$Id: glue.c,v 1.10 2003/03/24 06:58:07 mwedel Exp $";
*/
/*
***************
*** 43,49 ****
type_func_map update_buttons_func;
type_func_int_int_ob_cchar draw_info_func;
type_move_apply_func move_apply_func;
- type_func_ob draw_func;
type_func_ob_ob monster_check_apply_func;
type_func_void init_blocksview_players_func;
type_func_int_map_char info_map_func;
--- 43,48 ----
***************
*** 84,90 ****
update_buttons_func = dummy_function_map;
draw_info_func = dummy_draw_info;
move_apply_func = dummy_move_apply_func;
- draw_func = dummy_function_ob;
monster_check_apply_func = dummy_function_ob2;
init_blocksview_players_func = dummy_function;
info_map_func = dummy_function_mapstr;
--- 83,88 ----
***************
*** 169,183 ****
void set_move_apply(type_move_apply_func addr) {
move_apply_func = addr;
- }
-
- /*
- * Specify which function to call to draw on the graphic-window
- * of a player.
- */
-
- void set_draw(type_func_ob addr) {
- draw_func = addr;
}
/*
--- 167,172 ----
Index: crossfire/lib/crossfire.0
Index: crossfire/lib/crossfire.1
Index: crossfire/lib/faces
diff -c crossfire/lib/faces:1.46 crossfire/lib/faces:1.47
*** crossfire/lib/faces:1.46 Sun Feb 23 23:38:59 2003
--- crossfire/lib/faces Sun Mar 23 22:58:33 2003
***************
*** 4911,4916 ****
--- 4911,4919 ----
face elf.151
color_fg black
end
+ face elf.152
+ color_fg black
+ end
face elf.171
color_fg black
end
***************
*** 8795,8806 ****
--- 8798,8815 ----
face orc_chief.111
color_fg black
end
+ face orc_chief.112
+ color_fg black
+ end
face orc_gen.111
color_fg red
end
face orc_leader.111
color_fg black
end
+ face orc_leader.112
+ color_fg black
+ end
face orcchop.111
magicmap red
end
***************
*** 11639,11644 ****
--- 11648,11659 ----
visibility 100
end
face temple1.411
+ visibility 100
+ end
+ face temple_ruin.311
+ visibility 100
+ end
+ face temple_ruin.411
visibility 100
end
face thaumaturg_desk.111
Index: crossfire/server/init.c
diff -c crossfire/server/init.c:1.47 crossfire/server/init.c:1.48
*** crossfire/server/init.c:1.47 Thu Feb 13 21:57:57 2003
--- crossfire/server/init.c Sun Mar 23 22:58:33 2003
***************
*** 1,6 ****
/*
* static char *rcsid_init_c =
! * "$Id: init.c,v 1.47 2003/02/14 05:57:57 garbled Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_init_c =
! * "$Id: init.c,v 1.48 2003/03/24 06:58:33 mwedel Exp $";
*/
/*
***************
*** 913,919 ****
set_update_buttons(update_buttons);
set_draw_info(new_draw_info);
set_move_apply(move_apply);
- set_draw(draw);
set_monster_check_apply(monster_check_apply);
set_move_teleporter(move_teleporter);
set_move_firewall(move_firewall);
--- 913,918 ----
***************
*** 923,929 ****
set_esrv_send_item(esrv_send_item);
set_esrv_del_item(esrv_del_item);
set_esrv_update_item(esrv_update_item);
- /* set_init_blocksview_players(init_blocksview_players); */
set_info_map(new_info_map);
set_set_darkness_map(set_darkness_map);
set_dragon_gain_func(dragon_ability_gain);
--- 922,927 ----
Index: crossfire/server/player.c
diff -c crossfire/server/player.c:1.126 crossfire/server/player.c:1.127
*** crossfire/server/player.c:1.126 Wed Mar 19 00:04:52 2003
--- crossfire/server/player.c Sun Mar 23 22:58:33 2003
***************
*** 1,6 ****
/*
* static char *rcsid_player_c =
! * "$Id: player.c,v 1.126 2003/03/19 08:04:52 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_player_c =
! * "$Id: player.c,v 1.127 2003/03/24 06:58:33 mwedel Exp $";
*/
/*
***************
*** 998,1004 ****
int m=1-(RANDOM()&2);
if(move_ob(op,absdir(dir+diff*m),op)||
(diff==0&&move_ob(op,absdir(dir-diff*m),op))) {
- draw(op);
return;
}
}
--- 998,1003 ----
|
|
From: <cro...@li...> - 2003-03-24 06:01:32
|
Module Name: client
Committed By: mwedel
Date: Mon Mar 24 06:01:30 UTC 2003
Modified Files:
client: CHANGES configure configure.in
client/common: client.c
client/gtk: gx11.h image.c sdl.c
client/x11: x11.c
Log Message:
276 draw_info(" savewinpos - save window positions - ", NDI_BLACK);
277 draw_info(" split windows mode only", NDI_BLACK);
278 draw_info(" savedefaults save various defaults into", NDI_BLACK);
279 draw_info(" ~/.crossfire/defaults", NDI_BLACK);
280 draw_info(" show - determine what type of items", NDI_BLACK);
281 draw_info(" to show in inventory", NDI_BLACK);
317 void command_take (const char *command, char *cpnext)
318 {
319 /* If the player has specified optional data, or the player
320 * does not have a container open, just issue the command
321 * as normal
322 */
323 if (cpnext || cpl.container == NULL)
324 send_command(command, cpl.count, 0);
325 else {
326 if (cpl.container->inv == NULL)
327 draw_info("There is nothing in the container to move", NDI_BLACK);
328 else
329 cs_print_string(csocket.fd,"move %d %d %d", cpl.ob->tag,
330 cpl.container->inv->tag, cpl.count);
331 }
332 }
333
334
335 /* This is an extended command (ie, 'who, 'whatever, etc). In general,
336 * we just send the command to the server, but there are a few that
337 * we care about (bind, unbind)
338 *
339 * The command past to us can not be modified - if it is a keybinding,
340 * we get passed the string that is that binding - modifying it effectively
341 * changes the binding.
342 */
343
344 void extended_command(const char *ocommand) {
345 const char *cp = ocommand;
346 char *cpnext, command[MAX_BUF];
347
348 if ((cpnext = strchr(cp, ' '))!=NULL) {
349 int len = cpnext - ocommand;
350 if (len > (MAX_BUF -1 )) len = MAX_BUF-1;
351
352 strncpy(command, ocommand, len);
353 command[len] = '\0';
354 cp = command;
355 while (*cpnext == ' ')
356 cpnext++;
357 if (*cpnext == 0)
358 cpnext = NULL;
359 }
360
361 /* cp now contains the command (everything before first space),
362 * and cpnext contains everything after that first space. cpnext
363 * could be NULL.
364 */
365
366 /* I alphabetized the list of commands below to make it easier to
367 * find/see what the extended commands are and what they do.
368 */
369 if (!strcmp(cp,"autorepeat")) set_autorepeat(cpnext);
370 else if (!strcmp(cp, "bind")) bind_key(cpnext);
336 * we just send the command to the server, but there are a few that
337 * we care about (bind, unbind)
338 *
339 * The command past to us can not be modified - if it is a keybinding,
340 * we get passed the string that is that binding - modifying it effectively
341 * changes the binding.
342 */
343
344 void extended_command(const char *ocommand) {
345 const char *cp = ocommand;
346 char *cpnext, command[MAX_BUF];
347
348 if ((cpnext = strchr(cp, ' '))!=NULL) {
349 int len = cpnext - ocommand;
350 if (len > (MAX_BUF -1 )) len = MAX_BUF-1;
351
352 strncpy(command, ocommand, len);
353 command[len] = '\0';
354 cp = command;
355 while (*cpnext == ' ')
356 cpnext++;
357 if (*cpnext == 0)
358 cpnext = NULL;
359 }
360
361 /* cp now contains the command (everything before first space),
362 * and cpnext contains everything after that first space. cpnext
363 * could be NULL.
364 */
365
366 /* I alphabetized the list of commands below to make it easier to
367 * find/see what the extended commands are and what they do.
368 */
369 if (!strcmp(cp,"autorepeat")) set_autorepeat(cpnext);
370 else if (!strcmp(cp, "bind")) bind_key(cpnext);
371 else if (!strcmp(cp,"cwindow")) set_command_window(cpnext);
Jove (C) [image.c:3] "common/player.c" - /export/home/crossfire/client-CVS (23:25)
[hugin:/export/home/crossfire/client-CVS] (137) % l
CHANGES Makefile.in aclocal.m4 config.status* gmon.out macros/ x11/
COPYING NOTES autom4te-2.53.cache/ configure* gnome/ pixmaps/
CVS/ README autom4te.cache/ configure.in gtk/ sdl/
License README.rpm common/ crossfire-client.spec help/ sound-src/
Makefile TODO config.log cscope.out logfile utils/
[hugin:/export/home/crossfire/client-CVS] (138) % more README
Install Steps:
0) Prerequisites:
You will need the XPM library to compile the client.
If you want to run the gtk client, you will need to install the gtk
libraries.
If you want png support, you will need to install the png
library.
If you want sdl support ( recommended) you will need both gtk and png
as well as the main SDL library and the SDL_image library, both of
which can be found at http://www.libsdl.org if not already installed
on your system.
1) type './configure' to configure for your OS/system. Most options
normally understood by configure should be available.
The configure script will try to make all the right decisions. It will
search for the needed libraries and headers. You may need to give
hints on the locations of some files (png library, gtk library).
If configure finds gtk libraries, it will build the gcfclient in addition
to the cfclient. If you don't want this (only cfclient), use the
--disable-gtk (there is no way to disable the cfclient at this time -
if you are able to compile the gtk client, you also have all the tools for
for the cfclient).
If SDL libraries are found on your system, SDL support is automatically
compiled it (Note: only the gcfclient supports sdl). Use --disable-sdl
if you don't want this.
The system will use the new sound system if available (this is a seperate
sound daemon). If you want to use the builtin sound system, use
the --enable-old-sound. See sound notes further down.
To specify additional places to find header files, use the
--with-includes=value - this includes any -I or other options to provide
the compiler. Example:
./configure --with-includes="-I/usr/local/include -I/opt/xpm/include"
Similarly, there is a --with-ldflags option. Example:
./configure --with-ldflags="-L/usr/local/lib -R/usr/local/lib"
-R is used on many systems to specify run location for libraries so
you don't need to set LD_LIBRARY_PATH.
Generally, if you are setting --with-includes, your probably need to
set --with-ldflags, as if one is not in a standard place, the other
probably is not either.
The client works with the 0.5 version of the ALSA sound system.
If you are using a newer version and are having troubles compiling,
try running configure with the '--disable-alsa' option.
2) Type 'make depend; make' to compile the client. If you get link errors,
it may be because you have an older version of the gtk libraries. If
you get errors like 'can't find target client.c', your make program
isn't very good and use should get/use gnu make instead.
3) Type 'make install' to install the binaries.
4) The client can be run by typing 'cfclient' for the X11 version, gcfclient
for the gtk client, gcfclient -sdl for the SDL version.
------------------------------------------------------------------------------
Converting keybindings from old save files for use with the client:
1) You will need to get a copy of your character file.
2) Type "mkdir ~/.crossfire". This will automatically be done the first
time you run the client.
3) Type awk 'BEGIN {ORS=" "} /^key /
{for (i=2; i<=NF; i++) print $i;printf "\n"}'
infile > ~/.crossfire/keys
(Note that this should all be entered on one line, but is broken up
here to be more readable.)
'infile' is the name of the character file.
Note that the client use global keybindings, and not per character. This
means that the same keybindings will be for all characters you play with the
client.
The gtk client and x11 client both use the same keybindings file.
------------------------------------------------------------------------------
Sound support:
If you wnat sound support (only useful if you have a system that has good
sound hardware), you will also need to get some sounds for the program.
You will need the raw sound files - the .au files no longer work with the
client.
The sounds file determines what file is played for what sound. The default
location for the sound files is <prefix>/share/cfclient/sounds. <prefix>
is the -prefix= option given when running configure, default of /usr/local.
You can set this to another directory at the configure stage by using
--with-sound-dir=/some/directory. This file is only used for compiled in
defaults. If you have a ~/.crossfire/sounds file (some format), that file
will be used instead of the built in defaults.
Sound are now played by separate process invoked from crossfire client.
The process - called sound server - adjusts sounds' volume according to
relative position of player and sound source on map and mixes the sounds
together, so many sounds can be played simultaneously.
CONFIG FILE
The config file ~/.crossfire/sndconfig contains some configurable settings. If
there is no such file, one with default settings will be created.
The file contains following fields:
stereo: 1 means stereo sound, 0 - mono
bits: bitrate of generated sound - 8 or 16
16 means better quality, especially when more sounds
are to be played simultaneously, but takes more memory
signed: if we should sent signed data to the soundcard. 1 means yes.
frequency: speed of playing data. This should be 11025, or sound pitch
will change
buffers: how many buffers to allocate
buflen: how big the buffers should be. buffers*buflen shouldn't be
smaller than the longest sound to be played.
simultaneously: home many sound can be played at the same time. When this
setting is bigger, each sound volume will decrease.
HOW DOES IT WORK?
The sound server gets information about sounds to be played on standard input.
The information is a line:
<sound number> <sound type> <relative x> <relative y>
All those numbers are hex.
The file ~/.crossfire/sounds contains description of sound numbers and types.
For example:
3 0 5 0
Means that normal sound SOUND_FUMBLE spell should be played as it's source was
5 units to the right of player.
Sounds are mixed in special buffers, which are in fact one buffer, which should
be big enough for the biggest sound to be played.
The buffers, if contain anything, are sent one by one to the sound device.
Each buffer is cleaned after playing.
Sounds data is multiplied by some ratio (<1) evaluated from it's position and
volume and added to the buffers, starting from the next after the one being
played.
So bigger buffer means bigger delay, before th sound is actually played, but
the smaller buffer is, the bigger is possibility, we won't succeed filling the
next buffer, before last is played.
------------------------------------------------------------------------------
IMAGES
The client will get any images that it is missing from the server. This
can include the entire image set.
To decrease bandwidth used when actually playing the sounds, it is suggested
you download the image archive and install it. The default location
for the archive is <prefix>/share/cfclient/, where <prefix> is deteremined
by the -prefix= option given when running configure.
The mechanism the client uses to find a matching image file when the
server tells it an image name is thus:
1) Look in ~/.crossfire/gfx. If an image is found here, irrespective of the
set and checksum of the image on the server, it will be used. The only
way images are placed into the gfx directory is by the user actually
copying them to that directory. The gfx directory allows a user to override
images with versions he prefers.
2) Look in ~/.crossfire/crossfire-images then <prefix>/share/cfclient/crossfire-images.
If the checksum matches the image from the
respective directory is used. Note that if the checksums match, it really doesn't
matter what image location we use, as it is the same image.
4) Get the image from the server. If -cache is set, a copy of it is put into
~/.crossfire/crossfire-images.
------------------------------------------------------------------------------
Authors of the client:
Mark Wedel (mw...@so...) - general client source and Xlib client
David Sundqvist (az...@ne...) - GTK+ port
Raphael Quinet (Rap...@ee...) - Configure scripts and
graphics
Jacek Konieczny <ja...@ze...> - New Sound System support.
Eric Anderson did a lot of initial work on the client.
Scott MacFiggen (sm...@CS...) - SDL support
[hugin:/export/home/crossfire/client-CVS] (139) %
[hugin:/export/home/crossfire/client-CVS] (139) % ls
CHANGES Makefile.in aclocal.m4 config.status gmon.out macros x11
COPYING NOTES autom4te-2.53.cache configure gnome pixmaps
CVS README autom4te.cache configure.in gtk sdl
License README.rpm common crossfire-client.spec help sound-src
Makefile TODO config.log cscope.out logfile utils
[hugin:/export/home/crossfire/client-CVS] (140) % cvs update -dP
Warning: Remote host denied X11 forwarding.
? autom4te-2.53.cache
? autom4te.cache
? cscope.out
? gmon.out
? logfile
*/
dark0 = the_map.cells[mx][my].darkness;
if (y-1 < 0 || !the_map.cells[mx][my-1].have_darkness) dark1 = dark0;
else dark1 = the_map.cells[mx][my-1].darkness;
if (x+1 >= use_config[CONFIG_MAPWIDTH] || !the_map.cells[mx+1][my].have_darkness) dark2 =!
else dark2 = the_map.cells[mx+1][my].darkness;
if (y+1 >= use_config[CONFIG_MAPHEIGHT] || !the_map.cells[mx][my+1].have_darkness) dark3 !
else dark3 = the_map.cells[mx][my+1].darkness;
if (x-1 < 0 || !the_map.cells[mx-1][my].have_darkness) dark4 = dark0;
else dark4 = the_map.cells[mx-1][my].darkness;
/* If they are all the same, processing is easy */
if (dark0 == dark1 && dark0 == dark2 && dark0 == dark3 && dark0 == dark4) {
dst.x = x * map_image_size;
dst.y = y * map_image_size;
dst.w = map_image_size;
dst.h = map_image_size;
if (dark0 == 255) {
SDL_FillRect(mapsurface,&dst, SDL_MapRGB(mapsurface->format, 0, 0, 0));
} else if (the_map.cells[mx][my].darkness != 0) {
SDL_FillRect(lightmap,NULL, SDL_MapRGBA(lightmap->format, 0, 0, 0, the_map.cells[!
SDL_BlitSurface(lightmap, NULL, mapsurface, &dst);
}
return;
}
if (use_config[CONFIG_LIGHTING] == CFG_LT_PIXEL ) {
/* This almost works as well as the per pixel code below, but does have some various
* artifacts in the drawing. It uses the same logic as the per pixel code below,
* bit since SDL does the blit, the alpha handling ends up being different
Jove (C) [sdl.c:3] "sdl.c" - /export/home/crossfire/client-CVS/gtk (23:34)
[hugin:/export/home/crossfire/client-CVS/gtk] (145) %
[hugin:/export/home/crossfire/client-CVS/gtk] (145) % l
CVS/ config.o gcfclient.man gx11.h keys.c png.c sound.c
Makefile crossfire-client.desktop gtkproto.h gx11.o keys.o png.o sound.o
Makefile.in cscope.out gx11.c image.c map.c sdl.c
config.c gcfclient* gx11.c~ image.o map.o sdl.o
[hugin:/export/home/crossfire/client-CVS/gtk] (146) % l *.h
gtkproto.h gx11.h
[hugin:/export/home/crossfire/client-CVS/gtk] (147) % more gx11.h
/*
* static char *rcsid_gx11_h =
* "$Id: gx11.h,v 1.6 2002/05/22 04:58:26 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
Copyright (C) 2001 Mark Wedel & Crossfire Development Team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The author can be reached via e-mail to cro...@re...
*/
#ifndef GX11_H
#define GX11_H
#include "client-types.h"
#include "item.h"
extern int map_size, image_size, map_image_size, map_image_half_size;
extern uint8 map_did_scroll;
extern uint8 updatekeycodes, time_map_redraw,redraw_needed;
extern int updatelock;
/* Pixmap data. This is abstracted in the sense that the
/* Pixmap data. This is abstracted in the sense that the
* code here does not care what the data points to (hence the
* void). The module using this data should know whether it
* is these point to png data or image data of whatever form.
* The module is not required to use all these fileds -
* as png data includes transperancy, it will generally not
* use the mask fields and instead just put its data into the
* appropiate image fields.
*
* As images can now be of variable size (and potentially re-sized),
* the size information is stored here.
*/
#define DEFAULT_IMAGE_SIZE 32
#define MAXPIXMAPNUM 10000
typedef struct {
void *icon_mask, *icon_image;
uint16 icon_width, icon_height;
void *map_mask, *map_image;
uint16 map_width, map_height;
void *fog_mask, *fog_image;
} PixmapInfo;
extern PixmapInfo *pixmaps[MAXPIXMAPNUM];
/* Some global widgetws */
extern GtkWidget *gtkwin_root,*drawingarea,*run_label,*fire_label;
extern GtkWidget *gtkwin_info, *gtkwin_stats, *gtkwin_message;
extern GtkWidget *gtkwin_look, *gtkwin_inv, *gtkwin_config;
extern GtkWidget *entrytext, *counttext;
extern GdkPixmap *mapwindow,*dark;
extern GdkBitmap *dark1, *dark2, *dark3;
extern GdkGC *mapgc;
extern GtkWidget *ckentrytext, *ckeyentrytext, *cmodentrytext,*cnumentrytext, *cclist;
extern GtkTooltips *tooltips;
#define TYPE_LISTS 9
Jove (C) [gx11.h:3] "gx11.h" - /export/home/crossfire/client-CVS/gtk (23:39)
...skipping...
/* Pixmap data. This is abstracted in the sense that the
* code here does not care what the data points to (hence the
* void). The module using this data should know whether it
* is these point to png data or image data of whatever form.
* The module is not required to use all these fileds -
* as png data includes transperancy, it will generally not
* use the mask fields and instead just put its data into the
* appropiate image fields.
*
* As images can now be of variable size (and potentially re-sized),
* the size information is stored here.
*/
#define DEFAULT_IMAGE_SIZE 32
#define MAXPIXMAPNUM 10000
typedef struct {
void *icon_mask, *icon_image;
uint16 icon_width, icon_height;
void *map_mask, *map_image;
uint16 map_width, map_height;
void *fog_mask, *fog_image;
} PixmapInfo;
extern PixmapInfo *pixmaps[MAXPIXMAPNUM];
/* Some global widgetws */
extern GtkWidget *gtkwin_root,*drawingarea,*run_label,*fire_label;
extern GtkWidget *gtkwin_info, *gtkwin_stats, *gtkwin_message;
extern GtkWidget *gtkwin_look, *gtkwin_inv, *gtkwin_config;
extern GtkWidget *entrytext, *counttext;
extern GdkPixmap *mapwindow,*dark;
extern GdkBitmap *dark1, *dark2, *dark3;
extern GdkGC *mapgc;
extern GtkWidget *ckentrytext, *ckeyentrytext, *cmodentrytext,*cnumentrytext, *cclist;
extern GtkTooltips *tooltips;
#define TYPE_LISTS 9
/*
[hugin:/export/home/crossfire/client-CVS/gtk] (148) % man printf
<standard input>:45: a newline character is not allowed in an escape name
<standard input>:48: a newline character is not allowed in an escape name
<standard input>:57: cannot use newline as a starting delimiter
<standard input>:60: warning: numeric expression expected (got `N')
PRINTF(1) FSF PRINTF(1)
NAME
printf - format and print data
SYNOPSIS
printf FORMAT [ARGUMENT]...
printf OPTION
DESCRIPTION
Print ARGUMENT(s) according to FORMAT.
--help display this help and exit
--version
output version information and exit
FORMAT controls the output as in C printf. Interpreted sequences are:
double quote
NNN character with octal value NNN (0 to 3 digits)
b backslash
a
c.... alert (BEL)
k
s.TP produce no further output
p
a
form feed
e
new line
carriage return
horizontal tab
vertical tab
N character with hexadecimal value NNN (1 to 3 digits)
%% a single %
%b ARGUMENT as a string with `<B4> escapes interpreted
and all C format specifications ending with one of diouxXfeEgGcs, with ARGU<AD>
MENTs converted to proper type first. Variable widths are handled.
REPORTING BUGS
Report bugs to <bug...@gn...>.
SEE ALSO
The full documentation for printf is maintained as a Texinfo manual. If the
info and printf programs are properly installed at your site, the command
info printf
should give you access to the complete manual.
COPYRIGHT
Copyright <A9> 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
GNU sh-utils 2.0 July 2000 PRINTF(1)
PRINTF(3) Linux Programmer's Manual PRINTF(3)
NAME
printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf -
formatted output conversion
SYNOPSIS
#include <stdio.h>
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
#include <stdarg.h>
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);
DESCRIPTION
The functions in the printf family produce output according to a format as
described below. The functions printf and vprintf write output to stdout, the
standard output stream; fprintf and vfprintf write output to the given output
stream; sprintf, snprintf, vsprintf and vsnprintf write to the character
string str.
The functions vprintf, vfprintf, vsprintf, vsnprintf are equivalent to the
functions printf, fprintf, sprintf, snprintf, respectively, except that they
are called with a va_list instead of a variable number of arguments. These
functions do not call the va_end macro. Consequently, the value of ap is unde<AD>
fined after the call. The application should call va_end(ap) itself after<AD>
wards.
These eight functions write the output under the control of a format string
that specifies how subsequent arguments (or arguments accessed via the vari<AD>
able-length argument facilities of stdarg(3)) are converted for output.
Return value
These functions return the number of characters printed (not including the
trailing '\0' used to end output to strings). The functions snprintf and
vsnprintf do not write more than size bytes (including the trailing '\0'). If
the output was truncated due to this limit then the return value is the number
of characters (not including the trailing '\0') which would have been written
to the final string if enough space had been available. Thus, a return value
of size or more means that the output was truncated. (See also below under
NOTES.)
Format of the format string
The format string is a character string, beginning and ending in its initial
shift state, if any. The format string is composed of zero or more direc<AD>
tives: ordinary characters (not %), which are copied unchanged to the output
stream; and conversion specifications, each of which results in fetching zero
or more subsequent arguments. Each conversion specification is introduced by
the character %, and ends with a conversion specifier. In between there may
be (in this order) zero or more flags, an optional minimum field width, an
optional precision and an optional length modifier.
The arguments must correspond properly (after type promotion) with the conver<AD>
sion specifier. By default, the arguments are used in the order given, where
each `*' and each conversion specifier asks for the next argument (and it is
an error if insufficiently many arguments are given). One can also specify
explicitly which argument is taken, at each place where an argument is
required, by writing `%m$' instead of `%' and `*m$' instead of `*', where the
decimal integer m denotes the position in the argument list of the desired
argument, indexed starting from 1. Thus,
printf("%*d", width, num);
and
printf("%2$*1$d", width, num);
are equivalent. The second style allows repeated references to the same argu<AD>
ment. The C99 standard does not include the style using `$', which comes from
the Single Unix Specification. If the style using `$' is used, it must be
used throughout for all conversions taking an argument and all width and pre<AD>
cision arguments, but it may be mixed with `%%' formats which do not consume
an argument. There may be no gaps in the numbers of arguments specified using
`$'; for example, if arguments 1 and 3 are specified, argument 2 must also be
specified somewhere in the format string.
For some numeric conversions a radix character (`decimal point') or thousands'
grouping character is used. The actual character used depends on the
LC_NUMERIC part of the locale. The POSIX locale uses `.' as radix character,
and does not have a grouping character. Thus,
printf("%'.2f", 1234567.89);
results in `1234567.89' in the POSIX locale, in `1234567,89' in the nl_NL
locale, and in `1.234.567,89' in the da_DK locale.
The flag characters
The character % is followed by zero or more of the following flags:
# The value should be converted to an ``alternate form''. For o conver<AD>
sions, the first character of the output string is made zero (by pre<AD>
fixing a 0 if it was not zero already). For x and X conversions, a
non-zero result has the string `0x' (or `0X' for X conversions)
prepended to it. For a, A, e, E, f, F, g, and G conversions, the
result will always contain a decimal point, even if no digits follow it
(normally, a decimal point appears in the results of those conversions
only if a digit follows). For g and G conversions, trailing zeros are
not removed from the result as they would otherwise be. For other con<AD>
versions, the result is undefined.
0 The value should be zero padded. For d, i, o, u, x, X, a, A, e, E, f,
F, g, and G conversions, the converted value is padded on the left with
zeros rather than blanks. If the 0 and - flags both appear, the 0 flag
is ignored. If a precision is given with a numeric conversion (d, i,
o, u, x, and X), the 0 flag is ignored. For other conversions, the
behavior is undefined.
- The converted value is to be left adjusted on the field boundary. (The
default is right justification.) Except for n conversions, the con<AD>
verted value is padded on the right with blanks, rather than on the
left with blanks or zeros. A - overrides a 0 if both are given.
' ' (a space) A blank should be left before a positive number (or empty
string) produced by a signed conversion.
+ A sign (+ or -) always be placed before a number produced by a signed
conversion. By default a sign is used only for negative numbers. A +
overrides a space if both are used.
The five flag characters above are defined in the C standard. The SUSv2 spec<AD>
ifies one further flag character.
' For decimal conversion (i, d, u, f, F, g, G) the output is to be
grouped with thousands' grouping characters if the locale information
indicates any. Note that many versions of gcc cannot parse this option
and will issue a warning. SUSv2 does not include %'F.
glibc 2.2 adds one further flag character.
I For decimal integer conversion (i, d, u) the output uses the locale's
alternative output digits, if any (for example, Arabic digits). How<AD>
ever, it does not include any locale definitions with such outdigits
defined.
The field width
An optional decimal digit string (with nonzero first digit) specifying a mini<AD>
mum field width. If the converted value has fewer characters than the field
width, it will be padded with spaces on the left (or right, if the left-
adjustment flag has been given). Instead of a decimal digit string one may
write `*' or `*m$' (for some decimal integer m) to specify that the field
width is given in the next argument, or in the m-th argument, respectively,
which must be of type int. A negative field width is taken as a `-' flag fol<AD>
lowed by a positive field width. In no case does a non-existent or small
field width cause truncation of a field; if the result of a conversion is
wider than the field width, the field is expanded to contain the conversion
result.
The precision
An optional precision, in the form of a period (`.') followed by an optional
decimal digit string. Instead of a decimal digit string one may write `*' or
`*m$' (for some decimal integer m) to specify that the precision is given in
the next argument, or in the m-th argument, respectively, which must be of
type int. If the precision is given as just `.', or the precision is nega<AD>
tive, the precision is taken to be zero. This gives the minimum number of
digits to appear for d, i, o, u, x, and X conversions, the number of digits to
appear after the radix character for a, A, e, E, f, and F conversions, the
maximum number of significant digits for g and G conversions, or the maximum
number of characters to be printed from a string for s and S conversions.
The length modifier
Here, `integer conversion' stands for d, i, o, u, x, or X conversion.
hh A following integer conversion corresponds to a signed char or unsigned
char argument, or a following n conversion corresponds to a pointer to
a signed char argument.
h A following integer conversion corresponds to a short int or unsigned
short int argument, or a following n conversion corresponds to a
pointer to a short int argument.
l (ell) A following integer conversion corresponds to a long int or
unsigned long int argument, or a following n conversion corresponds to
a pointer to a long int argument, or a following c conversion corre<AD>
sponds to a wint_t argument, or a following s conversion corresponds to
a pointer to wchar_t argument.
ll (ell-ell). A following integer conversion corresponds to a long long
int or unsigned long long int argument, or a following n conversion
corresponds to a pointer to a long long int argument.
L A following a, A, e, E, f, F, g, or G conversion corresponds to a long
double argument. (C99 allows %LF, but SUSv2 does not.)
q (`quad'. BSD 4.4 and Linux libc5 only. Don't use.) This is a synonym
for ll.
"$Id: CHANGES,v 1.97 2003/02/25 07:52:21 mwedel Exp $"
Top of CVS tree:
------------------------------------------------------------------------------
configure.in, configure: checks added for alsa9 sound - update for cfsndserv.c
should come shortly.
common/client.c: Fix setup problem - it was using FOGWAR setting when
determining if client wanted darkness - should have been using darkness
setting. This was resulting in darkness not being used if fog of war was
turned off.
x11/x11.c: Modify handling of mouse button press logic - rather than only
modifier being shift, do appropriate logic if the shift mask is set,
but does not have to be only modifier set.
--
The following bits changes how fog of war looks in SDL mode. Now, fog of
war spaces are drawn in greyscale, instead of half darkness. This makes
it clearer what the status of the space is (fog of war/darkness). This change
probably uses less cpu to draw, but uses more memory for the images (as it
now has to store a rendered greyscale image). If not using SDL, you'll still
have the old behaviour (dimmed spaces for fog of war), and no significant
amount of extra memory will be used.
--
gtk/gx11.h: Add fog_image pointer to PixmapInfo structure.
gtk/image.c: Add code to render greyscale image. Also add code to free
greyscale image.
gtk/sdl.c: Modify map draw code to use grey fog image if space is fog of
war space. Disable dimming of fog spaces - no longer necessary as
space now looks different.
MSW 2003-03-24
The following files had too many changes to show the context diffs here:
cvs rdiff -r1.36 -r1.37 client/configure
Start of context diffs
Index: client/CHANGES
diff -c client/CHANGES:1.97 client/CHANGES:1.98
*** client/CHANGES:1.97 Mon Feb 24 23:52:21 2003
--- client/CHANGES Sun Mar 23 22:01:25 2003
***************
*** 1,6 ****
! "$Id: CHANGES,v 1.97 2003/02/25 07:52:21 mwedel Exp $"
Top of CVS tree:
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Changes for 1.5.0:
--- 1,32 ----
! "$Id: CHANGES,v 1.98 2003/03/24 06:01:25 mwedel Exp $"
Top of CVS tree:
------------------------------------------------------------------------------
+
+ configure.in, configure: checks added for alsa9 sound - update for cfsndserv.c
+ should come shortly.
+ common/client.c: Fix setup problem - it was using FOGWAR setting when
+ determining if client wanted darkness - should have been using darkness
+ setting. This was resulting in darkness not being used if fog of war was
+ turned off.
+ x11/x11.c: Modify handling of mouse button press logic - rather than only
+ modifier being shift, do appropriate logic if the shift mask is set,
+ but does not have to be only modifier set.
+ --
+ The following bits changes how fog of war looks in SDL mode. Now, fog of
+ war spaces are drawn in greyscale, instead of half darkness. This makes
+ it clearer what the status of the space is (fog of war/darkness). This change
+ probably uses less cpu to draw, but uses more memory for the images (as it
+ now has to store a rendered greyscale image). If not using SDL, you'll still
+ have the old behaviour (dimmed spaces for fog of war), and no significant
+ amount of extra memory will be used.
+ --
+ gtk/gx11.h: Add fog_image pointer to PixmapInfo structure.
+ gtk/image.c: Add code to render greyscale image. Also add code to free
+ greyscale image.
+ gtk/sdl.c: Modify map draw code to use grey fog image if space is fog of
+ war space. Disable dimming of fog spaces - no longer necessary as
+ space now looks different.
+ MSW 2003-03-24
------------------------------------------------------------------------------
Changes for 1.5.0:
Index: client/configure.in
diff -c client/configure.in:1.35 client/configure.in:1.36
*** client/configure.in:1.35 Mon Feb 24 23:52:22 2003
--- client/configure.in Sun Mar 23 22:01:26 2003
***************
*** 162,195 ****
AC_CHECK_LIB(asound, main, alsa_sound=yes, , -lm)
fi
AC_CHECK_LIB(audio, alNewConfig, sgi_sound=yes, )
AC_CHECK_HEADER(sys/soundcard.h, oss_sound=yes, oss_sound=no)
AC_CHECK_HEADER(sys/audioio.h, sun_sound=yes, sun_sound=no)
! if eval "test x$alsa_sound = xyes"; then
! echo "Using ALSA sound system"
! CFLAGS="$CFLAGS -DALSA_SOUND"
SND_LIBS="-lasound -lm"
SUBDIRS="$SUBDIRS sound-src"
! else
! if eval "test x$sgi_sound = xyes"; then
echo "Using SGI sound system"
! CFLAGS="$CFLAGS -DSGI_SOUND"
! SND_LIBS="-laudio"
! SUBDIRS="$SUBDIRS sound-src"
! else
! if eval "test x$oss_sound = xyes"; then
! echo "Using OSS sound system"
! CFLAGS="$CFLAGS -DOSS_SOUND"
! SND_LIBS="-lm"
! SUBDIRS="$SUBDIRS sound-src"
else
! if eval "test x$sun_sound = xyes"; then
! echo "Using solaris sound system"
! CFLAGS="$CFLAGS -DSUN_SOUND"
! SND_LIBS="-lm"
! SUBDIRS="$SUBDIRS sound-src"
! else
! echo "No suitable sound system found."
fi
fi
fi
--- 162,203 ----
AC_CHECK_LIB(asound, main, alsa_sound=yes, , -lm)
fi
AC_CHECK_LIB(audio, alNewConfig, sgi_sound=yes, )
+ AC_CHECK_HEADER(alsa/asoundlib.h, alsa9_sound=yes, alsa_sound=no)
AC_CHECK_HEADER(sys/soundcard.h, oss_sound=yes, oss_sound=no)
AC_CHECK_HEADER(sys/audioio.h, sun_sound=yes, sun_sound=no)
! if eval "test x$alsa9_sound = xyes"; then
! echo "Using ALSA sound system (0.9.x)"
! CFLAGS="$CFLAGS -DALSA9_SOUND"
SND_LIBS="-lasound -lm"
SUBDIRS="$SUBDIRS sound-src"
! else
! if eval "test x$alsa_sound = xyes"; then
! echo "Using ALSA sound system"
! CFLAGS="$CFLAGS -DALSA_SOUND"
! SND_LIBS="-lasound -lm"
! SUBDIRS="$SUBDIRS sound-src"
! else
! if eval "test x$sgi_sound = xyes"; then
echo "Using SGI sound system"
! CFLAGS="$CFLAGS -DSGI_SOUND"
! SND_LIBS="-laudio"
! SUBDIRS="$SUBDIRS sound-src"
else
! if eval "test x$oss_sound = xyes"; then
! echo "Using OSS sound system"
! CFLAGS="$CFLAGS -DOSS_SOUND"
! SND_LIBS="-lm"
! SUBDIRS="$SUBDIRS sound-src"
! else
! if eval "test x$sun_sound = xyes"; then
! echo "Using solaris sound system"
! CFLAGS="$CFLAGS -DSUN_SOUND"
! SND_LIBS="-lm"
! SUBDIRS="$SUBDIRS sound-src"
! else
! echo "No suitable sound system found."
! fi
fi
fi
fi
Index: client/common/client.c
diff -c client/common/client.c:1.12 client/common/client.c:1.13
*** client/common/client.c:1.12 Sun Jan 12 20:54:50 2003
--- client/common/client.c Sun Mar 23 22:01:28 2003
***************
*** 1,6 ****
/*
* static char *rcsid_client_c =
! * "$Id: client.c,v 1.12 2003/01/13 04:54:50 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
--- 1,6 ----
/*
* static char *rcsid_client_c =
! * "$Id: client.c,v 1.13 2003/03/24 06:01:28 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
***************
*** 264,270 ****
cs_print_string(csocket.fd,
"setup map1acmd 1 sound %d sexp %d darkness %d newmapcmd 1 faceset %d facecache %d itemcmd 2",
sound>=0, want_skill_exp,
! want_config[CONFIG_FOGWAR], face_info.faceset,
want_config[CONFIG_CACHE]);
use_config[CONFIG_MAPHEIGHT]=want_config[CONFIG_MAPHEIGHT];
--- 264,270 ----
cs_print_string(csocket.fd,
"setup map1acmd 1 sound %d sexp %d darkness %d newmapcmd 1 faceset %d facecache %d itemcmd 2",
sound>=0, want_skill_exp,
! want_config[CONFIG_LIGHTING]?1:0, face_info.faceset,
want_config[CONFIG_CACHE]);
use_config[CONFIG_MAPHEIGHT]=want_config[CONFIG_MAPHEIGHT];
Index: client/gtk/gx11.h
diff -c client/gtk/gx11.h:1.6 client/gtk/gx11.h:1.7
*** client/gtk/gx11.h:1.6 Tue May 21 21:58:26 2002
--- client/gtk/gx11.h Sun Mar 23 22:01:29 2003
***************
*** 1,6 ****
/*
* static char *rcsid_gx11_h =
! * "$Id: gx11.h,v 1.6 2002/05/22 04:58:26 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
--- 1,6 ----
/*
* static char *rcsid_gx11_h =
! * "$Id: gx11.h,v 1.7 2003/03/24 06:01:29 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
***************
*** 55,60 ****
--- 55,61 ----
uint16 icon_width, icon_height;
void *map_mask, *map_image;
uint16 map_width, map_height;
+ void *fog_image;
} PixmapInfo;
extern PixmapInfo *pixmaps[MAXPIXMAPNUM];
Index: client/gtk/image.c
diff -c client/gtk/image.c:1.11 client/gtk/image.c:1.12
*** client/gtk/image.c:1.11 Fri May 31 00:26:03 2002
--- client/gtk/image.c Sun Mar 23 22:01:29 2003
***************
*** 1,6 ****
/*
* static char *rcsid_image_c =
! * "$Id: image.c,v 1.11 2002/05/31 07:26:03 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
--- 1,6 ----
/*
* static char *rcsid_image_c =
! * "$Id: image.c,v 1.12 2003/03/24 06:01:29 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
***************
*** 129,144 ****
--- 129,201 ----
if (use_config[CONFIG_SDL]) {
#if defined(HAVE_SDL)
+ int i;
+ SDL_Surface *fog;
+ uint32 g,*p;
+ uint8 *l;
+
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
pi->map_image = SDL_CreateRGBSurfaceFrom(data, pi->map_width,
pi->map_height, 32, pi->map_width * 4, 0xff,
0xff00, 0xff0000, 0xff000000);
+
+ fog = SDL_CreateRGBSurface(SDL_SRCALPHA | SDL_HWSURFACE,
+ pi->map_width, pi->map_height, 32, 0xff,
+ 0xff00, 0xff0000, 0xff000000);
+ SDL_LockSurface(fog);
+
+ for (i=0; i < pi->map_width * pi->map_height; i++) {
+ l = (uint8 *) (data + i*4);
+ #if 1
+ g = MAX(*l, *(l+1));
+ g = MAX(g, *(l+2));
+ #else
+ g = ( *l + *(l+1) + *(l+2)) / 3;
+ #endif
+ p = (uint32*) fog->pixels + i;
+ *(uint32*) p = g | (g << 8) | (g << 16) | (*(l + 3) << 24);
+ }
+
+ SDL_UnlockSurface(fog);
+ pi->fog_image = fog;
#else
/* Big endian */
pi->map_image = SDL_CreateRGBSurfaceFrom(data, pi->map_width,
pi->map_height, 32, pi->map_width * 4, 0xff000000,
0xff0000, 0xff00, 0xff);
+ fog = SDL_CreateRGBSurface(SDL_SRCALPHA | SDL_HWSURFACE,
+ pi->map_width, pi->map_height, 32, 0xff000000,
+ 0xff0000, 0xff00, 0xff);
+ SDL_LockSurface(fog);
+
+ /* I think this works out, but haven't tried it on a big
+ * endian machine - my recollection is that the png data
+ * would be in the same order, just the bytes for it to go
+ * on teh screen are reversed.
+ */
+ for (i=0; i < pi->map_width * pi->map_height; i++) {
+ l = (uint8 *) (data + i*4);
+ #if 1
+ g = MAX(*l, *(l+1));
+ g = MAX(g, *(l+2));
+ #else
+ g = ( *l + *(l+1) + *(l+2)) / 3;
+ #endif
+ p = (uint32*) fog->pixels + i;
+ *(uint32*) p = (g << 8) | (g << 16) | (g << 24) | *(l + 3);
+ }
+
+ for (i=0; i < pi->map_width * pi->map_height; i+= 4) {
+ p = (uint32) (fog->pixels + i);
+ g = ( ((p >> 24) & 0xff) + ((p >> 16) & 0xff) + ((p >> 8) & 0xff)) / 3;
+ p = (g << 24) | (g << 16) | (g << 8) | (p & 0xff);
+ l = (uint32*) fog->pixels + i;
+ *(uint32*) l = p;
+ }
+
+ SDL_UnlockSurface(fog);
+ pi->fog_image = fog;
#endif
#endif
***************
*** 160,165 ****
--- 217,224 ----
if (use_config[CONFIG_SDL]) {
SDL_FreeSurface(pi->map_image);
free(((SDL_Surface*)pi->map_image)->pixels);
+ SDL_FreeSurface(pi->fog_image);
+ free(((SDL_Surface*)pi->fog_image)->pixels);
}
else
#endif
Index: client/gtk/sdl.c
diff -c client/gtk/sdl.c:1.7 client/gtk/sdl.c:1.8
*** client/gtk/sdl.c:1.7 Wed Jul 3 14:10:54 2002
--- client/gtk/sdl.c Sun Mar 23 22:01:29 2003
***************
*** 1,6 ****
/*
* static char *rcsid_sdl_c =
! * "$Id: sdl.c,v 1.7 2002/07/03 21:10:54 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_sdl_c =
! * "$Id: sdl.c,v 1.8 2003/03/24 06:01:29 mwedel Exp $";
*/
/*
***************
*** 591,599 ****
src.h = map_image_size;
dst.x = x * map_image_size;
dst.y = y * map_image_size;
! if (SDL_BlitSurface(pixmaps[the_map.cells[mx][my].tails[layer].face]->map_image,
! &src, mapsurface, &dst))
! do_SDL_error( "BlitSurface", __FILE__, __LINE__);
}
/* Draw the head now - logic is pretty much exactly the same
* as that for the tail, except we know that we this is at the lower right,
--- 591,605 ----
src.h = map_image_size;
dst.x = x * map_image_size;
dst.y = y * map_image_size;
! if (the_map.cells[mx][my].cleared) {
! if (SDL_BlitSurface(pixmaps[the_map.cells[mx][my].tails[layer].face]->fog_image,
! &src, mapsurface, &dst))
! do_SDL_error( "BlitSurface", __FILE__, __LINE__);
! } else {
! if (SDL_BlitSurface(pixmaps[the_map.cells[mx][my].tails[layer].face]->map_image,
! &src, mapsurface, &dst))
! do_SDL_error( "BlitSurface", __FILE__, __LINE__);
! }
}
/* Draw the head now - logic is pretty much exactly the same
* as that for the tail, except we know that we this is at the lower right,
***************
*** 608,622 ****
src.h = map_image_size;
dst.x = x * map_image_size;
dst.y = y * map_image_size;
! if (SDL_BlitSurface(pixmaps[the_map.cells[mx][my].heads[layer].face]->map_image,
! &src, mapsurface, &dst))
! do_SDL_error( "BlitSurface", __FILE__, __LINE__);
}
} /* else for processing the layers */
/* Do final logic for this map space */
the_map.cells[mx][my].need_update=0;
if (the_map.cells[mx][my].cleared == 1 && use_config[CONFIG_FOGWAR]) {
/* If this is a fogcell, copy over the fogmap */
dst.x = x * map_image_size;
--- 614,635 ----
src.h = map_image_size;
dst.x = x * map_image_size;
dst.y = y * map_image_size;
! if (the_map.cells[mx][my].cleared) {
! if (SDL_BlitSurface(pixmaps[the_map.cells[mx][my].heads[layer].face]->fog_image,
! &src, mapsurface, &dst))
! do_SDL_error( "BlitSurface", __FILE__, __LINE__);
! } else {
! if (SDL_BlitSurface(pixmaps[the_map.cells[mx][my].heads[layer].face]->map_image,
! &src, mapsurface, &dst))
! do_SDL_error( "BlitSurface", __FILE__, __LINE__);
! }
}
} /* else for processing the layers */
/* Do final logic for this map space */
the_map.cells[mx][my].need_update=0;
+ #if 0
if (the_map.cells[mx][my].cleared == 1 && use_config[CONFIG_FOGWAR]) {
/* If this is a fogcell, copy over the fogmap */
dst.x = x * map_image_size;
***************
*** 626,632 ****
/* Only worry about lighting if it is not a fog cell. If it is
* a fog cell, lighting information is probably bogus.
*/
! else if (use_config[CONFIG_LIGHTING] == CFG_LT_TILE) {
dst.x = x * map_image_size;
dst.y = y * map_image_size;
dst.w = map_image_size;
--- 639,647 ----
/* Only worry about lighting if it is not a fog cell. If it is
* a fog cell, lighting information is probably bogus.
*/
! else
! #endif
! if (use_config[CONFIG_LIGHTING] == CFG_LT_TILE) {
dst.x = x * map_image_size;
dst.y = y * map_image_size;
dst.w = map_image_size;
Index: client/x11/x11.c
diff -c client/x11/x11.c:1.13 client/x11/x11.c:1.14
*** client/x11/x11.c:1.13 Fri Feb 21 09:15:52 2003
--- client/x11/x11.c Sun Mar 23 22:01:29 2003
***************
*** 1,6 ****
/*
* static char *rcsid_x11_c =
! * "$Id: x11.c,v 1.13 2003/02/21 17:15:52 crowbert Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
--- 1,6 ----
/*
* static char *rcsid_x11_c =
! * "$Id: x11.c,v 1.14 2003/03/24 06:01:29 mwedel Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
***************
*** 2441,2453 ****
if (tmp) {
switch(button) {
case 1:
! if (xbutton->state == ShiftMask)
toggle_locked(tmp);
else
client_send_examine (tmp->tag);
break;
case 2:
! if (xbutton->state == ShiftMask)
send_mark_obj(tmp);
else
client_send_apply (tmp->tag);
--- 2441,2453 ----
if (tmp) {
switch(button) {
case 1:
! if (xbutton->state & ShiftMask)
toggle_locked(tmp);
else
client_send_examine (tmp->tag);
break;
case 2:
! if (xbutton->state & ShiftMask)
send_mark_obj(tmp);
else
client_send_apply (tmp->tag);
|
|
From: <cro...@li...> - 2003-03-21 08:13:39
|
Module Name: maps-bigworld Committed By: mwedel Date: Fri Mar 21 08:13:08 UTC 2003 Modified Files: maps-bigworld/navar_city: library maps-bigworld/scorn/misc: beginners maps-bigworld/styles/specialmaps: tinytrade Log Message: bring forward some typos that were made in the small world maps to the big world maps (library & beginners). remove some excess floors from the tinytrade map. MSW 2003-03-20 Start of context diffs Index: maps-bigworld/navar_city/library diff -c maps-bigworld/navar_city/library:1.2 maps-bigworld/navar_city/library:1.3 *** maps-bigworld/navar_city/library:1.2 Thu Jan 16 23:34:13 2003 --- maps-bigworld/navar_city/library Fri Mar 21 00:13:07 2003 *************** *** 2400,2406 **** y 4 end arch locked_door1 ! slaying rare_books_navar msg See the librarian about getting in. endmsg --- 2400,2406 ---- y 4 end arch locked_door1 ! slaying navar_rare_books msg See the librarian about getting in. endmsg Index: maps-bigworld/scorn/misc/beginners diff -c maps-bigworld/scorn/misc/beginners:1.1 maps-bigworld/scorn/misc/beginners:1.2 *** maps-bigworld/scorn/misc/beginners:1.1 Mon Dec 17 23:04:22 2001 --- maps-bigworld/scorn/misc/beginners Fri Mar 21 00:13:07 2003 *************** *** 3429,3435 **** y 26 end arch button_handle ! name Type an A to applay x 18 y 26 connected 2 --- 3429,3435 ---- y 26 end arch button_handle ! name Type an A to apply x 18 y 26 connected 2 Index: maps-bigworld/styles/specialmaps/tinytrade diff -c maps-bigworld/styles/specialmaps/tinytrade:1.1 maps-bigworld/styles/specialmaps/tinytrade:1.2 *** maps-bigworld/styles/specialmaps/tinytrade:1.1 Tue Sep 3 23:49:12 2002 --- maps-bigworld/styles/specialmaps/tinytrade Fri Mar 21 00:13:07 2003 *************** *** 5,12 **** Email: gn...@fo... Date: Mon Jan 18 15:47:50 1999 endmsg ! x 6 ! y 5 end arch shop_empty y 2 --- 5,12 ---- Email: gn...@fo... Date: Mon Jan 18 15:47:50 1999 endmsg ! width 6 ! height 5 end arch shop_empty y 2 *************** *** 50,60 **** x 2 y 1 end ! arch woodfloor ! x 2 ! y 2 ! end ! arch shop_floor x 2 y 2 end --- 50,56 ---- x 2 y 1 end ! arch shop_empty x 2 y 2 end *************** *** 81,90 **** arch woodwall_2_1_2 x 3 y 1 - end - arch woodfloor - x 3 - y 2 end arch shop_floor x 3 --- 77,82 ---- |
|
From: <cro...@li...> - 2003-03-21 08:01:21
|
Module Name: crossfire
Committed By: mwedel
Date: Fri Mar 21 08:01:14 UTC 2003
Modified Files:
crossfire: ChangeLog
crossfire/server: spell_effect.c spell_util.c
Log Message:
server/spell_effect.c: Some code cleanuip to cast_change_attr - mostly
to combine the processing of the stat improving spells together.
The actual change to playability is that bless and holy possession
don't stack if cast multiple times.
server/spell_util.c: Modify create_aura so that player can't have more than
one aura (of the same type) active at a time.
MSW 2003-03-20
The following files had too many changes to show the context diffs here:
cvs rdiff -r1.103 -r1.104 crossfire/server/spell_effect.c
Start of context diffs
Index: crossfire/ChangeLog
diff -c crossfire/ChangeLog:1.57 crossfire/ChangeLog:1.58
*** crossfire/ChangeLog:1.57 Wed Mar 19 23:57:57 2003
--- crossfire/ChangeLog Fri Mar 21 00:01:03 2003
***************
*** 17,22 ****
--- 17,30 ----
------------------------------------------------------------------------------
Changes for CVS:
+ server/spell_effect.c: Some code cleanuip to cast_change_attr - mostly
+ to combine the processing of the stat improving spells together.
+ The actual change to playability is that bless and holy possession
+ don't stack if cast multiple times.
+ server/spell_util.c: Modify create_aura so that player can't have more than
+ one aura (of the same type) active at a time.
+ MSW 2003-03-20
+
server/apply.c: Change weapon improving code to only use up the number of
potions that it needs, and not all on the ground. Required adding
another arg to eat_item() which is the number of items to consume.
Index: crossfire/server/spell_util.c
diff -c crossfire/server/spell_util.c:1.77 crossfire/server/spell_util.c:1.78
*** crossfire/server/spell_util.c:1.77 Fri Feb 21 23:26:56 2003
--- crossfire/server/spell_util.c Fri Mar 21 00:01:11 2003
***************
*** 1,6 ****
/*
* static char *rcsid_spell_util_c =
! * "$Id: spell_util.c,v 1.77 2003/02/22 07:26:56 mwedel Exp $";
*/
--- 1,6 ----
/*
* static char *rcsid_spell_util_c =
! * "$Id: spell_util.c,v 1.78 2003/03/21 08:01:11 mwedel Exp $";
*/
***************
*** 2318,2337 ****
int create_aura(object *op, object *caster, archetype *aura_arch, int spell_type,
int magic)
{
! object *new_aura = arch_to_object(aura_arch);
! new_aura->stats.food = SP_PARAMETERS[spell_type].bdur +
10* SP_level_strength_adjust(op,caster,spell_type);
! new_aura->stats.dam = SP_PARAMETERS[spell_type].bdam
+SP_level_dam_adjust(op,caster,spell_type);
! set_owner(new_aura,op);
! if(magic) new_aura->attacktype|=AT_MAGIC;
! if(new_aura->owner) {
! new_aura->chosen_skill = op->chosen_skill;
! if(new_aura->chosen_skill) new_aura->exp_obj = op->chosen_skill->exp_obj;
! }
! new_aura->level = SK_level(caster);
! insert_ob_in_ob(new_aura, op);
! return 1;
}
/* look_up_spell_by_name: peterm
--- 2318,2348 ----
int create_aura(object *op, object *caster, archetype *aura_arch, int spell_type,
int magic)
{
! int refresh=0;
! object *new_aura;
!
! new_aura = present_arch_in_ob(aura_arch, op);
! if (new_aura) refresh=1;
! else new_aura = arch_to_object(aura_arch);
!
! new_aura->stats.food = SP_PARAMETERS[spell_type].bdur +
10* SP_level_strength_adjust(op,caster,spell_type);
! new_aura->stats.dam = SP_PARAMETERS[spell_type].bdam
+SP_level_dam_adjust(op,caster,spell_type);
!
! set_owner(new_aura,op);
! if(magic) new_aura->attacktype|=AT_MAGIC;
!
! if(new_aura->owner) {
! new_aura->chosen_skill = op->chosen_skill;
! if(new_aura->chosen_skill) new_aura->exp_obj = op->chosen_skill->exp_obj;
! }
! new_aura->level = SK_level(caster);
! if (refresh)
! new_draw_info(NDI_UNIQUE, 0, op, "You recast the spell while in effect.");
! else
! insert_ob_in_ob(new_aura, op);
! return 1;
}
/* look_up_spell_by_name: peterm
|
|
From: <cro...@li...> - 2003-03-20 07:57:58
|
Module Name: crossfire
Committed By: mwedel
Date: Thu Mar 20 07:57:57 UTC 2003
Modified Files:
crossfire: ChangeLog
crossfire/include: sproto.h
crossfire/server: apply.c
Log Message:
server/apply.c: Change weapon improving code to only use up the number of
potions that it needs, and not all on the ground. Required adding
another arg to eat_item() which is the number of items to consume.
include/sproto.h: Rebuilt for new eat_item() (actually, a static, so no
longer shows up in this file)
MSW 2003-03-19
Start of context diffs
Index: crossfire/ChangeLog
diff -c crossfire/ChangeLog:1.56 crossfire/ChangeLog:1.57
*** crossfire/ChangeLog:1.56 Wed Mar 19 23:21:04 2003
--- crossfire/ChangeLog Wed Mar 19 23:57:57 2003
***************
*** 17,22 ****
--- 17,27 ----
------------------------------------------------------------------------------
Changes for CVS:
+ server/apply.c: Change weapon improving code to only use up the number of
+ potions that it needs, and not all on the ground. Required adding
+ another arg to eat_item() which is the number of items to consume.
+ include/sproto.h: Rebuilt for new eat_item() (actually, a static, so no
+ longer shows up in this file)
server/attack.c: Change did_make_save to strip out magic attacktype when making
saves for objects - otherwise, things like poison cloud destroy objects.
server/time.c: deal with player animations special in process_object - need to
Index: crossfire/include/sproto.h
diff -c crossfire/include/sproto.h:1.85 crossfire/include/sproto.h:1.86
*** crossfire/include/sproto.h:1.85 Fri Feb 14 00:18:41 2003
--- crossfire/include/sproto.h Wed Mar 19 23:57:57 2003
***************
*** 13,19 ****
/* apply.c */
int apply_potion(object *op, object *tmp);
int check_item(object *op, char *item);
- void eat_item(object *op, char *item);
int check_weapon_power(object *who, int improvs);
int improve_weapon_stat(object *op, object *improver, object *weapon, signed char *stat, int sacrifice_count, char *statname);
int prepare_weapon(object *op, object *improver, object *weapon);
--- 13,18 ----
Index: crossfire/server/apply.c
diff -c crossfire/server/apply.c:1.80 crossfire/server/apply.c:1.81
*** crossfire/server/apply.c:1.80 Fri Mar 7 21:35:32 2003
--- crossfire/server/apply.c Wed Mar 19 23:57:56 2003
***************
*** 1,6 ****
/*
* static char *rcsid_apply_c =
! * "$Id: apply.c,v 1.80 2003/03/08 05:35:32 mwedel Exp $";
*/
/*
CrossFire, A Multiplayer game for X-windows
--- 1,6 ----
/*
* static char *rcsid_apply_c =
! * "$Id: apply.c,v 1.81 2003/03/20 07:57:56 mwedel Exp $";
*/
/*
CrossFire, A Multiplayer game for X-windows
***************
*** 294,314 ****
return count;
}
! void eat_item(object *op,char *item)
{
! object *prev;
!
! prev = op;
! op=op->below;
- while(op!=NULL) {
- if (strcmp(op->arch->name,item)==0) {
- decrease_ob_nr(op,op->nrof);
- op=prev;
- }
prev = op;
op=op->below;
! }
}
/* This checks to see of the player (who) is sufficient level to use a weapon
--- 294,325 ----
return count;
}
! /* This object removes 'nrof' of what item->slaying says to
! * remove. op is typically the player, which is only
! * really used to determine what space to look at.
! * Modified to only eat 'nrof' of objects.
! */
! static void eat_item(object *op,char *item, int nrof)
{
! object *prev;
prev = op;
op=op->below;
!
! while(op!=NULL) {
! if (strcmp(op->arch->name,item)==0) {
! if (op->nrof >= nrof) {
! decrease_ob_nr(op,nrof);
! return;
! } else {
! decrease_ob_nr(op,op->nrof);
! nrof -= op->nrof;
! }
! op=prev;
! }
! prev = op;
! op=op->below;
! }
}
/* This checks to see of the player (who) is sufficient level to use a weapon
***************
*** 422,434 ****
sacrifice_count=check_sacrifice(op,improver);
if (sacrifice_count<=0)
return 0;
! sacrifice_count = isqrt(sacrifice_count);
! weapon->level=sacrifice_count;
new_draw_info(NDI_UNIQUE,0,op,"Your sacrifice was accepted.");
! eat_item(op, improver->slaying);
new_draw_info_format(NDI_UNIQUE, 0, op,"Your *%s may be improved %d times.",
! weapon->name,sacrifice_count);
sprintf(buf,"%s's %s",op->name,weapon->name);
free_string(weapon->name);
--- 433,444 ----
sacrifice_count=check_sacrifice(op,improver);
if (sacrifice_count<=0)
return 0;
! weapon->level=isqrt(sacrifice_count);
new_draw_info(NDI_UNIQUE,0,op,"Your sacrifice was accepted.");
! eat_item(op, improver->slaying, sacrifice_count);
new_draw_info_format(NDI_UNIQUE, 0, op,"Your *%s may be improved %d times.",
! weapon->name,weapon->level);
sprintf(buf,"%s's %s",op->name,weapon->name);
free_string(weapon->name);
***************
*** 521,527 ****
"You need at least %d %s", sacrifice_needed, improver->slaying);
return 0;
}
! eat_item(op,improver->slaying);
weapon->item_power++;
switch (improver->stats.sp) {
--- 531,537 ----
"You need at least %d %s", sacrifice_needed, improver->slaying);
return 0;
}
! eat_item(op,improver->slaying, sacrifice_needed);
weapon->item_power++;
switch (improver->stats.sp) {
|
|
From: <cro...@li...> - 2003-03-20 07:21:06
|
Module Name: crossfire
Committed By: mwedel
Date: Thu Mar 20 07:21:05 UTC 2003
Modified Files:
crossfire: ChangeLog
crossfire/server: attack.c time.c
Log Message:
server/attack.c: Change did_make_save to strip out magic attacktype when making
saves for objects - otherwise, things like poison cloud destroy objects.
server/time.c: deal with player animations special in process_object - need to
pass in the facing value, and not direction, since direction gets reset.
MSW 2003-03-19
Start of context diffs
Index: crossfire/ChangeLog
diff -c crossfire/ChangeLog:1.55 crossfire/ChangeLog:1.56
*** crossfire/ChangeLog:1.55 Wed Mar 19 00:04:50 2003
--- crossfire/ChangeLog Wed Mar 19 23:21:04 2003
***************
*** 17,22 ****
--- 17,28 ----
------------------------------------------------------------------------------
Changes for CVS:
+ server/attack.c: Change did_make_save to strip out magic attacktype when making
+ saves for objects - otherwise, things like poison cloud destroy objects.
+ server/time.c: deal with player animations special in process_object - need to
+ pass in the facing value, and not direction, since direction gets reset.
+ MSW 2003-03-19
+
common/anim.c: Pass direction to animate_object() - needed for player
animations as player's facing may not match direction.
crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object()
Index: crossfire/server/attack.c
diff -c crossfire/server/attack.c:1.86 crossfire/server/attack.c:1.87
*** crossfire/server/attack.c:1.86 Fri Mar 7 21:35:32 2003
--- crossfire/server/attack.c Wed Mar 19 23:21:05 2003
***************
*** 1,6 ****
/*
* static char *rcsid_attack_c =
! * "$Id: attack.c,v 1.86 2003/03/08 05:35:32 mwedel Exp $";
*/
/*
CrossFire, A Multiplayer game for X-windows
--- 1,6 ----
/*
* static char *rcsid_attack_c =
! * "$Id: attack.c,v 1.87 2003/03/20 07:21:05 mwedel Exp $";
*/
/*
CrossFire, A Multiplayer game for X-windows
***************
*** 62,71 ****
return TRUE;
roll = rndm(1, 20);
! /* the attacktypes have no meaning for object saves */
! type = type & ~(AT_CONFUSION|AT_DRAIN|AT_GHOSTHIT|AT_POISON|AT_SLOW|
AT_PARALYZE|AT_TURN_UNDEAD|AT_FEAR|AT_DEPLETE|AT_DEATH|
! AT_COUNTERSPELL|AT_HOLYWORD|AT_BLIND|AT_LIFE_STEALING);
if (type == 0)
return TRUE;
--- 62,80 ----
return TRUE;
roll = rndm(1, 20);
! /* the attacktypes have no meaning for object saves
! * If the type is only magic, don't adjust type - basically, if
! * pure magic is hitting an object, it should save. However, if it
! * is magic teamed with something else, then strip out the
! * magic type, and instead let the fire, cold, or whatever component
! * destroy the item. Otherwise, you get the case of poisoncloud
! * destroying objects because it has magic attacktype.
! */
! if (type != AT_MAGIC)
! type &= ~(AT_CONFUSION|AT_DRAIN|AT_GHOSTHIT|AT_POISON|AT_SLOW|
AT_PARALYZE|AT_TURN_UNDEAD|AT_FEAR|AT_DEPLETE|AT_DEATH|
! AT_COUNTERSPELL|AT_HOLYWORD|AT_BLIND|AT_LIFE_STEALING|
! AT_MAGIC);
if (type == 0)
return TRUE;
Index: crossfire/server/time.c
diff -c crossfire/server/time.c:1.53 crossfire/server/time.c:1.54
*** crossfire/server/time.c:1.53 Wed Mar 19 00:09:59 2003
--- crossfire/server/time.c Wed Mar 19 23:21:05 2003
***************
*** 1,6 ****
/*
* static char *rcsid_time_c =
! * "$Id: time.c,v 1.53 2003/03/19 08:09:59 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_time_c =
! * "$Id: time.c,v 1.54 2003/03/20 07:21:05 mwedel Exp $";
*/
/*
***************
*** 1222,1229 ****
if(QUERY_FLAG(op, FLAG_MONSTER))
if(move_monster(op) || QUERY_FLAG(op, FLAG_FREED))
return 1;
if(QUERY_FLAG(op, FLAG_ANIMATE) && op->anim_speed==0) {
! animate_object(op, op->direction);
if (QUERY_FLAG(op, FLAG_SEE_ANYWHERE))
make_sure_seen(op);
}
--- 1222,1233 ----
if(QUERY_FLAG(op, FLAG_MONSTER))
if(move_monster(op) || QUERY_FLAG(op, FLAG_FREED))
return 1;
+
if(QUERY_FLAG(op, FLAG_ANIMATE) && op->anim_speed==0) {
! if (op->type == PLAYER)
! animate_object(op, op->facing);
! else
! animate_object(op, op->direction);
if (QUERY_FLAG(op, FLAG_SEE_ANYWHERE))
make_sure_seen(op);
}
|
|
From: <cro...@li...> - 2003-03-19 08:27:23
|
Module Name: arch Committed By: mwedel Date: Wed Mar 19 07:44:31 UTC 2003 Modified Files: arch/player/class/Religious: cleric.arc monk.arc paladin.arc priest.arc arch/player/class/Thief: ninja.arc thief.arc arch/player/class/Warrior: barbarian.arc mage.arc swashbuckl.arc warlock.arc warrior.arc arch/player/class/Wizardry: alchemist.arc evoker_class.arc sorcerer_class.arc wizard_class.arc arch/player/race: dwarf_p.arc elf.arc gnome_p.arc halfling.arc human.arc northman.arc pl_dragon.arc pl_half_orc.arc quetzalcoatl.arc troll_player.arc wraithp.arc Log Message: add 'facings' to all the player related arc's. Needed for it to be compatible with normal object animation. MSW 2003-03-18 Start of context diffs Index: arch/player/class/Religious/cleric.arc diff -c arch/player/class/Religious/cleric.arc:1.2 arch/player/class/Religious/cleric.arc:1.3 *** arch/player/class/Religious/cleric.arc:1.2 Sun Jul 14 21:38:55 2002 --- arch/player/class/Religious/cleric.arc Tue Mar 18 23:44:30 2003 *************** *** 8,13 **** --- 8,14 ---- cleric.131 cleric.151 cleric.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/class/Religious/monk.arc diff -c arch/player/class/Religious/monk.arc:1.4 arch/player/class/Religious/monk.arc:1.5 *** arch/player/class/Religious/monk.arc:1.4 Thu Jan 11 15:59:21 2001 --- arch/player/class/Religious/monk.arc Tue Mar 18 23:44:31 2003 *************** *** 7,12 **** --- 7,13 ---- monk.131 monk.151 monk.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/class/Religious/paladin.arc diff -c arch/player/class/Religious/paladin.arc:1.3 arch/player/class/Religious/paladin.arc:1.4 *** arch/player/class/Religious/paladin.arc:1.3 Sun Jul 14 21:38:55 2002 --- arch/player/class/Religious/paladin.arc Tue Mar 18 23:44:31 2003 *************** *** 8,13 **** --- 8,14 ---- paladin.131 paladin.151 paladin.171 + facings 4 mina is_animated 0 Str 0 Index: arch/player/class/Religious/priest.arc diff -c arch/player/class/Religious/priest.arc:1.1 arch/player/class/Religious/priest.arc:1.2 *** arch/player/class/Religious/priest.arc:1.1 Mon Oct 16 11:55:06 2000 --- arch/player/class/Religious/priest.arc Tue Mar 18 23:44:31 2003 *************** *** 8,13 **** --- 8,14 ---- priestnew.131 priestnew.151 priestnew.171 + facings 4 mina is_animated 0 Str -2 Index: arch/player/class/Thief/ninja.arc diff -c arch/player/class/Thief/ninja.arc:1.1 arch/player/class/Thief/ninja.arc:1.2 *** arch/player/class/Thief/ninja.arc:1.1 Mon Oct 16 11:55:06 2000 --- arch/player/class/Thief/ninja.arc Tue Mar 18 23:44:31 2003 *************** *** 7,12 **** --- 7,13 ---- ninja.131 ninja.151 ninja.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/class/Warrior/barbarian.arc diff -c arch/player/class/Warrior/barbarian.arc:1.1 arch/player/class/Warrior/barbarian.arc:1.2 *** arch/player/class/Warrior/barbarian.arc:1.1 Mon Oct 16 11:55:07 2000 --- arch/player/class/Warrior/barbarian.arc Tue Mar 18 23:44:31 2003 *************** *** 7,12 **** --- 7,13 ---- barbarian.131 barbarian.151 barbarian.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/class/Wizardry/alchemist.arc diff -c arch/player/class/Wizardry/alchemist.arc:1.2 arch/player/class/Wizardry/alchemist.arc:1.3 *** arch/player/class/Wizardry/alchemist.arc:1.2 Sun Jul 14 21:38:55 2002 --- arch/player/class/Wizardry/alchemist.arc Tue Mar 18 23:44:31 2003 *************** *** 7,12 **** --- 7,13 ---- alchemist.131 alchemist.151 alchemist.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/class/Wizardry/evoker_class.arc diff -c arch/player/class/Wizardry/evoker_class.arc:1.3 arch/player/class/Wizardry/evoker_class.arc:1.4 *** arch/player/class/Wizardry/evoker_class.arc:1.3 Sun Jul 14 21:38:55 2002 --- arch/player/class/Wizardry/evoker_class.arc Tue Mar 18 23:44:31 2003 *************** *** 7,12 **** --- 7,13 ---- evoker.131 evoker.151 evoker.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/class/Wizardry/sorcerer_class.arc diff -c arch/player/class/Wizardry/sorcerer_class.arc:1.1 arch/player/class/Wizardry/sorcerer_class.arc:1.2 *** arch/player/class/Wizardry/sorcerer_class.arc:1.1 Mon Oct 16 11:55:07 2000 --- arch/player/class/Wizardry/sorcerer_class.arc Tue Mar 18 23:44:31 2003 *************** *** 7,12 **** --- 7,13 ---- sorcerer.131 sorcerer.151 sorcerer.171 + facings 4 mina is_animated 0 type 37 Index: arch/player/race/dwarf_p.arc diff -c arch/player/race/dwarf_p.arc:1.3 arch/player/race/dwarf_p.arc:1.4 *** arch/player/race/dwarf_p.arc:1.3 Sun Jul 14 21:38:56 2002 --- arch/player/race/dwarf_p.arc Tue Mar 18 23:44:31 2003 *************** *** 28,33 **** --- 28,34 ---- dwarf_p.131 dwarf_p.111 dwarf_p.171 + facings 4 mina is_animated 0 type 1 Index: arch/player/race/gnome_p.arc diff -c arch/player/race/gnome_p.arc:1.4 arch/player/race/gnome_p.arc:1.5 *** arch/player/race/gnome_p.arc:1.4 Sun Jul 14 21:38:56 2002 --- arch/player/race/gnome_p.arc Tue Mar 18 23:44:31 2003 *************** *** 28,33 **** --- 28,34 ---- gnome_p.131 gnome_p.151 gnome_p.171 + facings 4 mina is_animated 0 type 1 Index: arch/player/race/quetzalcoatl.arc diff -c arch/player/race/quetzalcoatl.arc:1.7 arch/player/race/quetzalcoatl.arc:1.8 *** arch/player/race/quetzalcoatl.arc:1.7 Sun Jul 14 21:38:56 2002 --- arch/player/race/quetzalcoatl.arc Tue Mar 18 23:44:31 2003 *************** *** 36,41 **** --- 36,42 ---- quetzalcoatl.132 quetzalcoatl.171 quetzalcoatl.172 + facings 2 mina is_animated 0 type 1 Index: arch/player/race/wraithp.arc diff -c arch/player/race/wraithp.arc:1.8 arch/player/race/wraithp.arc:1.9 *** arch/player/race/wraithp.arc:1.8 Sun Jul 14 21:38:56 2002 --- arch/player/race/wraithp.arc Tue Mar 18 23:44:31 2003 *************** *** 29,34 **** --- 29,35 ---- wraithp.131 wraithp.151 wraithp.171 + facings 4 mina is_animated 0 type 1 |
|
From: <cro...@li...> - 2003-03-19 08:18:02
|
Module Name: crossfire Committed By: mwedel Date: Wed Mar 19 08:18:00 UTC 2003 Modified Files: crossfire/include: config.h Log Message: increase MAX_OBJECTS to 100,000. This value may still be too low, but I have observed problems on a very active server (metalforge) where maps are getting swapped out immediately as a player transfers to a new one - this causes problems (crashes) in the caller that expects the map the object just came from to still be in memory. MSW 2003-03-18 Start of context diffs Index: crossfire/include/config.h diff -c crossfire/include/config.h:1.49 crossfire/include/config.h:1.50 *** crossfire/include/config.h:1.49 Tue Nov 26 00:57:55 2002 --- crossfire/include/config.h Wed Mar 19 00:18:00 2003 *************** *** 1,6 **** /* * static char *rcsid_config_h = ! * "$Id: config.h,v 1.49 2002/11/26 08:57:55 garbled Exp $"; */ /* --- 1,6 ---- /* * static char *rcsid_config_h = ! * "$Id: config.h,v 1.50 2003/03/19 08:18:00 mwedel Exp $"; */ /* *************** *** 430,436 **** * 25000 is about 8.5 MB */ ! #define MAX_OBJECTS 25000 /* * Max objects low water mark (lwm). If defined, the map swapping strategy --- 430,436 ---- * 25000 is about 8.5 MB */ ! #define MAX_OBJECTS 100000 /* * Max objects low water mark (lwm). If defined, the map swapping strategy |
|
From: <cro...@li...> - 2003-03-19 08:10:01
|
Module Name: crossfire
Committed By: mwedel
Date: Wed Mar 19 08:10:00 UTC 2003
Modified Files:
crossfire/server: main.c time.c
Log Message:
crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object()
MSW 2003-03-18
Start of context diffs
Index: crossfire/server/main.c
diff -c crossfire/server/main.c:1.74 crossfire/server/main.c:1.75
*** crossfire/server/main.c:1.74 Sun Feb 16 18:37:38 2003
--- crossfire/server/main.c Wed Mar 19 00:09:59 2003
***************
*** 1,6 ****
/*
* static char *rcsid_main_c =
! * "$Id: main.c,v 1.74 2003/02/17 02:37:38 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_main_c =
! * "$Id: main.c,v 1.75 2003/03/19 08:09:59 mwedel Exp $";
*/
/*
***************
*** 945,951 ****
* is based on ticks, and not the creatures speed?
*/
if (op->anim_speed && op->last_anim >= op->anim_speed) {
! animate_object (op);
op->last_anim = 1;
} else {
op->last_anim++;
--- 945,951 ----
* is based on ticks, and not the creatures speed?
*/
if (op->anim_speed && op->last_anim >= op->anim_speed) {
! animate_object (op, op->direction);
op->last_anim = 1;
} else {
op->last_anim++;
Index: crossfire/server/time.c
diff -c crossfire/server/time.c:1.52 crossfire/server/time.c:1.53
*** crossfire/server/time.c:1.52 Sun Feb 2 23:23:48 2003
--- crossfire/server/time.c Wed Mar 19 00:09:59 2003
***************
*** 1,6 ****
/*
* static char *rcsid_time_c =
! * "$Id: time.c,v 1.52 2003/02/03 07:23:48 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_time_c =
! * "$Id: time.c,v 1.53 2003/03/19 08:09:59 mwedel Exp $";
*/
/*
***************
*** 1223,1229 ****
if(move_monster(op) || QUERY_FLAG(op, FLAG_FREED))
return 1;
if(QUERY_FLAG(op, FLAG_ANIMATE) && op->anim_speed==0) {
! animate_object(op);
if (QUERY_FLAG(op, FLAG_SEE_ANYWHERE))
make_sure_seen(op);
}
--- 1223,1229 ----
if(move_monster(op) || QUERY_FLAG(op, FLAG_FREED))
return 1;
if(QUERY_FLAG(op, FLAG_ANIMATE) && op->anim_speed==0) {
! animate_object(op, op->direction);
if (QUERY_FLAG(op, FLAG_SEE_ANYWHERE))
make_sure_seen(op);
}
|
|
From: <cro...@li...> - 2003-03-19 08:04:54
|
Module Name: crossfire
Committed By: mwedel
Date: Wed Mar 19 08:04:52 UTC 2003
Modified Files:
crossfire: ChangeLog
crossfire/common: anim.c
crossfire/crossedit: Attr.c
crossfire/include: libproto.h newserver.h
crossfire/plugin_animator: animator_box.c
crossfire/server: move.c player.c spell_effect.c
crossfire/socket: init.c request.c
Log Message:
common/anim.c: Pass direction to animate_object() - needed for player
animations as player's facing may not match direction.
crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object()
include/libproto.h: rebuilt
include/newserver.h, plugin_animator/animator_box.c, socket/init.c,
socket/request.c: Remove newanim field from socket structure - not needed -
how to animate is determined by object, not by socket.
server/move.c: Add check to P_OUT_OF_MAP in teleport function.
server/player.c: change move_player to call animate_object, so it gets full
power of functionality it supports instead of 4 way hardcode animation
information.
server/spell_effect.c: When altars are consecrated, don't look to arch name
for first portion of name - always call them Altar of %s - fixes problem
where altar is special god altar that has god's name in archetype, resulting
in altar of .. of ...
MSW 2003-03-18
Start of context diffs
Index: crossfire/ChangeLog
diff -c crossfire/ChangeLog:1.54 crossfire/ChangeLog:1.55
*** crossfire/ChangeLog:1.54 Fri Mar 7 21:35:31 2003
--- crossfire/ChangeLog Wed Mar 19 00:04:50 2003
***************
*** 17,22 ****
--- 17,39 ----
------------------------------------------------------------------------------
Changes for CVS:
+ common/anim.c: Pass direction to animate_object() - needed for player
+ animations as player's facing may not match direction.
+ crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object()
+ include/libproto.h: rebuilt
+ include/newserver.h, plugin_animator/animator_box.c, socket/init.c,
+ socket/request.c: Remove newanim field from socket structure - not needed -
+ how to animate is determined by object, not by socket.
+ server/move.c: Add check to P_OUT_OF_MAP in teleport function.
+ server/player.c: change move_player to call animate_object, so it gets full
+ power of functionality it supports instead of 4 way hardcode animation
+ information.
+ server/spell_effect.c: When altars are consecrated, don't look to arch name
+ for first portion of name - always call them Altar of %s - fixes problem
+ where altar is special god altar that has god's name in archetype, resulting
+ in altar of .. of ...
+ MSW 2003-03-18
+
Patch for 64 bit experience total, as well as flexible number of levels.
Basically, max level is now dynamic, set in exp_table file. Experience
is now a 64 bit value, so much higher totals now allowed. To
Index: crossfire/common/anim.c
diff -c crossfire/common/anim.c:1.13 crossfire/common/anim.c:1.14
*** crossfire/common/anim.c:1.13 Sun Feb 23 23:38:38 2003
--- crossfire/common/anim.c Wed Mar 19 00:04:48 2003
***************
*** 1,6 ****
/*
* static char *rcsid_anim_c =
! * "$Id: anim.c,v 1.13 2003/02/24 07:38:38 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_anim_c =
! * "$Id: anim.c,v 1.14 2003/03/19 08:04:48 mwedel Exp $";
*/
/*
***************
*** 143,154 ****
/*
* animate_object(object) updates the face-variable of an object.
* If the object is the head of a multi-object, all objects are animated.
*/
! void animate_object(object *op) {
int max_state; /* Max animation state object should be drawn in */
int base_state; /* starting index # to draw from */
- int dir=op->direction;
if(!op->animation_id || !NUM_ANIMATIONS(op)) {
LOG(llevError,"Object lacks animation.\n");
--- 143,158 ----
/*
* animate_object(object) updates the face-variable of an object.
* If the object is the head of a multi-object, all objects are animated.
+ * op is the object to animate.
+ * dir is the direction the object is facing. This is generally same as
+ * op->direction, but in some cases, op->facing is used instead - the
+ * caller has a better idea which one it really wants to be using,
+ * so let it pass along the right one.
*/
! void animate_object(object *op, int dir) {
int max_state; /* Max animation state object should be drawn in */
int base_state; /* starting index # to draw from */
if(!op->animation_id || !NUM_ANIMATIONS(op)) {
LOG(llevError,"Object lacks animation.\n");
***************
*** 203,209 ****
}
#endif
if(op->more)
! animate_object(op->more);
/* update_object will also recursively update all the pieces.
* as such, we call it last, and only call it for the head
--- 207,213 ----
}
#endif
if(op->more)
! animate_object(op->more, dir);
/* update_object will also recursively update all the pieces.
* as such, we call it last, and only call it for the head
Index: crossfire/crossedit/Attr.c
diff -c crossfire/crossedit/Attr.c:1.16 crossfire/crossedit/Attr.c:1.17
*** crossfire/crossedit/Attr.c:1.16 Thu Mar 6 23:33:13 2003
--- crossfire/crossedit/Attr.c Wed Mar 19 00:04:50 2003
***************
*** 316,328 ****
/*** direction ***/
static void putDirection (object *ob, char *str, XtPointer c) {
ob->stats.maxsp = atoi(str);
! animate_object (ob);
}
/*** rotation ***/
static void putRotation (object *ob, char *str, XtPointer c) {
ob->stats.sp = atoi(str);
! animate_object (ob);
}
/*** unique ***/
--- 316,328 ----
/*** direction ***/
static void putDirection (object *ob, char *str, XtPointer c) {
ob->stats.maxsp = atoi(str);
! animate_object (ob, ob->direction);
}
/*** rotation ***/
static void putRotation (object *ob, char *str, XtPointer c) {
ob->stats.sp = atoi(str);
! animate_object (ob, ob->direction);
}
/*** unique ***/
Index: crossfire/include/libproto.h
diff -c crossfire/include/libproto.h:1.41 crossfire/include/libproto.h:1.42
*** crossfire/include/libproto.h:1.41 Fri Mar 7 21:35:32 2003
--- crossfire/include/libproto.h Wed Mar 19 00:04:50 2003
***************
*** 2,8 ****
extern void free_all_anim(void);
extern void init_anim(void);
extern int find_animation(char *name);
! extern void animate_object(object *op);
/* arch.c */
extern archetype *find_archetype_by_object_name(char *name);
extern object *get_archetype_by_object_name(char *name);
--- 2,8 ----
extern void free_all_anim(void);
extern void init_anim(void);
extern int find_animation(char *name);
! extern void animate_object(object *op, int dir);
/* arch.c */
extern archetype *find_archetype_by_object_name(char *name);
extern object *get_archetype_by_object_name(char *name);
Index: crossfire/include/newserver.h
diff -c crossfire/include/newserver.h:1.26 crossfire/include/newserver.h:1.27
*** crossfire/include/newserver.h:1.26 Sun Jul 14 21:57:12 2002
--- crossfire/include/newserver.h Wed Mar 19 00:04:50 2003
***************
*** 1,6 ****
/*
* static char *rcsid_newserver_h =
! * "$Id: newserver.h,v 1.26 2002/07/15 04:57:12 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_newserver_h =
! * "$Id: newserver.h,v 1.27 2003/03/19 08:04:50 mwedel Exp $";
*/
/*
***************
*** 120,126 ****
uint32 newmapcmd:1; /* Send newmap command when entering new map SMACFIGGEN*/
uint32 darkness:1; /* True if client wants darkness information */
uint32 image2:1; /* Client wants image2/face2 commands */
- uint32 newanim:1; /* enable the advanced animation system - MT */
uint32 cs_version, sc_version; /* versions of the client */
uint32 update_look:1; /* If true, we need to send the look window */
uint32 can_write:1; /* Can we write to this socket? */
--- 120,125 ----
Index: crossfire/plugin_animator/animator_box.c
diff -c crossfire/plugin_animator/animator_box.c:1.1 crossfire/plugin_animator/animator_box.c:1.2
*** crossfire/plugin_animator/animator_box.c:1.1 Sun Nov 11 04:55:37 2001
--- crossfire/plugin_animator/animator_box.c Wed Mar 19 00:04:51 2003
***************
*** 74,83 ****
int dir=id;
int face;
printf ("Turning in direction %ld\n",id);
- if(op->contr->socket.newanim)
- face = dir%8;
- else
- face = dir ? (dir - 1) / 2 : -1;
op->facing=dir;
GCFP.Value[0]=op;
GCFP.Value[1]=&face;
--- 74,79 ----
Index: crossfire/server/move.c
diff -c crossfire/server/move.c:1.27 crossfire/server/move.c:1.28
*** crossfire/server/move.c:1.27 Wed Feb 19 22:46:57 2003
--- crossfire/server/move.c Wed Mar 19 00:04:51 2003
***************
*** 1,6 ****
/*
* static char *rcsid_move_c =
! * "$Id: move.c,v 1.27 2003/02/20 06:46:57 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_move_c =
! * "$Id: move.c,v 1.28 2003/03/19 08:04:51 mwedel Exp $";
*/
/*
***************
*** 234,240 ****
if (!(get_map_flags(other_teleporter->map, NULL,
other_teleporter->x + freearr_x[k],
other_teleporter->y + freearr_y[k], NULL,NULL) &
! P_NO_PASS)) break;
}
if (k==9) {
LOG(llevError,"Shop mat %s (%d, %d) is in solid rock?\n",
--- 234,240 ----
if (!(get_map_flags(other_teleporter->map, NULL,
other_teleporter->x + freearr_x[k],
other_teleporter->y + freearr_y[k], NULL,NULL) &
! (P_NO_PASS | P_OUT_OF_MAP))) break;
}
if (k==9) {
LOG(llevError,"Shop mat %s (%d, %d) is in solid rock?\n",
Index: crossfire/server/player.c
diff -c crossfire/server/player.c:1.125 crossfire/server/player.c:1.126
*** crossfire/server/player.c:1.125 Fri Mar 7 21:35:32 2003
--- crossfire/server/player.c Wed Mar 19 00:04:52 2003
***************
*** 1,6 ****
/*
* static char *rcsid_player_c =
! * "$Id: player.c,v 1.125 2003/03/08 05:35:32 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_player_c =
! * "$Id: player.c,v 1.126 2003/03/19 08:04:52 mwedel Exp $";
*/
/*
***************
*** 1979,1999 ****
}
int move_player(object *op,int dir) {
! int face, pick;
!
! if(op->contr->socket.newanim)
! face = dir%8;
! else
! face = dir ? (dir - 1) / 2 : -1;
if(op->map == NULL || op->map->in_memory != MAP_IN_MEMORY)
return 0;
/* peterm: added following line */
- op->facing = dir;
if(QUERY_FLAG(op,FLAG_CONFUSED) && dir)
dir = absdir(dir + RANDOM()%3 + RANDOM()%3 - 2);
if(op->hide) do_hidden_move(op);
if(op->contr->fire_on) {
--- 1979,1995 ----
}
int move_player(object *op,int dir) {
! int pick;
if(op->map == NULL || op->map->in_memory != MAP_IN_MEMORY)
return 0;
/* peterm: added following line */
if(QUERY_FLAG(op,FLAG_CONFUSED) && dir)
dir = absdir(dir + RANDOM()%3 + RANDOM()%3 - 2);
+ op->facing = dir;
+
if(op->hide) do_hidden_move(op);
if(op->contr->fire_on) {
***************
*** 2001,2021 ****
}
else move_player_attack(op,dir);
/* Add special check for newcs players and fire on - this way, the
* server can handle repeat firing.
*/
- pick = check_pick(op);
if (op->contr->fire_on || (op->contr->run_on && pick!=0)) {
op->direction = dir;
} else {
op->direction=0;
}
!
! if(face != -1)
! SET_ANIMATION(op,face);
!
! update_object(op, UP_OBJ_FACE);
!
return 0;
}
--- 1997,2018 ----
}
else move_player_attack(op,dir);
+ pick = check_pick(op);
+
+
/* Add special check for newcs players and fire on - this way, the
* server can handle repeat firing.
*/
if (op->contr->fire_on || (op->contr->run_on && pick!=0)) {
op->direction = dir;
} else {
op->direction=0;
}
! /* Update how the player looks. Use the facing, so direction may
! * get reset to zero. This allows for full animation capabilities
! * for players.
! */
! animate_object(op, op->facing);
return 0;
}
Index: crossfire/server/spell_effect.c
diff -c crossfire/server/spell_effect.c:1.102 crossfire/server/spell_effect.c:1.103
*** crossfire/server/spell_effect.c:1.102 Fri Mar 7 21:35:33 2003
--- crossfire/server/spell_effect.c Wed Mar 19 00:04:52 2003
***************
*** 1,6 ****
/*
* static char *rcsid_spell_effect_c =
! * "$Id: spell_effect.c,v 1.102 2003/03/08 05:35:33 mwedel Exp $";
*/
--- 1,6 ----
/*
* static char *rcsid_spell_effect_c =
! * "$Id: spell_effect.c,v 1.103 2003/03/19 08:04:52 mwedel Exp $";
*/
***************
*** 3399,3405 ****
} else {
/* If we got here, we are consecrating an altar */
if(tmp->name) free_string(tmp->name);
! sprintf(buf,"%s of %s",tmp->arch->clone.name,god->name);
tmp->name = add_string(buf);
tmp->level = SK_level(op);
tmp->other_arch = god->arch;
--- 3399,3405 ----
} else {
/* If we got here, we are consecrating an altar */
if(tmp->name) free_string(tmp->name);
! sprintf(buf,"Altar of %s",god->name);
tmp->name = add_string(buf);
tmp->level = SK_level(op);
tmp->other_arch = god->arch;
Index: crossfire/socket/init.c
diff -c crossfire/socket/init.c:1.27 crossfire/socket/init.c:1.28
*** crossfire/socket/init.c:1.27 Mon Aug 26 00:14:11 2002
--- crossfire/socket/init.c Wed Mar 19 00:04:51 2003
***************
*** 1,6 ****
/*
* static char *rcsid_init_c =
! * "$Id: init.c,v 1.27 2002/08/26 07:14:11 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_init_c =
! * "$Id: init.c,v 1.28 2003/03/19 08:04:51 mwedel Exp $";
*/
/*
***************
*** 104,110 ****
ns->skillexp = 0;
ns->mapmode = Map0Cmd;
ns->darkness = 1;
- ns->newanim = 0;
ns->status = Ns_Add;
ns->comment = NULL;
ns->old_mode = 0;
--- 104,109 ----
Index: crossfire/socket/request.c
diff -c crossfire/socket/request.c:1.46 crossfire/socket/request.c:1.47
*** crossfire/socket/request.c:1.46 Sun Mar 2 21:13:08 2003
--- crossfire/socket/request.c Wed Mar 19 00:04:51 2003
***************
*** 1,6 ****
/*
* static char *rcsid_init_c =
! * "$Id: request.c,v 1.46 2003/03/03 05:13:08 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_init_c =
! * "$Id: request.c,v 1.47 2003/03/19 08:04:51 mwedel Exp $";
*/
/*
***************
*** 136,146 ****
strcat(cmdback, " ");
! if (!strcmp(cmd,"newanim")) {
! ns->newanim = atoi(param);
! strcat(cmdback, param);
! }
! else if (!strcmp(cmd,"sound")) {
ns->sound = atoi(param);
strcat(cmdback, param);
}
--- 136,142 ----
strcat(cmdback, " ");
! if (!strcmp(cmd,"sound")) {
ns->sound = atoi(param);
strcat(cmdback, param);
}
|
|
From: <cro...@li...> - 2003-03-19 07:54:19
|
Module Name: crossfire Committed By: mwedel Date: Wed Mar 19 07:47:00 UTC 2003 Modified Files: crossfire/lib: animations archetypes Log Message: Update rebuilt files - animations have facings info for players, archetypes as weight to button trigger. MSW 2003-03-18 The following files had too many changes to show the context diffs here: cvs rdiff -r1.52 -r1.53 crossfire/lib/animations Start of context diffs Index: crossfire/lib/archetypes diff -c crossfire/lib/archetypes:1.123 crossfire/lib/archetypes:1.124 *** crossfire/lib/archetypes:1.123 Sun Feb 23 23:38:38 2003 --- crossfire/lib/archetypes Tue Mar 18 23:47:00 2003 *************** *** 2507,2512 **** --- 2507,2513 ---- walk_on 1 walk_off 1 editable 48 + weight 1 editor_folder arch/connect end Object trigger |
|
From: <cro...@li...> - 2003-03-16 17:31:40
|
Module Name: arch Committed By: temitchell Date: Sun Mar 16 17:31:39 UTC 2003 Modified Files: arch/player/race: elf.clsc.151.png troll_p.base.151.png Added Files: arch/player/race: elf.base.152.png elf.clsc.152.png gnome.111.png gnome_p.base.152.png human.base.152.png human.clsc.152.png troll_p.base.152.png viking.base.152.png wraithp.base.152.png wraithp.clsc.152.png Log Message: - dropping off some images for player animations Start of context diffs Index: arch/player/race/elf.base.152.png Index: arch/player/race/elf.clsc.151.png Index: arch/player/race/troll_p.base.151.png |
|
From: <cro...@li...> - 2003-03-16 17:28:17
|
Module Name: arch Committed By: temitchell Date: Sun Mar 16 17:28:13 UTC 2003 Modified Files: arch/monster/goblin: gnoll.arc gnoll_chief_arc.arc goblin.arc ogre.arc ogre.clsc.111.png ogre.clsc.112.png ogre_chief.clsc.111.png ogre_leader.clsc.111.png ologhi.arc orc.arc orc.clsc.111.png orc.clsc.112.png orc_chief.base.111.png orc_chief.clsc.111.png orc_chief_arc.arc orc_leader.base.111.png orc_leader.clsc.111.png orc_leader_arc.arc Added Files: arch/monster/goblin: orc_chief.base.112.png orc_chief.clsc.112.png orc_leader.base.112.png orc_leader.clsc.112.png Log Message: orc and ogre cleaning - randomize anims Start of context diffs Index: arch/monster/goblin/gnoll.arc diff -c arch/monster/goblin/gnoll.arc:1.4 arch/monster/goblin/gnoll.arc:1.5 *** arch/monster/goblin/gnoll.arc:1.4 Sun Jul 14 21:38:53 2002 --- arch/monster/goblin/gnoll.arc Sun Mar 16 09:28:12 2003 *************** *** 22,28 **** hp 8 maxhp 8 level 3 ! speed 0.1 weight 45000 run_away 30 can_use_skill 1 --- 22,28 ---- hp 8 maxhp 8 level 3 ! speed -0.1 weight 45000 run_away 30 can_use_skill 1 Index: arch/monster/goblin/goblin.arc diff -c arch/monster/goblin/goblin.arc:1.5 arch/monster/goblin/goblin.arc:1.6 *** arch/monster/goblin/goblin.arc:1.5 Mon Jul 15 22:02:59 2002 --- arch/monster/goblin/goblin.arc Sun Mar 16 09:28:12 2003 *************** *** 19,25 **** hp 6 maxhp 6 level 2 ! speed 0.1 weight 50000 run_away 10 will_apply 2 --- 19,25 ---- hp 6 maxhp 6 level 2 ! speed -0.1 weight 50000 run_away 10 will_apply 2 Index: arch/monster/goblin/ogre.arc diff -c arch/monster/goblin/ogre.arc:1.7 arch/monster/goblin/ogre.arc:1.8 *** arch/monster/goblin/ogre.arc:1.7 Mon Jul 15 22:02:59 2002 --- arch/monster/goblin/ogre.arc Sun Mar 16 09:28:12 2003 *************** *** 24,32 **** maxhp 50 wc 7 dam 8 ! speed 0.08 resist_electricity 30 - weight 140000 run_away 15 can_apply 24 --- 24,31 ---- maxhp 50 wc 7 dam 8 ! speed -0.08 resist_electricity 30 weight 140000 run_away 15 can_apply 24 Index: arch/monster/goblin/ogre.clsc.111.png Index: arch/monster/goblin/ologhi.arc diff -c arch/monster/goblin/ologhi.arc:1.6 arch/monster/goblin/ologhi.arc:1.7 *** arch/monster/goblin/ologhi.arc:1.6 Wed Sep 4 18:41:54 2002 --- arch/monster/goblin/ologhi.arc Sun Mar 16 09:28:12 2003 *************** *** 23,29 **** maxhp 5000 wc -100 dam 100 ! speed 0.25 attack_movement 5 resist_physical 100 resist_magic -100 --- 23,29 ---- maxhp 5000 wc -100 dam 100 ! speed -0.25 attack_movement 5 resist_physical 100 resist_magic -100 Index: arch/monster/goblin/orc_chief.base.112.png Index: arch/monster/goblin/orc_chief_arc.arc diff -c arch/monster/goblin/orc_chief_arc.arc:1.3 arch/monster/goblin/orc_chief_arc.arc:1.4 *** arch/monster/goblin/orc_chief_arc.arc:1.3 Mon Jul 15 22:02:59 2002 --- arch/monster/goblin/orc_chief_arc.arc Sun Mar 16 09:28:12 2003 *************** *** 5,11 **** face orc_chief.111 anim orc_chief.111 ! orc_chief.111 mina monster 1 sleep 1 --- 5,11 ---- face orc_chief.111 anim orc_chief.111 ! orc_chief.112 mina monster 1 sleep 1 *************** *** 20,26 **** maxhp 24 level 3 resist_physical 30 ! speed 0.15 weight 23000 run_away 25 will_apply 2 --- 20,26 ---- maxhp 24 level 3 resist_physical 30 ! speed -0.15 weight 23000 run_away 25 will_apply 2 |
|
From: <cro...@li...> - 2003-03-10 05:08:46
|
Module Name: arch Committed By: temitchell Date: Mon Mar 10 05:08:45 UTC 2003 Modified Files: arch/monster/giant/DreadKnight: DK.arc EDK.arc Log Message: - replaced windows CR/LF(^M) with LF The following files had too many changes to show the context diffs here: cvs rdiff -r1.5 -r1.6 arch/monster/giant/DreadKnight/DK.arc Start of context diffs |
|
From: <cro...@li...> - 2003-03-10 04:12:01
|
Module Name: arch Committed By: temitchell Date: Mon Mar 10 04:12:00 UTC 2003 Modified Files: arch/monster/giant/cyclops: cyclops.arc cyclops.base.131.png cyclops.base.132.png cyclops.base.171.png cyclops.base.172.png cyclops.base.231.png cyclops.base.232.png cyclops.base.271.png cyclops.base.272.png cyclops31.png cyclops32.png cyclops71.png cyclops72.png Log Message: - couldn't figure out what was wrong with my anim - the arc had it backwards all along Start of context diffs Index: arch/monster/giant/cyclops/cyclops.arc diff -c arch/monster/giant/cyclops/cyclops.arc:1.7 arch/monster/giant/cyclops/cyclops.arc:1.8 *** arch/monster/giant/cyclops/cyclops.arc:1.7 Sat Sep 7 06:36:48 2002 --- arch/monster/giant/cyclops/cyclops.arc Sun Mar 9 20:12:00 2003 *************** *** 7,16 **** Wis 11 anim facings 2 - cyclops.131 - cyclops.132 cyclops.171 cyclops.172 mina level 25 Con 56 --- 7,16 ---- Wis 11 anim facings 2 cyclops.171 cyclops.172 + cyclops.131 + cyclops.132 mina level 25 Con 56 *************** *** 61,70 **** face cyclops.231 anim facings 2 - cyclops.231 - cyclops.232 cyclops.271 cyclops.272 mina monster 1 alive 1 --- 61,70 ---- face cyclops.231 anim facings 2 cyclops.271 cyclops.272 + cyclops.231 + cyclops.232 mina monster 1 alive 1 *************** *** 79,88 **** face cyclops.331 anim facings 2 - cyclops.331 - cyclops.332 cyclops.371 cyclops.372 mina monster 1 alive 1 --- 79,88 ---- face cyclops.331 anim facings 2 cyclops.371 cyclops.372 + cyclops.331 + cyclops.332 mina monster 1 alive 1 *************** *** 97,106 **** face cyclops.431 anim facings 2 - cyclops.431 - cyclops.432 cyclops.471 cyclops.472 mina monster 1 alive 1 --- 97,106 ---- face cyclops.431 anim facings 2 cyclops.471 cyclops.472 + cyclops.431 + cyclops.432 mina monster 1 alive 1 *************** *** 116,125 **** face cyclops.531 anim facings 2 - cyclops.531 - cyclops.532 cyclops.571 cyclops.572 mina monster 1 alive 1 --- 116,125 ---- face cyclops.531 anim facings 2 cyclops.571 cyclops.572 + cyclops.531 + cyclops.532 mina monster 1 alive 1 *************** *** 134,143 **** face cyclops.631 anim facings 2 - cyclops.631 - cyclops.632 cyclops.671 cyclops.672 mina monster 1 alive 1 --- 134,143 ---- face cyclops.631 anim facings 2 cyclops.671 cyclops.672 + cyclops.631 + cyclops.632 mina monster 1 alive 1 Index: arch/monster/giant/cyclops/cyclops.base.131.png Index: arch/monster/giant/cyclops/cyclops.base.171.png |
|
From: <cro...@li...> - 2003-03-10 03:29:16
|
Module Name: arch Committed By: temitchell Date: Mon Mar 10 03:29:12 UTC 2003 Modified Files: arch/construct/town: rl_house1.base.111.png rl_house1.base.211.png rl_house1.base.311.png rl_house1.base.411.png rl_house2.base.111.png rl_house2.base.211.png rl_house2.base.311.png rl_house2.base.411.png rl_house3.base.111.png rl_house3.base.211.png rl_house3.base.311.png rl_house3.base.411.png arch/monster/giant/cyclops: cyclops.base.131.png cyclops.base.132.png cyclops.base.231.png cyclops.base.232.png cyclops.base.271.png cyclops.base.272.png cyclops.base.331.png cyclops.base.332.png cyclops.base.371.png cyclops.base.372.png cyclops.base.431.png cyclops.base.432.png cyclops.base.471.png cyclops.base.472.png cyclops.base.531.png cyclops.base.532.png cyclops.base.571.png cyclops.base.572.png cyclops.base.631.png cyclops.base.632.png cyclops.base.671.png cyclops.base.672.png arch/monster/misc/Ent: ent.clsc.111.png ent.clsc.112.png ent.clsc.113.png ent.clsc.211.png ent.clsc.212.png ent.clsc.213.png ent.clsc.311.png ent.clsc.312.png ent.clsc.313.png ent.clsc.411.png ent.clsc.412.png ent.clsc.413.png Added Files: arch/construct/temple: temple_ruin.arc temple_ruin.base.111.png temple_ruin.base.211.png temple_ruin.base.311.png temple_ruin.base.411.png temple_ruin.png arch/construct/town: rl_house1.png rl_house2.png rl_house3.png t_house2.png arch/monster/giant/cyclops: cyclops31.png cyclops32.png cyclops71.png cyclops72.png arch/monster/misc/Ent: ent1.png ent2.png ent3.png Log Message: Made a 2.5D cyclops, reworked the classic ent, cleaned up some multipart houses and added a ruined temple Start of context diffs Index: arch/construct/temple/temple_ruin.arc diff -c /dev/null arch/construct/temple/temple_ruin.arc:1.1 *** /dev/null Sun Mar 9 19:29:12 2003 --- arch/construct/temple/temple_ruin.arc Sun Mar 9 19:29:06 2003 *************** *** 0 **** --- 1,36 ---- + Object temple_ruin + name ruined temple + face temple_ruin.111 + type 66 + no_pick 1 + no_pass 1 + editable 2 + end + More + Object temple_ruin2 + name ruined temple + face temple_ruin.211 + type 66 + no_pick 1 + no_pass 1 + x 1 + end + More + Object temple_ruin3 + name ruined temple + face temple_ruin.311 + type 66 + no_pick 1 + visibility 100 + y 1 + end + More + Object temple_ruin4 + name ruined temple + face temple_ruin.411 + type 66 + visibility 100 + no_pick 1 + x 1 + y 1 + end Index: arch/construct/town/rl_house1.base.111.png Index: arch/construct/town/rl_house1.png Index: arch/monster/giant/cyclops/cyclops.base.131.png Index: arch/monster/giant/cyclops/cyclops31.png Index: arch/monster/misc/Ent/ent.clsc.111.png Index: arch/monster/misc/Ent/ent1.png |
|
From: <cro...@li...> - 2003-03-09 00:52:55
|
Module Name: crossfire
Committed By: mwedel
Date: Sun Mar 9 00:52:54 UTC 2003
Modified Files:
crossfire/server: resurrection.c
Log Message:
Forgot to update the type to 64 bit value for resurrection code.
MSW 2003-03-08
Start of context diffs
Index: crossfire/server/resurrection.c
diff -c crossfire/server/resurrection.c:1.9 crossfire/server/resurrection.c:1.10
*** crossfire/server/resurrection.c:1.9 Sat Mar 8 16:44:12 2003
--- crossfire/server/resurrection.c Sat Mar 8 16:52:54 2003
***************
*** 1,6 ****
/*
* static char *rcsid_resurrection_c =
! * "$Id: resurrection.c,v 1.9 2003/03/09 00:44:12 mwedel Exp $";
*/
/*
--- 1,6 ----
/*
* static char *rcsid_resurrection_c =
! * "$Id: resurrection.c,v 1.10 2003/03/09 00:52:54 mwedel Exp $";
*/
/*
***************
*** 189,195 ****
static char *races[]= { "barbarian","cleric", "elf","human","mage","ninja","priest",
"swashbuckler","thief","viking","warrior","wizard" };
! long int exp;
int Con;
/* set up our paths/strings... */
--- 189,195 ----
static char *races[]= { "barbarian","cleric", "elf","human","mage","ninja","priest",
"swashbuckler","thief","viking","warrior","wizard" };
! sint64 exp;
int Con;
/* set up our paths/strings... */
***************
*** 228,234 ****
{ fgets(buf,255,deadplayer);
sscanf(buf,"%s",buf2);
if( ! (strcmp(buf2,"exp"))) {
! sscanf(buf,"%s %ld",buf2,&exp);
switch(rspell) {
case SP_RAISE_DEAD:
exp-=exp/5;
--- 228,234 ----
{ fgets(buf,255,deadplayer);
sscanf(buf,"%s",buf2);
if( ! (strcmp(buf2,"exp"))) {
! sscanf(buf,"%s %lld",buf2,&exp);
switch(rspell) {
case SP_RAISE_DEAD:
exp-=exp/5;
|