Removal of cell terrain (never a good idea!)

mskala@ansuz.sooke.bc.ca mskala@ansuz.sooke.bc.ca
Tue May 18 02:32:00 GMT 2004


On Sun, 16 May 2004, Eric McDonald wrote:
> > > "terrain-damaged-type" with the obvious (t* t* 1) to give equal
> > > probability to all possibilities, the result is that it will sometimes

> > type for which there are no nonzero probability entries - problematic
> > because it's very easy to create that situation what with the table
> > defaulting to zero everywhere.  (For instance, if you say "yes" to terrain

> one. If you could provide some test cases with which to test your patch
> that would be good. I'm working on a different fix right now, but maybe

Attached is terrainbug.g, which demonstrates the first issue - just load
it up and hit "detonate", and you'll almost certainly get a fatal
error.  If you comment out line 30, you'll get a fatal error for a
different reason (the second issue I mentioned).  In both cases, the GDL
arguably is specifying something incorrect - but it seems like it would be
easy to make Xconq not die in such cases.
-- 
Matthew Skala
mskala@ansuz.sooke.bc.ca                    Embrace and defend.
http://ansuz.sooke.bc.ca/
-------------- next part --------------
;;;;;;;;;;;;;;;;;;;; header

(game-module "terrainbug"
  (title "Terrain bug demo")
  (version "1.0")
  (variants (see-all true))
)

(unit-type pentagram (image-name "star-2"))

(terrain-type water (image-name "blue") (char "."))
(terrain-type swamp (char "="))
(terrain-type road (image-name "desert") (char "~"))
(terrain-type plains (char "+"))
(terrain-type forest (char "%"))
(terrain-type mountains (char "^"))

(terrain-type void (image-name "nebula") (char ":"))
(terrain-type cliff (image-name "brown") (subtype border))
(terrain-type stream (image-name "river-conn") (subtype connection))

(define hex-terr (water swamp road plains forest mountains void))
(define hexside-terr (cliff stream))

(add pentagram acp-to-detonate 1)
(table detonation-terrain-range (pentagram t* 3))
(table detonation-terrain-damage-chance (pentagram t* 70))

; comment this out to demonstrate a different bug
(table terrain-damaged-type (t* t* 1) )

(add pentagram acp-max 100)
(add pentagram acp-per-turn 100)
(add pentagram speed 0)

(side 1)

(area 80 60)
(area (terrain
 (by-name
    (water 0) (swamp 1) (road 2) (plains 3) (forest 4)
    (mountains 5) (void 6) (cliff 7) (stream 8))
  "33g4c14g29a"
  "g8f15e4f4e3dcd3edad8eg28a"
  "g6fe2f9ef4e4f5e3dc4eda2d7eg27a"
  "g8f4e4ce4fe3f4e6dcd4ed2ab7eg26a"
  "g8f4ec3ecefe3f6eda5dc5e2bab7eg25a"
  "g2f2e3f4e2c3efcf11e4d2bc7ebab7eg24a"
  "gf4e2f2efecacefefc13ed4bc6e2bad7eg23a"
  "g5e2f5e2c4ec6ede2f5e3bc5e3be3a2d4eg22a"
  "g5ef2eda8ec9e2f5e2bc5e2b3e2daed4eg21a"
  "g6ef2ea2e2f2efec4e2d3e3f5edc5ed7ea5deg20a"
  "gd3edef5ef5edc3e3d4ef5e2dc5ed7e2a3bdeg19a"
  "g9e4f2e3dece4c2d10edcd4ef9e2a2bdeg18a"
  "cd6e3f2d3e2fdfcec3dc2d3e2d4e2dcd4ef8e2b4aeg17a"
  "cd2ea3e3fd5ef3cec4dc3d2bab4e2dcd9ed3e4b2aeg16a"
  "2c2d14ecf2ec5dcd2ba2bd2ef2edcd4ef11eb3ag15a"
  "cdceded9ed2ecd2c2d2b2dc2ba3b2e3fed2cd3e2f12e2ag14a"
  "gdcde3d8e2d2e2c3dba3bca2b2d2e4fe2dc4e3d11e2ag13a"
  "gedcd2eded2e8d2edbd3ba2b2cd5e4fe2dc3e2f4e2d7e2ag12a"
  "g2ec4de12d3e7b2dcd5e4fedcd3e3fe5d5ea2eg11a"
  "g2ec2d2ede11d6e2bebd2c3d6ef2edc4ef4ef3d2e3a3eg10a"
  "g2ec3d4ed4c6de3c2eb2e2cdc8d3e3c10ef2dea6eg9a"
  "g2edc4de2dc3d2c5dc2dce2becd2e6c3d3c2d2c9e2fea7eg8a"
  "g2edc2d2e2d2c3e2d2c3dc3dcebecd4e4dcd2cd2e3d2c3e2d6ea6ebc7a"
  "g4ec2de2dc8e4c4e4cd5e4d2c2de2f2e2d6c6ea3e2d2bc6a"
  "g5ec4dc18ebed7e2dc3de4f2e6d2cd3ca2ed2cdb2c5a"
  "g2ed2edc4dc18ebed7e2dc2def5ef7d2c2d5cd3cdc4a"
  "g6ed5cd15e2db2ed7e2dcdef5e6d2e4da4dc2d3eg3a"
  "g2ed2ededc8d4e2d6e2db10e2cde2fd3e6d2f4eae4dc2deaeg2a"
  "g2ed4edc9d4e4d6eb9ec2def2ed3e5d3f3ea3e2dcd5ega"
  "g7e2dc9d5e3d5eb10ec2d7e6d3f3ea3edc2ded2edg"
  "ag4eded2c11d11e2b9edcdef5e6d3f3ea2e3dcdededbg"
  "2ag6ec13d9e2db2d6e3dcd6e5d2e2f3ea3ed2cded2edg"
  "3ac3ed2c5de8d7ed3b3d6e2dcdef3e6d4ef2ea3edc5edeg"
  "4a5c5d5e5d5e3d2bab2d6e2dc2d2ed2e4d5efdfa3edc2ed2e2dg"
  "5ac8ded5e4d5e3dba2b7e2dc2d4ede3d6e2da3edcd2e2dedg"
  "6ac5d4e3d4e3d7ed3b6e4c2def5ed6e3daf2e2dcd2ed2eg"
  "7ag2d6ed3edfe3d9e2d6ec6def10e2d2edaf2e2dcded2eg"
  "8agd4e2d2e3df2e3d3ed9e2b2e5c2d13ed2edafe3dc2d2eg"
  "9ag2ededa2d6e3d13e2b6edc2d4ed6ea2e2daf2e3dcd2eg"
  "10ag3de2d4ed3e3d12ebab6edc2def7ed3e2da2f2e3dcdeg"
  "11ag3ed2ede2d4e3d5ed6e3b5e2dcd2ef6e2d3eda2f2de3dcdc"
  "12ag4ededede3fe5d11eb5e2dc2def5ede2de3daf2d2e3d2c"
  "13ag2ede3fed3e2fe4d16e3c2d2e2f3e4dededaf3de4dc"
  "14ag3e4f5e3f2e3d6e6d2ec4d3ef5e7daf2d2e3dc"
  "15ag4ef2e2f6efe3d3e6dad2ec5d2e3fe2f7da3f2e3dg"
  "16agf6e3fed3efe4de8dbedc5d2e4fef4d3a3f2e3dg"
  "17agf2ef9edefe6de5db2ebc5de4f2e3d2a4f3e3dg"
  "18agf4e2d4e3d2e6d5e3b3e3c2d2ef4e3da2f2ef3e3dg"
  "19ag2e2d3e3d3e3de4d5e2a3b4e2cdef4e4da4f4e2dg"
  "20ag3ede2d8efe3d5eba4b4edc6e2f3da2e2f4edg"
  "21agf10e2d2efe2d6e3beb4e2cd5e5da2e2f4edg"
  "22ag15efe2d5e2b7ec2d2ef2e5dafe2f5eg"
  "23ag7ed6e2fed6ebe2d3e2cdedfe4d2e2da3f4edg"
  "24ag14e2f2d8e2d3c2def2ef8daf2e4dg"
  "25ag2ed5ed7e11dc3d2e2fe3f4e2da3e4dg"
  "26ag13ed3e9dcd9ed5e2da6dg"
  "27ag7ed3ed2ef4e6dcd7e3d5e2da6dg"
  "28ag12e2f3ef5edcd6e3de2d3e3da5dg"
  "29ag11e3f2e3f3edc2d4e8d2e4da4dg"
  "30a22g4c24g"
  ))
(area (aux-terrain cliff
  "80a"
  "ai16aei3acy2aei51a"
  "ady15acM2aiad}moM51a"
  "2ad}i17adyab2=<aei48a"
  "3ab?}i16ady5ac[q47a"
  "5abCq3a2eie3acy4ab6ab<47a"
  "6acT3acV[wL3adq59a"
  "ai5ady3ad~JL12ae3ae47a"
  "ady5ahq3ab=<12acT2agL46a"
  "2adyeoqagL3aem6ae7adyeoLae44a"
  "3aboM@moL3agM<5agL7abcM<agL43a"
  "2acyb<cM=<3acL2ae3agL11aegL43a"
  "3ah}i11agLoqgL11acNL43a"
  "3ac[M11agLb<gL57a"
  "4ab<11acLaeoL15ai8acy31a"
  "20acM<15ahq8ady30a"
  "38acTae7ahq29a"
  "39adygL6acL29a"
  "40adsL37a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  "74aei4a"
  "48ae25ac[q3a"
  "48ae<25ab<3a"
  "48agL30a"
  "48agL30a"
  "49a<30a"
  "49agq29a"
  "42acq5agL29a"
  "42agq5acL29a"
  "42agL6acy28a"
  "42acT7adq27a"
  "14aei27adym16aei16a"
  "14ac[q27adr<15ac[q15a"
  "15ab<46ab<15a"
  "80a"
  "80a"
  "80a"
  "44aei34a"
  "44ac[q10aecu20a"
  "45ab<11a>u<7aemoq8a"
  "58acq>q5aeoM?L8a"
  "67acU<10a"
  "68adycq8a"
  "69adq9a"
  "69agqacq6a"
  "69acLacq6a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  "80a"
  ))
(area (aux-terrain stream
  "80a"
  "80a"
  "45ai34a"
  "44acrai32a"
  "42ac{3stq31a"
  "ae33agq3aksubaky33a"
  "2a>u30ac{N{2sr2a@c|tq32a"
  "4a@4ae25ad}b6a>z34a"
  "5a>su2a>su21aksr<6akr34a"
  "8a>sq2a@20aj9ab35a"
  "14aD18akr20agsq22a"
  "14aj18af22a>qi21a"
  "14af19aD20aegqj21a"
  "15a@16ak{r21a>Ldq20a"
  "16aD15adtu45a"
  "16af14aky2a<44a"
  "17a@8ags{2str47a"
  "18a>2suae2akPlu50a"
  "22a>sNsraEa<49a"
  "28aj51a"
  "28af51a"
  "29aD50a"
  "29aj50a"
  "29af50a"
  "30a@34ai14a"
  "31aD33aj14a"
  "31af33ab14a"
  "32a@47a"
  "33aD46a"
  "33af46a"
  "34aD45a"
  "34aj45a"
  "34aj45a"
  "34af45a"
  "33aksNu43a"
  "31aksr3a@42a"
  "30akr6aD41a"
  "28aksr7afakq38a"
  "26aksr10a>v39a"
  "25akr14a@38a"
  "25aj16a>u36a"
  "25aj18a>u34a"
  "24akr20a@33a"
  "24aj22aD32a"
  "21ak2sr22aj32a"
  "20akr25aj32a"
  "18acsr26aj32a"
  "47aj32a"
  "45acqdswq29a"
  "47aicy@29a"
  "47ajkra<28a"
  "47abj31a"
  "48aj31a"
  "48af31a"
  "49a@30a"
  "50a>u23aksu2a"
  "52a>u21aj2aDa"
  "54a@19akr2aba"
  "55a<18ab5a"
  "80a"
  ))

(pentagram 15 21 1)
(pentagram 13 53 1)
(pentagram 45 15 1)
(pentagram 31 55 1)
(pentagram 63 21 1)
(pentagram 75 32 1)
(pentagram 4 46 1)


More information about the Xconq7 mailing list