From: <aki...@us...> - 2006-12-24 00:20:30
|
Revision: 1258 http://svn.sourceforge.net/gridarta/?rev=1258&view=rev Author: akirschbaum Date: 2006-12-23 16:20:30 -0800 (Sat, 23 Dec 2006) Log Message: ----------- Ask user before overwriting a file in "create image". Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/CMainControl.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2006-12-24 00:08:27 UTC (rev 1257) +++ trunk/crossfire/ChangeLog 2006-12-24 00:20:30 UTC (rev 1258) @@ -1,5 +1,7 @@ 2006-12-24 Andreas Kirschbaum + * Ask user before overwriting a file in "create image". + * Fix #1613729 (Monsters appear as "weak wall (0)"). 2006-12-23 Andreas Kirschbaum Modified: trunk/crossfire/src/cfeditor/CMainControl.java =================================================================== --- trunk/crossfire/src/cfeditor/CMainControl.java 2006-12-24 00:08:27 UTC (rev 1257) +++ trunk/crossfire/src/cfeditor/CMainControl.java 2006-12-24 00:20:30 UTC (rev 1258) @@ -1202,7 +1202,10 @@ if (!filename.endsWith(".png")) { filename += ".png"; } - mapControl.getMapViewFrame().printFullImage(new File(filename)); + final File file = new File(filename); + if (!file.exists() || ACTION_FACTORY.showConfirmDialog(mainView, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, "overwriteOtherFile", filename) == JOptionPane.YES_OPTION) { + mapControl.getMapViewFrame().printFullImage(new File(filename)); + } } } catch (final IOException e) { ACTION_FACTORY.showMessageDialog(mainView, "createImgIOException", filename, e.getMessage()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2006-12-24 00:53:59
|
Revision: 1260 http://svn.sourceforge.net/gridarta/?rev=1260&view=rev Author: akirschbaum Date: 2006-12-23 16:53:59 -0800 (Sat, 23 Dec 2006) Log Message: ----------- Update main window title. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/CMainView.java trunk/crossfire/src/cfeditor/IGUIConstants.java trunk/crossfire/src/cfeditor/messages.properties trunk/crossfire/src/cfeditor/messages_de.properties Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2006-12-24 00:22:27 UTC (rev 1259) +++ trunk/crossfire/ChangeLog 2006-12-24 00:53:59 UTC (rev 1260) @@ -1,5 +1,7 @@ 2006-12-24 Andreas Kirschbaum + * Update main window title. + * Ask user before overwriting a file in "create image". * Fix #1613729 (Monsters appear as "weak wall (0)"). Modified: trunk/crossfire/src/cfeditor/CMainView.java =================================================================== --- trunk/crossfire/src/cfeditor/CMainView.java 2006-12-24 00:22:27 UTC (rev 1259) +++ trunk/crossfire/src/cfeditor/CMainView.java 2006-12-24 00:53:59 UTC (rev 1260) @@ -163,7 +163,7 @@ * Constructs the main view and registers the given main controller. */ CMainView() { - super(IGUIConstants.APP_NAME + " - " + IGUIConstants.APP_WINDOW_TITLE); + super(ACTION_FACTORY.format("mainWindow.title")); initActions(); final ImageIcon icon = CGUIUtils.getIcon(IGUIConstants.APP_ICON); Modified: trunk/crossfire/src/cfeditor/IGUIConstants.java =================================================================== --- trunk/crossfire/src/cfeditor/IGUIConstants.java 2006-12-24 00:22:27 UTC (rev 1259) +++ trunk/crossfire/src/cfeditor/IGUIConstants.java 2006-12-24 00:53:59 UTC (rev 1260) @@ -74,9 +74,6 @@ /** Application name. */ String APP_NAME = "CFJavaEditor"; - /** Application main window title. */ - String APP_WINDOW_TITLE = "Crossfire Map & Arch Editor"; - /** Name of directory with settings file. */ String APP_SETTINGS_DIR = ".cfeditor"; Modified: trunk/crossfire/src/cfeditor/messages.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages.properties 2006-12-24 00:22:27 UTC (rev 1259) +++ trunk/crossfire/src/cfeditor/messages.properties 2006-12-24 00:53:59 UTC (rev 1260) @@ -1,6 +1,8 @@ # Warning: This file MUST be ISO-8859-1 # See http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#encoding +mainWindow.title=Gridarta for Crossfire + # Supported image set. The values must match the image file names: # <name>.<image set name>.111 availableImageSets=base Modified: trunk/crossfire/src/cfeditor/messages_de.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages_de.properties 2006-12-24 00:22:27 UTC (rev 1259) +++ trunk/crossfire/src/cfeditor/messages_de.properties 2006-12-24 00:53:59 UTC (rev 1260) @@ -1,6 +1,8 @@ # Warning: This file MUST be ISO-8859-1 # See http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#encoding +mainWindow.title=Gridarta for Crossfire + # Dialogs overwriteOtherFile.title=Datei \xFCberschreiben? overwriteOtherFile.message=Eine Datei mit Namen "{0}" existiert bereits.\n\nWirklich \xFCberschreiben? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2006-12-24 01:31:33
|
Revision: 1262 http://svn.sourceforge.net/gridarta/?rev=1262&view=rev Author: akirschbaum Date: 2006-12-23 17:31:33 -0800 (Sat, 23 Dec 2006) Log Message: ----------- Add some French translations. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/messages_fr.properties Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2006-12-24 01:20:29 UTC (rev 1261) +++ trunk/crossfire/ChangeLog 2006-12-24 01:31:33 UTC (rev 1262) @@ -1,5 +1,7 @@ 2006-12-24 Andreas Kirschbaum + * Add some French translations. + * Update main window title. * Ask user before overwriting a file in "create image". Modified: trunk/crossfire/src/cfeditor/messages_fr.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages_fr.properties 2006-12-24 01:20:29 UTC (rev 1261) +++ trunk/crossfire/src/cfeditor/messages_fr.properties 2006-12-24 01:31:33 UTC (rev 1262) @@ -2,6 +2,15 @@ # See http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#encoding # Translation done by Marmoth +mainWindow.title=Gridarta for Crossfire + +# Dialogs +overwriteOtherFile.message=Un fichier nomm\xE9 "{0}" existe d\xE9j\xE0.\n\nVoulez vous vraiment le remplacer? + +mapTitle={0} ({1}) - Propri\xE9t\xE9s de la carte +mapShrink.title=Confirm shrinking map +mapShrink.message=Vous avez s\xE9lectionn\xE9 une carte de taille {0,number,integer} \xD7 {1,number,integer}. En modifiant la taille \nde la carte ainsi, certains objets seraient d\xE9truits.\\xCAtes-vous certain de le faire? + #replace replaceTitle=Remplacer replaceOn=Dans @@ -17,3 +26,321 @@ replacedZero.message=Aucun objet correspondant trouv\xE9. replacedOne.message=1 L'objet a \xE9t\xE9 remplac\xE9. replacedMany.message={0} Les objets ont \xE9t\xE9 remplac\xE9s. + +fileDialog.filter.python=Scripts python + +############# +# Status Bar +memory=({0}/{1}) M\xE9moire: {2} utilis\xE9e, {3} libre, {4} total + +################## +# Status Messages + +statusMouseOff=Souris hors de la carte +statusSelect=Souris x:{0,number,integer} y:{1,number,integer} Carte x:{2,number,integer} y:{3,number,integer} Selectionn\xE9 x:{4,number,integer} y:{5,number,integer} +statusNormal=Souris x:{0,number,integer} y:{1,number,integer} Carte x:{2,number,integer} y:{3,number,integer} + +# Edit +undo.text=Annuler +undo.shortdescription=Annuler la derni\xE8re action +undo.longdescription=Annule la derni\xE8re action si cela est possible +undo.mnemonic=U +undo.accel=ctrl pressed Z + +redo.text=R\xE9p\xE9ter +redo.shortdescription=R\xE9p\xE9ter la derni\xE8re action annul\xE9e +redo.longdescription=R\xE9p\xE8te la derni\xE8re action annul\xE9e si cela est possible +redo.mnemonic=R +redo.accel=ctrl pressed Y + +################# +# Map Arch Panel + +##################### +# Preference Modules + +arcDoc.htmlText=<html><head><meta name="CFJavaEditor" content="tmp"><title>{0}</title></head><body><h1 style="text-align:center;colour:navy;">Type: {0}</h1><h3 style="colour:navy;">Fonctionalit\xE9s de {0}</h3><p>{1}</p><h3 style="colour:navy;">Notes d'utilisation:</h3><p>{2}</p></body></html> + +# Options + +####### +# File + +file.text=Fichier +file.mnemonic=F + +createNew.text=Nouveau +createNew.shortdescription=Cr\xE9er une nouvelle carte +createNew.longdescription=Cr\xE9e une nouvelle carte +createNew.mnemonic=N +createNew.accel=ctrl pressed N + +open.text=Ouvrir +open.shortdescription=Ouvrir une carte +open.longdescription=Ouvre une carte \xE0 partir d'un fichier +open.mnemonic=O +open.accel=ctrl pressed O + +close.text=Fermer +close.shortdescription=Fermer la carte +close.longdescription=Ferme la carte active +close.mnemonic=F +close.accel=ctrl pressed W + +save.text=Enregistrer +save.shortdescription=Enregistrer la carte +save.longdescription=Enregistre la carte active +save.mnemonic=E +save.accel=ctrl pressed S + +saveAs.text=Enregistrer sous... +saveAs.shortdescription=Enregistrer la carte sous un nouveau nom +saveAs.longdescription=Enregistre la carte dans un fichier portant un nom diff\xE9rent +saveAs.mnemonic=S +saveAs.accel=ctrl shift pressed S + +revert.text=Restaurer +revert.shortdescription=Restaure la carte +revert.longdescription=Restaure la carte selon la derni\xE8re version enregistr\xE9e +revert.mnemonic=R + +createImg.text=Cr\xE9er image +createImg.shortdescription=Cr\xE9er une image \xE0 partir de la carte +createImg.longdescription=Cr\xE9e une image \xE0 partir de la carte et l'enregistre dans un fichier +createImg.mnemonic=I + +options.text=Options... +options.shortdescription=Affiche les options +options.longdescription=Affiche une fen\xEAtre d'options pour modifier les r\xE9glages de l'\xE9diteur +options.mnemonic=O +options.accel=ctrl alt pressed S + +exit.text=Quitter +exit.shortdescription=Quitter le programme +exit.longdescription=Quitte le programme +exit.mnemonic=Q +exit.accel=ctrl pressed Q + + +####### +# Edit + +edit.text=Edition +edit.mnemonic=E + +clear.text=Effacer +clear.shortdescription=Effacer les cases s\xE9lectionn\xE9es +clear.longdescription=Efface les cases s\xE9lectionn\xE9es +clear.mnemonic=E +clear.accel=DELETE + +cut.text=Couper +cut.mnemonic=C +cut.accel=ctrl pressed X + +copy.text=Copier +copy.mnemonic=O +copy.accel=ctrl pressed C + +paste.text=Coller +paste.mnemonic=L +paste.accel=ctrl pressed V + +replace.text=Remplacer +replace.mnemonic=R +replace.accel=ctrl pressed R + +fillAbove.text=Remplir vers le haut +fillAbove.mnemonic=H +fillAbove.accel=ctrl pressed F + +fillBelow.text=Remplir vers le bas +fillBelow.mnemonic=B +fillBelow.accel=ctrl shift pressed F + +randFillAbove.text=Remplir en haut al\xE9atoirement +randFillAbove.accel=ctrl pressed D + +randFillBelow.text=Remplir en bas al\xE9atoirement +randFillBelow.accel=ctrl shift pressed D + +selectAll.text=Tout s\xE9lectionner +selectAll.mnemonic=T +selectAll.accel=ctrl pressed A + + +####### +# Map + +map.text=Carte +map.mnemonic=C + +gridVisible.text=Montrer la grille +gridVisible.mnemonic=G +gridVisible.accel=ctrl pressed G + +enterExit.text=Aller Sortie +enterExit.mnemonic=S +enterExit.accel=ctrl pressed E + +enterNorthMap.text=Aller Carte Nord +enterNorthMap.accel=ctrl pressed UP + +enterEastMap.text=Aller Carte Est +enterEastMap.accel=ctrl pressed RIGHT + +enterSouthMap.text=Aller Carte Sud +enterSouthMap.accel=ctrl pressed DOWN + +enterWestMap.text=Aller Carte Ouest +enterWestMap.accel=ctrl pressed LEFT + +mapProperties.text=Propri\xE9t\xE9s de la carte +mapProperties.mnemonic=P +mapProperties.accel=ctrl pressed M + + +####### +# Cursor + + +########### +# Pickmaps + +pickmaps.text=Assortiments +pickmaps.mnemonic=S + +lockAllPickmaps.text=Verrouiller les assortiments +lockAllPickmaps.mnemonic=V + +addNewPickmap.text=Nouvel assortiment +addNewPickmap.mnemonic=N + +closePickmap.text=Fermer assortiment actif +closePickmap.mnemonic=F + +openPickmapMap.text=Ouvrir assortiment actif comme carte +openPickmapMap.mnemonic=O + +savePickmap.text=Enregistrer assortiment actif +savePickmap.mnemonic=E + +revertPickmap.text=Restaurer assortiment actif +revertPickmap.mnemonic=R + + +############ +# Resources + +resources.text=Ressources +resources.mnemonic=R + +collectArches.text=Rassembler Arches +collectArches.mnemonic=A + +collectSpells.text=Rassembler Sorts +collectSpells.mnemonic=S + +viewTreasurelists.text=Afficher listes de tr\xE9sors +viewTreasurelists.mnemonic=T + + +######## +# Tools + +tools.text=Outils +tools.mnemonic=T + +gc.text=Garbage Collection +gc.mnemonic=G + + +######### +# Analyze + + +####### +# View + +view.text=Affichage +view.mnemonic=A + +showMonster.text=Afficher monstres +showMonster.mnemonic=M + +showExit.text=Afficher sorties +showExit.mnemonic=S + +showBackground.text=Afficher fond +showBackground.mnemonic=F + +showDoor.text=Afficher portes et cl\xE9s +showDoor.mnemonic=P + +showWall.text=Afficher murs +showWall.mnemonic=U + +showEquipment.text=Afficher \xE9quipement +showEquipment.mnemonic=E + +showTreasure.text=Afficher tr\xE9sors +showTreasure.mnemonic=T + +showConnected.text=Afficher objets connect\xE9s +showConnected.mnemonic=C + +resetView.text=Vue normale +resetView.mnemonic=N + + +######### +# Plugins + + +######### +# Window + +window.text=Fen\xEAtres +window.mnemonic=F + +nextWindow.text=Fen\xEAtre suivante +nextWindow.shortdescription=Affiche la fen\xEAtre suivante +nextWindow.accel=shift pressed PAGE_UP + +prevWindow.text=Fen\xEAtre pr\xE9c\xE9dente +prevWindow.shortdescription=Affiche la fen\xEAtre pr\xE9c\xE9dente +prevWindow.accel=shift pressed PAGE_DOWN + +closeAll.text=Tout fermer +closeAll.mnemonic=T +closeAll.accel=ctrl shift pressed W + + +####### +# Help + +help.text=Aide +help.mnemonic=A + +onlineHelp.text=Aide en ligne +onlineHelp.mnemonic=A +onlineHelp.accel=F1 + +about.text=\xC0 propos... +about.mnemonic=P + + +############ +# Map window + +mapwindowFile.text=Fichier +mapwindowFile.mnemonic=F + +mapwindowEdit.text=Edition +mapwindowEdit.mnemonic=E + +mapwindowMap.text=Carte +mapwindowMap.mnemonic=C + +mapwindowView.text=Affichage +mapwindowView.mnemonic=A This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2006-12-24 09:58:17
|
Revision: 1263 http://svn.sourceforge.net/gridarta/?rev=1263&view=rev Author: akirschbaum Date: 2006-12-24 01:58:17 -0800 (Sun, 24 Dec 2006) Log Message: ----------- Add some Svedish translations. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/messages_sv.properties Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2006-12-24 01:31:33 UTC (rev 1262) +++ trunk/crossfire/ChangeLog 2006-12-24 09:58:17 UTC (rev 1263) @@ -1,6 +1,6 @@ 2006-12-24 Andreas Kirschbaum - * Add some French translations. + * Add some French and Svedish translations. * Update main window title. Modified: trunk/crossfire/src/cfeditor/messages_sv.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages_sv.properties 2006-12-24 01:31:33 UTC (rev 1262) +++ trunk/crossfire/src/cfeditor/messages_sv.properties 2006-12-24 09:58:17 UTC (rev 1263) @@ -1,13 +1,106 @@ # Warning: This file MUST be ISO-8859-1 # See http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#encoding +mainWindow.title=Gridarta for Crossfire + # Dialogs -pickmapExists.title=Kan inte skapa plockkarta -pickmapExists.message=En plockkarta med namnet {0} finns redan.\nTa antingen bort den tidigare plockkartan eller v\xE4lj ett annat namn. +overwriteOtherFile.title=Skriv \xF6ver existerande fil? +overwriteOtherFile.message=En fil med namnet "{0}" existerar redan.\n\nVill du verkligen skriva \xF6ver den? +mapDirDoesntExist.title=Ogiltig katalog f\xF6r kartor. +mapDirDoesntExist.message=Katalogen f\xF6r kartor, "{0}", finns inte.\nVar v\xE4nlig och v\xE4lj menyn ''Arkiv->Inst\xE4llningar...'' f\xF6r att byta katalog. + +closePickmapNotLoaded.title=Kan inte st\xE4nga plockkarta +closePickmapNotLoaded.message=Plockkartor \xE4r inte inladdade.\nAntingen finns det inga, eller ocks\xE5 \xE4r de inte f\xE4rdigladdade \xE4n. +closePickmapHidden.title=Kan inte st\xE4nga plockkarta +closePickmapHidden.message=Plockkartor \xE4r dolda f\xF6r tillf\xE4llet.\nVar v\xE4nlig och v\xE4lj en plockkarta innan du aktiverar detta kommando. +closePickmapNoPickmaps.title=Kan inte st\xE4nga plockkarta +closePickmapNoPickmaps.message=Det finns inga plockkartor. + +closeLevelNullLevel.title=St\xE4ng niv\xE5 +closeLevelNullLevel.message=FIND NULL LEVEL : {0} v\xE5r karta: {1}. + +openPickmapMapNotLoaded.title=Kan inte \xF6ppna plockkarta +openPickmapMapNotLoaded.message=Plockkartor \xE4r inte inladdade.\nAntingen finns det inga, eller ocks\xE5 \xE4r de inte f\xE4rdigladdade \xE4n. +openPickmapMapHidden.title=Kan inte \xF6ppna plockkarta +openPickmapMapHidden.message=Plockkartor \xE4r dolda f\xF6r tillf\xE4llet.\nVar v\xE4nlig och v\xE4lj en plockkarta innan du aktiverar detta kommando. +openPickmapNoPickmaps.title=Kan inte \xF6ppna plockkarta +openPickmapNoPickmaps.message=Det finns inga plockkartor. +openFileWantedNoArches.title=Kan inte \xF6ppna karta +openFileWantedNoArches.message=Det finns inga arketyper (arches) tillg\xE4ngliga!\nDu m\xE5ste ha arketyperna innan du kan \xF6ppna en karta.\nL\xE4s i online-dokumentationen hur du kan skaffa Daimonins arketypfiler.. + +openAttrDialogNoTypes.title=Fil saknas +openAttrDialogNoTypes.message=Defintionsfilen \"types.txt\" saknas!\nAttribut-gr\xE4nssnittet fungerar inte utan den filen. +openAttrDialogNoDefaultArch.title=Ingen standardarketyp +openAttrDialogNoDefaultArch.message=\xC4ndring av objektattribut utan tillg\xE5ng till standardarketyp \xE4r inte m\xF6jligt. +encodeMapFile.title=Misslyckades att spara karta +encodeMapFile.message=Kunde inte skriva fil {0}. + +savePickmapNotLoaded.title=Kan inte spara plockkarta +savePickmapNotLoaded.message=Antingen finns det inga plockkartor, eller ocks\xE5 \xE4r de inte f\xE4rdigladdade \xE4n. +savePickmapHidden.title=Kan inte spara plockkarta +savePickmapHidden.message=Plockkartor \xE4r dolda f\xF6r tillf\xE4llet.\nVar v\xE4nlig och v\xE4lj en plockkarta innan du aktiverar detta kommando. +savePickmapNoPickmaps.title=Kan inte spara plockkarta +savePickmapNoPickmaps.message=Det finns inga plockkartor. + +createImgNoMap.title=Kunde inte skapa bild +createImgNoMap.message=Du kan inte skapa en bild om ingen karta \xE4r \xF6ppnad. +createImgIOException.title=Kunde inte skapa bild +createImgIOException.message=Bilden kunde inte skapas eftersom filen {0} inte g\xE5r att skriva till. + +enterExitNoExit.title=Ingen utg\xE5ng +enterExitNoExit.message=Det finns ingen giltig utg\xE5ng p\xE5 den valda punkten. +enterExitNowhere.title=M\xE5let ogiltigt +enterExitNowhere.message=Denna utg\xE5ng leder ingenstans. +enterExitOutside.title=M\xE5let ogiltigt +enterExitOutside.message=M\xE5let f\xF6r utg\xE5ngen ligger utanf\xF6r kartan. +enterExitInvalidPath.title=Ogiltig s\xF6kv\xE4g +enterExitInvalidPath.message=Den angivna s\xF6kv\xE4gen \xE4r ogiltig. + +importSpellsSuccess.title=Sammanst\xE4ll trollformler +importSpellsSuccess.message=Lyckades sammanst\xE4lla {0} trollformler. +importSpellsFailed.title=Sammanst\xE4ll trollformler +importSpellsFailed.message=Sammanst\xE4llning av trollformler misslyckades.\nVar den angivna filen inte av r\xE4tt format? + +openScriptNotFound.title=Kunde inte hitta scriptfil +openScriptNotFound.message=Filen ''{0}'' finns inte.\nV\xE4r v\xE4nlig korrigera s\xF6kv\xE4gen. + +enterTileNoTile.title=M\xE5let ogiltigt +enterTileNoTile.message=Det finns ingen karta \xE5t det h\xE5llet. + +revertPickmapNotLoaded.title=Kan inte \xE5terst\xE4lla plockkarta +revertPickmapNotLoaded.message=Inga plockkartor \xE4r inladdade.\nAntingen finns det inga plockkartor, eller ocks\xE5 \xE4r de inte f\xE4rdigladdade \xE4n. +revertPickmapHidden.title=Kan inte \xE5terst\xE4lla plockkarta +revertPickmapHidden.message=Plockkartor \xE4r dolda f\xF6r tillf\xE4llet.\nVar v\xE4nlig och v\xE4lj en plockkarta innan du aktiverar detta kommando. +revertPickmapNoPickmaps.title=Kan inte \xE5terst\xE4lla plockkarta +revertPickmapNoPickmaps.message=Det finns inga plockkartor. +revertPickmapGone.title=Kan inte \xE5terst\xE4lla plockkartan. +revertPickmapGone.message=Filen f\xF6r plockkartan "{0}" existerar inte. + +confirmClosePickmap.title=St\xE4nga plockkarta? +confirmClosePickmap.message=Om du st\xE4nger plockkartan ''{0}'' kommer alla nyliga\n\xE4ndringar att f\xF6rloras.\n Vill du verkligen st\xE4nga den? + +confirmDeletePickmap.title=Radera fil f\xF6r plockkarta? +confirmDeletePickmap.message=Plockkartan ''{0}'' \xE4r st\xE4ngd.\nVill du ocks\xE5 ta bort filen ''{1}''?\nBorttagning av filen kommer att permanent radera plockkartan. + +confirmSaveChanges.title=Spara \xE4ndringar? +confirmSaveChanges.message=Vill du spara \xE4ndringar p\xE5 kartan {0}? + +confirmCreatePickmap.title=Kan inte \xF6ppna plockkarta +confirmCreatePickmap.message=Det finns ingen kartfil f\xF6r ''{0}''.\nVill du skapa den filen genom att spara denna plockkarta? + +confirmRevertMap.title=\xC5terst\xE4ll karta? +confirmRevertMap.message=Om du \xE5terst\xE4ller kartan ''{0}''\ntill dess senaste sparade version kommer alla nyliga \xE4ndringar att f\xF6rloras.\nVill du verkligen \xE5terst\xE4lla kartan? + +confirmRevertPickmap.title=\xC5terst\xE4ll plockkarta? +confirmRevertPickmap.message=Om du \xE5terst\xE4ller plockkartan ''{0}''\ntill dess senaste sparade version kommer alla nyliga \xE4ndringar att f\xF6rloras.\nVill du verkligen \xE5terst\xE4lla plockkartan? + # New Map newMap.title=Skapa ny karta newPickmap.title=Skapa ny plockkarta +newMapMapName=Namn +newMapParameters=Inst\xE4llningar +newMapPickmapName=Namn newMapDimensionOutOfRange.title=Ogiltigt v\xE4rde newMapDimensionOutOfRange.message=Kartans dimensioner m\xE5ste st\xF6rre eller lika med 1 och mindre eller lika med 2147483647 newMapDimensionNotANumber.title=Ogiltigt v\xE4rde @@ -15,12 +108,50 @@ newMapNoName.title=Kartnamn saknas newMapNoName.message=Du m\xE5ste ange ett kartnamn! Namnet syns i spelet,\n s\xE5 det b\xF6r vara ett beskrivande namn.\nNamn p\xE5 kartor beh\xF6ver inte vara unika. +mapTitle={0} ({1}) - Kartegenskaper +mapName=Namn mapWidth=Bredd mapHeight=H\xF6jd +mapOutdoor=Utomhus +mapFixedReset=Fixerad \xE5terst\xE4llning +mapEnterX=Ing\xE5ng X +mapEnterY=Ing\xE5ng Y +mapDifficulty=Sv\xE5righet +mapDarkness=M\xF6rker +mapSwapTime=Tid innan v\xE4xling +mapResetTimeout=Tid innan \xE5terst\xE4llning +mapNorth=Nord +mapEast=\xD6st +mapSouth=Syd +mapWest=V\xE4st + +mapHelp.text=Hj\xE4lp mapOkay.text=Ok +mapRestore.text=\xC5terst\xE4ll mapCancel.text=Avbryt +mapMapTabTitle=Karta +mapParametersTabTitle=Inst\xE4llningar +mapTextTabTitle=Karttext +mapTilesTabTitle=S\xF6kv\xE4gar + +mapShrink.title=Bekr\xE4fta storleksminskning +mapShrink.message=Du valde en ny kartstorlek p\xE5 {0,number,integer} \xD7 {1,number,integer}. Om storleken \xE4ndras \ns\xE5, kan vissa objekt kapas bort och raderas.\n\xC4r du s\xE4ker att du vill forts\xE4tta? +mapErrorMissingMapName.title=Kartnamn saknas. +mapErrorMissingMapName.message=Du m\xE5ste ange ett kartnamn. +mapErrorIllegalSize.title=Ogiltigt v\xE4rde +mapErrorIllegalSize.message=Kartdimensioner m\xE5ste vara st\xF6rre \xE4n 0. +mapErrorInvalidEntry.title=Ogiltigt v\xE4rde +mapErrorInvalidEntry.message=Ogiltigt v\xE4rde:\n{0} + +nameOfAnimationObject=animation +nameOfFaceObject=bild +pickmapExists.title=Kan inte skapa plockkarta +pickmapExists.message=En plockkarta med namnet {0} finns redan.\nTa antingen bort den tidigare plockkartan eller v\xE4lj ett annat namn. + #replace +replaceOk.text=Ok +replaceCancel.text=Avbryt replaceTitle=Ers\xE4tt replaceOn=P\xE5 replaceOnMap=hela kartan @@ -41,9 +172,6 @@ replacedMany.title=Ers\xE4ttning lyckades replacedMany.message={0} objekt har ersatts. -replaceOk.text=Ok -replaceCancel.text=Avbryt - #attribute dialog attribHelp.text=Hj\xE4lp attribSummary.text=Sammanfattning @@ -51,3 +179,417 @@ attribOk.text=Ok attribApply.text=Anv\xE4nd attribCancel.text=Avbryt + +archCollectArches=Sammanst\xE4ller arketyper... +archCollectErrorIOException.title=Fel under sammanst\xE4llning +archCollectErrorIOException.message=Fel under sammanst\xE4llning: ett I/O-fel intr\xE4ffade f\xF6r filen {0}:\n{1} +dialogDontShowAgain=Visa inte denna dialog igen. + +############# +# Status Bar + +################## +# Status Messages + +statusMouseOff=Mus x:{0,number,integer} y:{1,number,integer} Mus utanf\xF6r kartan +statusMouseOn=Mus x:{0,number,integer} y:{1,number,integer} Karta x:{2,number,integer} y:{3,number,integer} +statusSelect=Mark\xF6r x:{0,number,integer} y:{1,number,integer} Offset x:{2,number,integer} y:{3,number,integer} +statusNormal=Mark\xF6r x:{0,number,integer} y:{1,number,integer} +statusCursorOff=Mark\xF6r utanf\xF6r karta + +# Edit +undo.text=\xC5ngra +undo.shortdescription=\xC5ngra senaste \xE4ndringen +undo.longdescription=\xC5terst\xE4ller senaste \xE4ndringen om m\xF6jligt +undo.mnemonic=N +undo.accel=ctrl pressed Z + +redo.text=G\xF6r om +redo.shortdescription=G\xF6r om senaste \xE4ndringen +redo.longdescription=G\xF6r om den senast \xE5ngrade \xE4ndringen om m\xF6jligt +redo.mnemonic=G +redo.accel=ctrl pressed Y + +################# +# Map Arch Panel + +mapArchApply.text=Anv\xE4nd +mapArchApply.shortdescription=Anv\xE4nd \xE4ndringarna i objektet + +mapArchAttrib.text=Attribut +mapArchAttrib.shortdescription=\xD6ppna attributdialogen + +mapArchAddInv.text=L\xE4gg inuti +mapArchAddInv.shortdescription=L\xE4gg objektet inuti + +scriptAddNew.text=Skapa nytt +scriptEditData.text=Redigera data +scriptEdit.text=Redigera script +scriptRemove.text=Ta bort script + +##################### +# Preference Modules + +arcDoc.htmlText=<html><head><meta name="CFJavaEditor" content="tmp"><title>{0}</title></head><body><h1 style="text-align:center;colour:navy;">Type: {0}</h1><h3 style="colour:navy;">Funktionalitet f\xF6r {0}</h3><p>{1}</p><h3 style="colour:navy;">Tips f\xF6r anv\xE4ndning:</h3><p>{2}</p></body></html> + +# Options + +optionsLanguage=Spr\xE5k +optionsLayout=Layout +optionsSepMapTile.text=Separat panel f\xF6r kartruta. +optionsSepMapTile.shortdescription=Detta flyttar panelen f\xF6r enstaka kartrutor till sk\xE4rmens h\xF6gra kant ist\xE4llet f\xF6r nedre h\xF6gra h\xF6rnet. +optionsLoadArchColl.text=L\xE4s arketyper fr\xE5n samling +optionsGlobal=Globalt +optionsResPaths=S\xF6kv\xE4gar f\xF6r resurser +optionsResArch=Arketypfiler +optionsResMaps=Kartor +optionsResScripts=Script +optionsRestart.title=Varning +optionsRestart.message=De flesta inst\xE4llningarna kr\xE4ver att editor startas om f\xF6r att g\xE4lla. + +####### +# File + +file.text=Arkiv +file.mnemonic=A + +createNew.text=Ny +createNew.shortdescription=Ny karta +createNew.longdescription=Skapar en ny karta +createNew.mnemonic=N +createNew.accel=ctrl pressed N + +open.text=\xD6ppna... +open.shortdescription=\xD6ppna karta +open.longdescription=\xD6ppnar en karta fr\xE5n fil +open.mnemonic=P +open.accel=ctrl pressed O + +close.text=St\xE4ng +close.shortdescription=St\xE4ng karta +close.longdescription=St\xE4nger den aktuella kartan +close.mnemonic=T +close.accel=ctrl pressed W + +save.text=Spara +save.shortdescription=Spara karta +save.longdescription=Sparar den aktuella kartan +save.mnemonic=S +save.accel=ctrl pressed S + +saveAs.text=Spara som... +saveAs.shortdescription=Spara karta som ny fil +saveAs.longdescription=Sparar en karta under ett nytt filnamn +saveAs.mnemonic=A +saveAs.accel=ctrl shift pressed S + +revert.text=\xC5terst\xE4ll +revert.shortdescription=\xC5terst\xE4ller karta +revert.longdescription=\xC5terst\xE4ller kartan till den senast sparade versionen +revert.mnemonic=R + +createImg.text=Skapa bild +createImg.shortdescription=Skapa bild av kartan +createImg.longdescription=Skapar en bild av kartan och sparar till fil +createImg.mnemonic=B + +options.text=Inst\xE4llningar... +options.shortdescription=Justera inst\xE4llningar +options.longdescription=\xD6ppnar dialogen f\xF6r att justera editorinst\xE4llningarna +options.mnemonic=I +options.accel=ctrl alt pressed S + +exit.text=Avsluta +exit.shortdescription=Avsluta programmet +exit.longdescription=Avslutar programmet +exit.mnemonic=A +exit.accel=ctrl pressed Q + + +####### +# Edit + +edit.text=Redigera +edit.mnemonic=E + +clear.text=Rensa +clear.shortdescription=Rensa markerade rutor +clear.longdescription=Rensar alla markerade rutor +clear.mnemonic=R +clear.accel=DELETE + +cut.text=Klipp ut +cut.mnemonic=K +cut.accel=ctrl pressed X + +copy.text=Kopiera +copy.mnemonic=O +copy.accel=ctrl pressed C + +paste.text=Klistra in +paste.mnemonic=L +paste.accel=ctrl pressed V + +replace.text=Ers\xE4tt +replace.mnemonic=E +replace.accel=ctrl pressed R + +fillAbove.text=Fyll ovanf\xF6r +fillAbove.mnemonic=O +fillAbove.accel=ctrl pressed F + +fillBelow.text=Fyll under +fillBelow.mnemonic=U +fillBelow.accel=ctrl shift pressed F + +randFillAbove.text=Slumpfyll ovanf\xF6r +randFillAbove.accel=ctrl pressed D + +randFillBelow.text=Slumpfyll under +randFillBelow.accel=ctrl shift pressed D + +selectAll.text=Markera allt +selectAll.mnemonic=M +selectAll.accel=ctrl pressed A + + +####### +# Map + +map.text=Karta +map.mnemonic=K + +gridVisible.text=Visa rutn\xE4t +gridVisible.mnemonic=V +gridVisible.shortdescription=Rita ut rutn\xE4t f\xF6r att visa enstaka kartrutor +gridVisible.accel=ctrl pressed G + +enterExit.text=F\xF6lj utg\xE5ng +enterExit.mnemonic=F +enterExit.accel=ctrl pressed NUMPAD5 + +enterNorthMap.text=G\xE5 norr +enterNorthMap.accel=ctrl pressed NUMPAD9 + +enterEastMap.text=G\xE5 \xF6st +enterEastMap.accel=ctrl pressed NUMPAD3 + +enterSouthMap.text=G\xE5 s\xF6der +enterSouthMap.accel=ctrl pressed NUMPAD1 + +enterWestMap.text=G\xE5 v\xE4st +enterWestMap.accel=ctrl pressed NUMPAD7 + +mapProperties.text=Egenskaper... +mapProperties.mnemonic=E +mapProperties.accel=ctrl pressed M + + +####### +# Cursor + +cursor.text=Mark\xF6r +cursor.mnemonic=M + +moveCursor.text=Flytta mark\xF6r + +goNorth.text=Flytta mark\xF6r norrut +goNorth.accel=NUMPAD9 + +goNorthEast.text=Flytta mark\xF6r nord\xF6st +goNorthEast.accel=NUMPAD6 + +goEast.text=Flytta mark\xF6r \xF6sterut +goEast.accel=NUMPAD3 + +goSouthEast.text=Flytta mark\xF6r syd\xF6st +goSouthEast.accel=NUMPAD2 + +goSouth.text=Flytta mark\xF6r s\xF6derut +goSouth.accel=NUMPAD1 + +goSouthWest.text=Flytta mark\xF6r sydv\xE4st +goSouthWest.accel=NUMPAD4 + +goWest.text=Flytta mark\xF6r v\xE4sterut +goWest.accel=NUMPAD7 + +goNorthWest.text=Flytta mark\xF6r nordv\xE4st +goNorthWest.accel=NUMPAD8 + +selectTile.text=Markera ruta +selectTile.accel=NUMPAD5 + +startStopDrag.text=B\xF6rja/sluta dragning +startStopDrag.accel=SPACE + +addToSelection.text=L\xE4gg till markering +addToSelection.accel=ADD + +subFromSelection.text=Ta bort fr\xE5n markering +subFromSelection.accel=SUBTRACT + +releaseDrag.text=Sl\xE4pp markering +releaseDrag.accel=BACK_SPACE + +insertArch.text=Stoppa in objekt +insertArch.accel=NUMPAD0 + +deleteArch.text=Radera objekt +deleteArch.accel=DECIMAL + +selectArchAbove.text=V\xE4lj \xF6vre objekt +selectArchAbove.accel=DIVIDE + +selectArchBelow.text=V\xE4lj undre objekt +selectArchBelow.accel=MULTIPLY + +archAttributes.text=Objektattribut +archAttributes.accel=ENTER + + +########### +# Pickmaps + +pickmaps.text=Plockkartor +pickmaps.mnemonic=P + +lockAllPickmaps.text=L\xE5s alla plockkartor +lockAllPickmaps.mnemonic=L + +addNewPickmap.text=L\xE4gg till ny plockkarta +addNewPickmap.mnemonic=N + +closePickmap.text=St\xE4ng aktiv plockkarta +closePickmap.mnemonic=T + +openPickmapMap.text=\xD6ppna aktiv plockkarta som karta +openPickmapMap.mnemonic=P + +savePickmap.text=Spara aktiv plockkarta +savePickmap.mnemonic=S + +revertPickmap.text=\xC5terst\xE4ll plockkarta +revertPickmap.mnemonic=R + + +############ +# Resources + +resources.text=Resurser +resources.mnemonic=R + +collectArches.text=Skapa archetypsamling +collectArches.mnemonic=A + +collectSpells.text=Sammanst\xE4ll trollformler +collectSpells.mnemonic=S + +viewTreasurelists.text=Visa skattlistor +viewTreasurelists.mnemonic=V + + +######## +# Tools + +tools.text=Verktyg +tools.mnemonic=T + +gc.text=G\xF6r garbage collection +gc.mnemonic=G + + +######### +# Analyze + + +####### +# View + +view.text=Visning +view.mnemonic=V + +showMonster.text=Monster +showMonster.mnemonic=M + +showExit.text=Utg\xE5ngar +showExit.mnemonic=U + +showBackground.text=Bakgrund +showBackground.mnemonic=B + +showDoor.text=D\xF6rrar och nycklar +showDoor.mnemonic=D + +showWall.text=V\xE4ggar +showWall.mnemonic=V + +showEquipment.text=Utrustning +showEquipment.mnemonic=R + +showTreasure.text=Skatter +showTreasure.mnemonic=S + +showConnected.text=Anslutna +showConnected.mnemonic=A + +resetView.text=\xC5terst\xE4ll visning +resetView.mnemonic=V + + +######### +# Plugins + + +######### +# Window + +window.text=F\xF6nster +window.mnemonic=F + +nextWindow.text=N\xE4sta +nextWindow.shortdescription=Visa n\xE4sta f\xF6nster +nextWindow.accel=shift pressed PAGE_UP + +prevWindow.text=F\xF6reg\xE5ende +prevWindow.shortdescription=Visa f\xF6reg\xE5ende f\xF6nster +prevWindow.accel=shift pressed PAGE_DOWN + +closeAll.text=St\xE4ng alla +closeAll.shortdescription=St\xE4ng alla kartor +closeAll.longdescription=St\xE4nger alla \xF6ppnade kartor +closeAll.mnemonic=S +closeAll.accel=ctrl shift pressed W + + +####### +# Help + +help.text=Hj\xE4lp +help.mnemonic=H + +onlineHelp.text=Inbyggd hj\xE4lp +onlineHelp.mnemonic=H +onlineHelp.accel=F1 + +about.text=Om... +about.mnemonic=O + + +############ +# Map window + +mapwindowFile.text=Arkiv +mapwindowFile.mnemonic=A + +mapwindowEdit.text=Redigera +mapwindowEdit.mnemonic=E + +mapwindowMap.text=Karta +mapwindowMap.mnemonic=K + +mapwindowCursor.text=Mark\xF6r +mapwindowCursor.mnemonic=M + +mapwindowView.text=Visning +mapwindowView.mnemonic=V This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2006-12-24 13:49:28
|
Revision: 1269 http://svn.sourceforge.net/gridarta/?rev=1269&view=rev Author: akirschbaum Date: 2006-12-24 05:49:28 -0800 (Sun, 24 Dec 2006) Log Message: ----------- Update archetypes. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/resource/conf/archetypes Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2006-12-24 13:25:38 UTC (rev 1268) +++ trunk/crossfire/ChangeLog 2006-12-24 13:49:28 UTC (rev 1269) @@ -1,5 +1,7 @@ 2006-12-24 Andreas Kirschbaum + * Update archetypes. + * Add affected game object names to connection view. * Make connection view highlight affected game objects in the map Modified: trunk/crossfire/resource/conf/archetypes =================================================================== --- trunk/crossfire/resource/conf/archetypes 2006-12-24 13:25:38 UTC (rev 1268) +++ trunk/crossfire/resource/conf/archetypes 2006-12-24 13:49:28 UTC (rev 1269) @@ -20694,7 +20694,6 @@ editable 132 no_pick 1 identified 1 -randomitems sarcophagus name_pl sarcophaguss client_type 51 editor_folder misc/Container @@ -21889,51 +21888,6 @@ editable 8 editor_folder misc end -Object sarcophagus_container -name sarcophagus -face sarcophagus.111 -nrof 0 -type 4 -hp 1 -material 0 -materialname stone -value 50 -weight 800000 -editable 132 -no_pick 1 -identified 1 -name_pl sarcophaguss -client_type 51 -editor_folder misc -end - -Object sarcophagus_container2 -name sarcophagus -other_arch close_sarcophagus_container -face sarcophagus.111 -type 122 -material 0 -materialname stone -value 50 -container 150000 -weight 800000 -editable 128 -no_pick 1 -identified 1 -name_pl sarcophaguss -client_type 51 -editor_folder misc -end -Object close_sarcophagus_container -name close the sarcophagus -face sarcophagus.111 -type 121 -no_pick 1 -no_drop 1 -identified 1 -editable 0 -editor_folder misc -end Object b_slicingknife nrof 1 type 163 @@ -53891,9 +53845,6 @@ other_arch town_portal race town_portal_active slaying town_portal_magic -msg -Town portal connects two places -endmsg editor_folder spell/TownPortal end Object town_portal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-05 07:35:59
|
Revision: 1441 http://svn.sourceforge.net/gridarta/?rev=1441&view=rev Author: akirschbaum Date: 2007-01-04 23:35:59 -0800 (Thu, 04 Jan 2007) Log Message: ----------- Retain inventory when copying game objects. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gameobject/GameObject.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-05 07:21:46 UTC (rev 1440) +++ trunk/crossfire/ChangeLog 2007-01-05 07:35:59 UTC (rev 1441) @@ -1,3 +1,7 @@ +2007-01-05 Andreas Kirschbaum + + * Retain inventory when copying game objects. + 2006-12-24 Andreas Kirschbaum * Update archetypes. Modified: trunk/crossfire/src/cfeditor/gameobject/GameObject.java =================================================================== --- trunk/crossfire/src/cfeditor/gameobject/GameObject.java 2007-01-05 07:21:46 UTC (rev 1440) +++ trunk/crossfire/src/cfeditor/gameobject/GameObject.java 2007-01-05 07:35:59 UTC (rev 1441) @@ -73,12 +73,6 @@ private boolean editflag; // if true, object is in a editor /** - * All inventory objects. Set to {@link Collections#EMPTY_LIST} - * (to save space) if the object has no inventory. - */ - private List<GameObject> inv = Collections.EMPTY_LIST; - - /** * Object type. */ private int archType; @@ -534,7 +528,7 @@ clone.setMapX(posx); clone.setMapY(posy); - for (final GameObject invItem : inv) { + for (final GameObject invItem : this) { clone.addLast(invItem.createClone(posx, posy)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-06 12:00:09
|
Revision: 1452 http://svn.sourceforge.net/gridarta/?rev=1452&view=rev Author: akirschbaum Date: 2007-01-06 04:00:05 -0800 (Sat, 06 Jan 2007) Log Message: ----------- Unify SelectedSquareView/SelectedSquareControl code. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/IGUIConstants.java trunk/crossfire/src/cfeditor/action.properties trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareControl.java trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareView.java trunk/crossfire/src/cfeditor/messages.properties trunk/crossfire/src/cfeditor/messages_de.properties trunk/crossfire/src/cfeditor/messages_sv.properties Added Paths: ----------- trunk/crossfire/resource/icons/navigation/Bottom16.gif trunk/crossfire/resource/icons/navigation/Down16.gif trunk/crossfire/resource/icons/navigation/Top16.gif trunk/crossfire/resource/icons/navigation/Up16.gif Removed Paths: ------------- trunk/crossfire/resource/icons/MoveDown.gif trunk/crossfire/resource/icons/MoveUp.gif trunk/crossfire/src/cfeditor/CFancyButton.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/ChangeLog 2007-01-06 12:00:05 UTC (rev 1452) @@ -1,3 +1,8 @@ +2007-01-06 Andreas Kirschbaum + + * Add "move to top" and "move to bottom" buttons to map tile + panel. + 2007-01-05 Andreas Kirschbaum * Retain inventory when copying game objects. Deleted: trunk/crossfire/resource/icons/MoveDown.gif =================================================================== (Binary files differ) Deleted: trunk/crossfire/resource/icons/MoveUp.gif =================================================================== (Binary files differ) Copied: trunk/crossfire/resource/icons/navigation/Bottom16.gif (from rev 1448, trunk/daimonin/resource/toolbarButtonGraphics/navigation/Bottom16.gif) =================================================================== (Binary files differ) Copied: trunk/crossfire/resource/icons/navigation/Down16.gif (from rev 1448, trunk/daimonin/resource/icons/navigation/Down16.gif) =================================================================== (Binary files differ) Copied: trunk/crossfire/resource/icons/navigation/Top16.gif (from rev 1448, trunk/daimonin/resource/toolbarButtonGraphics/navigation/Top16.gif) =================================================================== (Binary files differ) Copied: trunk/crossfire/resource/icons/navigation/Up16.gif (from rev 1448, trunk/daimonin/resource/icons/navigation/Up16.gif) =================================================================== (Binary files differ) Deleted: trunk/crossfire/src/cfeditor/CFancyButton.java =================================================================== --- trunk/crossfire/src/cfeditor/CFancyButton.java 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/CFancyButton.java 2007-01-06 12:00:05 UTC (rev 1452) @@ -1,97 +0,0 @@ -/* - * Crossfire Java Editor. - * Copyright (C) 2000 Michael Toennies - * Copyright (C) 2001 Andreas Vogl - * - * (code based on: Gridder. 2D grid based level editor. (C) 2000 Pasi Keränen) - * - * 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., 59 Temple Place - Suite 330, Boston, MA - * 02111-1307, USA. - * - */ - -package cfeditor; - -import java.awt.Insets; -import java.awt.event.ActionListener; -import javax.swing.ImageIcon; -import javax.swing.JButton; - -/** - * A JButton subclass. - * @author <a href="mailto:mic...@no...">Michael Toennies</a> - * @deprecated Don't use this anymore. - */ -@Deprecated public final class CFancyButton extends JButton { - - private ImageIcon normalIcon; - - private ImageIcon rolloverIcon; - - private static final long serialVersionUID = 1L; - - public CFancyButton(final String strLabel, final ActionListener actionListener) { - this(strLabel, null, null, actionListener); - } - - public CFancyButton(final String label, final String toolTip, final ActionListener actionListener) { - this(label, toolTip, null, actionListener); - } - - public CFancyButton(final String label, final String toolTip, final String icon, final ActionListener actionListener) { - super(label); - if (toolTip != null) { - setToolTipText(toolTip); - } - if (icon != null) { - rolloverIcon = CGUIUtils.getIcon(icon); - setFancyIcon(rolloverIcon); - } - if (actionListener != null) { - addActionListener(actionListener); - } else { - setEnabled(false); - } - setMargin(new Insets(2, 2, 2, 2)); - } - - /** - * Sets the fancy icon (automatically calculates the grayscaled normal icon). - * @param icon the icon to be used as the rollover icon. - */ - public void setFancyIcon(final ImageIcon icon) { - rolloverIcon = icon; - if (rolloverIcon != null) { - normalIcon = CGUIUtils.getGrayScaled(rolloverIcon); - } else { - normalIcon = null; - } - super.setIcon(normalIcon); - } - - /** Preserve rollover icons over UI changes. */ - @Override public void updateUI() { - super.updateUI(); - setBorderPainted(true); - setIcon(normalIcon); - } - - @Override public void setEnabled(final boolean b) { - super.setEnabled(b); - setRolloverIcon(rolloverIcon); - setIcon(normalIcon); - } - -} // class CFancyButton Modified: trunk/crossfire/src/cfeditor/IGUIConstants.java =================================================================== --- trunk/crossfire/src/cfeditor/IGUIConstants.java 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/IGUIConstants.java 2007-01-06 12:00:05 UTC (rev 1452) @@ -163,10 +163,6 @@ String PREVIOUS_WINDOW_ICON = "PrevWindowIcon.gif"; - String MOVE_UP_ICON = "MoveUp.gif"; - - String MOVE_DOWN_ICON = "MoveDown.gif"; - String EMPTY_SMALLICON = "EmptySmallIcon.gif"; String SAVE_LEVEL_SMALLICON = "SaveLevelSmallIcon.gif"; Modified: trunk/crossfire/src/cfeditor/action.properties =================================================================== --- trunk/crossfire/src/cfeditor/action.properties 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/action.properties 2007-01-06 12:00:05 UTC (rev 1452) @@ -122,5 +122,11 @@ about.icon=general/About16 +moveTileTop.icon=navigation/Top16 +moveTileUp.icon=navigation/Up16 +moveTileDown.icon=navigation/Down16 +moveTileBottom.icon=navigation/Bottom16 + + prefsRes.icon=general/Save24 prefsGUI.icon=development/Host24 Modified: trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareControl.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareControl.java 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareControl.java 2007-01-06 12:00:05 UTC (rev 1452) @@ -42,6 +42,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import net.sf.gridarta.map.MapSquare; +import net.sf.japi.swing.ActionMethod; import org.jetbrains.annotations.Nullable; /** @@ -80,28 +81,6 @@ view = new SelectedSquareView(this, mainControl, mainView.isMapTileListBottom()); } - ActionListener getButtonDownActionListener() { - return new ActionListener() { - public void actionPerformed(final ActionEvent e) { - final GameObject arch = getMapTileSelection(); - if (arch != null) { - arch.moveDown(); - } - } - }; - } - - ActionListener getButtonUpActionListener() { - return new ActionListener() { - public void actionPerformed(final ActionEvent e) { - final GameObject arch = getMapTileSelection(); - if (arch != null) { - arch.moveUp(); - } - } - }; - } - ListSelectionListener getListSelectionListener() { return new ListSelectionListener() { public void valueChanged(final ListSelectionEvent e) { @@ -139,6 +118,46 @@ }; } + /** + * Action method for moving an arch topmost within its tile. + */ + @ActionMethod public void moveTileTop() { + final GameObject arch = getMapTileSelection(); + if (arch != null) { + arch.moveTop(); + } + } + + /** + * Action method for moving an arch up within its tile. + */ + @ActionMethod public void moveTileUp() { + final GameObject arch = getMapTileSelection(); + if (arch != null) { + arch.moveUp(); + } + } + + /** + * Action method for moving an arch down within its tile. + */ + @ActionMethod public void moveTileDown() { + final GameObject arch = getMapTileSelection(); + if (arch != null) { + arch.moveDown(); + } + } + + /** + * Action method for moving an arch topmost within its tile. + */ + @ActionMethod public void moveTileBottom() { + final GameObject arch = getMapTileSelection(); + if (arch != null) { + arch.moveBottom(); + } + } + public void selectArchBelow() { view.setSelectedIndex(view.getSelectedIndex() + 1); } Modified: trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareView.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareView.java 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/gui/selectedsquare/SelectedSquareView.java 2007-01-06 12:00:05 UTC (rev 1452) @@ -25,7 +25,6 @@ package cfeditor.gui.selectedsquare; -import cfeditor.CFancyButton; import cfeditor.CMainControl; import cfeditor.IGUIConstants; import cfeditor.gameobject.GameObject; @@ -33,20 +32,18 @@ import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; +import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseEvent; -import javax.swing.BorderFactory; import javax.swing.DefaultListModel; +import javax.swing.JButton; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; -import static javax.swing.JViewport.SIMPLE_SCROLL_MODE; +import javax.swing.JViewport; import javax.swing.ListSelectionModel; import javax.swing.ScrollPaneConstants; -import static javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER; -import static javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER; -import javax.swing.SwingConstants; import net.sf.gridarta.MainControlListener; import net.sf.gridarta.gui.map.MapCursorEvent; import net.sf.gridarta.gui.map.MapCursorListener; @@ -55,6 +52,7 @@ import net.sf.gridarta.map.MapModelEvent; import net.sf.gridarta.map.MapModelListener; import net.sf.gridarta.map.MapSquare; +import net.sf.japi.swing.ActionFactory; import org.apache.log4j.Logger; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -64,6 +62,7 @@ * Currently it uses a list but in future it will use a tree instead. * @author <a href="mailto:mic...@no...">Michael Toennies</a> * @author <a href="mailto:and...@gm...">Andreas Vogl</a> + * @author <a href="mailto:ch...@ri...">Christian Hujer</a> */ public final class SelectedSquareView extends JPanel implements MainControlListener<MapControl>, MapCursorListener, MapModelListener<GameObject> { @@ -73,6 +72,9 @@ /** The Logger for printing log messages. */ private static final Logger log = Logger.getLogger(SelectedSquareView.class); + /** Action Factory. */ + private static final ActionFactory ACTION_FACTORY = ActionFactory.getFactory("cfeditor"); + /** The main control for this view. */ @NotNull final CMainControl mainControl; @@ -115,41 +117,22 @@ list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); final JScrollPane scrollPane = new JScrollPane(list); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - scrollPane.getViewport().setScrollMode(SIMPLE_SCROLL_MODE); + scrollPane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE); add(scrollPane, BorderLayout.CENTER); final JPanel arrows = new JPanel(); if (mapTileListBottom) { - arrows.setLayout(new GridLayout(2, 1)); - } - final JScrollPane scrollPane2 = new JScrollPane(arrows); - scrollPane2.setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_NEVER); - scrollPane2.setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_NEVER); - scrollPane2.getViewport().setScrollMode(SIMPLE_SCROLL_MODE); - if (!mapTileListBottom) { - add(scrollPane2, BorderLayout.SOUTH); // put up/down buttons south + arrows.setLayout(new GridLayout(4, 1)); + add(arrows, BorderLayout.WEST); // put up/down buttons west } else { - add(scrollPane2, BorderLayout.WEST); // put up/down buttons west - scrollPane2.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); // don't show the border + add(arrows, BorderLayout.SOUTH); // put up/down buttons south } - - final CFancyButton buttonDown = new CFancyButton(null, "Move Tile Position Down", IGUIConstants.MOVE_DOWN_ICON, control.getButtonDownActionListener()); - buttonDown.setVerticalTextPosition(SwingConstants.BOTTOM); - buttonDown.setHorizontalTextPosition(SwingConstants.CENTER); - if (!mapTileListBottom) { - arrows.add(buttonDown, BorderLayout.EAST); + for (final String keyPostfix : new String[] { "Top", "Up", "Down", "Bottom" }) { + final JButton button = new JButton(ACTION_FACTORY.createAction(true, "moveTile" + keyPostfix, control)); + arrows.add(button); + button.setMargin(new Insets(0, 0, 0, 0)); } - final CFancyButton buttonUp = new CFancyButton(null, "Move Tile Position Up", IGUIConstants.MOVE_UP_ICON, control.getButtonUpActionListener()); - buttonUp.setVerticalTextPosition(SwingConstants.BOTTOM); - buttonUp.setHorizontalTextPosition(SwingConstants.CENTER); - if (!mapTileListBottom) { - arrows.add(buttonUp, BorderLayout.WEST); - } else { - arrows.add(buttonUp); - arrows.add(buttonDown); - } - list.addListSelectionListener(control.getListSelectionListener()); /** Modified: trunk/crossfire/src/cfeditor/messages.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages.properties 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/messages.properties 2007-01-06 12:00:05 UTC (rev 1452) @@ -454,3 +454,12 @@ mapwindowView.text=View mapwindowView.mnemonic=V + + +################# +# Map Arch Panel + +moveTileTop.shortdescription=Move Object to top of Square +moveTileUp.shortdescription=Move Object up in Square +moveTileDown.shortdescription=Move Object down in Square +moveTileBottom.shortdescription=Move Object to bottom of Square Modified: trunk/crossfire/src/cfeditor/messages_de.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages_de.properties 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/messages_de.properties 2007-01-06 12:00:05 UTC (rev 1452) @@ -679,3 +679,12 @@ mapwindowView.text=Ansicht mapwindowView.mnemonic=A + + +################# +# Map Arch Panel + +moveTileTop.shortdescription=Objekt an den Anfang verschieben +moveTileUp.shortdescription=Objekt nach oben verschieben +moveTileDown.shortdescription=Objekt nach unten verschieben +moveTileBottom.shortdescription=Object ans Ende verschieben Modified: trunk/crossfire/src/cfeditor/messages_sv.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages_sv.properties 2007-01-06 11:58:12 UTC (rev 1451) +++ trunk/crossfire/src/cfeditor/messages_sv.properties 2007-01-06 12:00:05 UTC (rev 1452) @@ -593,3 +593,10 @@ mapwindowView.text=Visning mapwindowView.mnemonic=V + + +################# +# Map Arch Panel + +moveTileUp.shortdescription=Flytta upp objekt +moveTileDown.shortdescription=Flytta ner objekt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-07 13:24:46
|
Revision: 1493 http://svn.sourceforge.net/gridarta/?rev=1493&view=rev Author: akirschbaum Date: 2007-01-07 05:24:47 -0800 (Sun, 07 Jan 2007) Log Message: ----------- Fix #1621873 (Analyze menus misrender on multi-tile objects). Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/filter/AttributeFilter.java trunk/crossfire/src/cfeditor/filter/NamedFilterList.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-07 13:02:29 UTC (rev 1492) +++ trunk/crossfire/ChangeLog 2007-01-07 13:24:47 UTC (rev 1493) @@ -1,5 +1,7 @@ 2007-01-07 Andreas Kirschbaum + * Fix #1621873 (Analyze menus misrender on multi-tile objects). + * Fix #1613729 (Monsters appear as "weak wall (0)"). (Previous fix did miss the game object attributes panel.) Modified: trunk/crossfire/src/cfeditor/filter/AttributeFilter.java =================================================================== --- trunk/crossfire/src/cfeditor/filter/AttributeFilter.java 2007-01-07 13:02:29 UTC (rev 1492) +++ trunk/crossfire/src/cfeditor/filter/AttributeFilter.java 2007-01-07 13:24:47 UTC (rev 1493) @@ -16,6 +16,7 @@ import javax.swing.JMenuItem; import net.sf.japi.swing.ActionFactory; import org.apache.log4j.Logger; +import org.jetbrains.annotations.NotNull; import org.jdom.Element; /** @@ -35,23 +36,49 @@ private static final Logger log = Logger.getLogger(AttributeFilter.class); - private final Map<String, String> attrList; + /** + * Set of attributes to check for in the head part. + */ + private final Map<String, String> headAttrList = new HashMap<String, String>(); + /** + * Set of attributes to check for in the tail part. + */ + private final Map<String, String> tailAttrList = new HashMap<String, String>(); + private int matchType = -1; - /** Creates an AttributeFilter. */ - public AttributeFilter() { - attrList = new HashMap<String, String>(); + /** + * Add a game object attribute to check for. + * + * @param name the game object attribute name + * + * @param value the game object attribute value + * + * @param useHead if set use the game object's head's attribute; if unset + * use the game objects's attribute + */ + public void addAttribute(@NotNull final String name, @NotNull final String value, final boolean useHead) { + if (useHead) { + headAttrList.put(name, value); + } else { + tailAttrList.put(name, value); + } } - public void addAttribute(final String name, final String value) { - attrList.put(name, value); + /** + * Remove a game object attribute to check for. Does nothing if the + * attribute didn't exist. + * + * @param name the game object attribute name + * + * @param value the game object attribute value + */ + public void removeAttribute(@NotNull final String name, @NotNull final String value) { + headAttrList.remove(name); + tailAttrList.remove(name); } - public void removeAttribute(final String name, final String value) { - attrList.remove(name); - } - public void setType(final int type) { matchType = type; } @@ -63,22 +90,23 @@ /** {@inheritDoc} */ public boolean match(final FilterConfig config, final GameObject gameObject) { boolean hasChecked = false; - final Set<Map.Entry<String, String>> pairs = attrList.entrySet(); - if (!pairs.isEmpty()) { + if (!tailAttrList.isEmpty()) { hasChecked = true; - for (final Map.Entry<String, String> ent : pairs) { - final String key = ent.getKey(); - final String val = ent.getValue(); - if (!gameObject.getAttributeString(key).equals(val)) { - return false; - } + if (!match(gameObject, tailAttrList)) { + return false; } } + if (!headAttrList.isEmpty()) { + hasChecked = true; + if (!match(gameObject.getHead(), headAttrList)) { + return false; + } + } if (matchType >= 0) { hasChecked = true; if (log.isDebugEnabled()) { log.debug("checking type for " + gameObject.getBestName()); - log.debug("o.getArchTypNr() != matchType: " + gameObject.getArchTypNr() + " != " + matchType); + log.debug("gameObject.getArchTypNr() != matchType: " + gameObject.getArchTypNr() + " != " + matchType); } if (gameObject.getArchTypNr() != matchType) { return false; @@ -87,6 +115,27 @@ return hasChecked; } + /** + * Check if a game object matches a set of attributes. + * + * @param gameObject the game object to match + * + * @param pairs the attribute set as (key, value) pairs + * + * @return <code>true</code> if the game object matches all attributes, + * <code>false</code> otherwise + */ + private static boolean match(@NotNull final GameObject gameObject, @NotNull final Map<String, String> pairs) { + for (final Map.Entry<String, String> ent : pairs.entrySet()) { + final String key = ent.getKey(); + final String val = ent.getValue(); + if (!gameObject.getAttributeString(key).equals(val)) { + return false; + } + } + return true; + } + /** {@inheritDoc} */ public boolean reset(final FilterConfig config) { return false; Modified: trunk/crossfire/src/cfeditor/filter/NamedFilterList.java =================================================================== --- trunk/crossfire/src/cfeditor/filter/NamedFilterList.java 2007-01-07 13:02:29 UTC (rev 1492) +++ trunk/crossfire/src/cfeditor/filter/NamedFilterList.java 2007-01-07 13:24:47 UTC (rev 1493) @@ -57,36 +57,36 @@ subFilters = new LinkedHashMap<String, Filter>(); AttributeFilter f; f = new AttributeFilter(); - f.addAttribute("no_pass", "1"); + f.addAttribute("no_pass", "1", false); subFilters.put("Blocked way", f); f = new AttributeFilter(); - f.addAttribute("alive", "1"); - f.addAttribute("tear_down", "1"); + f.addAttribute("alive", "1", true); + f.addAttribute("tear_down", "1", true); subFilters.put("Weak wall", f); f = new AttributeFilter(); - f.addAttribute("invisible", "1"); + f.addAttribute("invisible", "1", false); subFilters.put("Hidden Items", f); f = new AttributeFilter(); - f.addAttribute("is_floor", "1"); + f.addAttribute("is_floor", "1", true); subFilters.put("Floor", f); f = new AttributeFilter(); - f.addAttribute("no_magic", "1"); - f.addAttribute("no_pick", "1"); + f.addAttribute("no_magic", "1", false); + f.addAttribute("no_pick", "1", true); subFilters.put("Magic forbidden", f); f = new AttributeFilter(); - f.addAttribute("damned", "1"); - f.addAttribute("no_pick", "1"); + f.addAttribute("damned", "1", true); + f.addAttribute("no_pick", "1", true); subFilters.put("Unholy ground", f); f = new AttributeFilter(); - f.addAttribute("no_magic", "1"); - f.addAttribute("damned", "1"); - f.addAttribute("no_pick", "1"); + f.addAttribute("no_magic", "1", true); + f.addAttribute("damned", "1", true); + f.addAttribute("no_pick", "1", true); subFilters.put("Spells forbidden", f); f = new AttributeFilter(); - f.addAttribute("alive", "1"); + f.addAttribute("alive", "1", true); subFilters.put("Living creature", f); f = new AttributeFilter(); - f.addAttribute("monster", "1"); + f.addAttribute("monster", "1", true); subFilters.put("Monsters", f); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-07 14:24:32
|
Revision: 1496 http://svn.sourceforge.net/gridarta/?rev=1496&view=rev Author: akirschbaum Date: 2007-01-07 06:24:32 -0800 (Sun, 07 Jan 2007) Log Message: ----------- Do not reflect filter settings into pickmaps. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-07 14:18:29 UTC (rev 1495) +++ trunk/crossfire/ChangeLog 2007-01-07 14:24:32 UTC (rev 1496) @@ -1,5 +1,7 @@ 2007-01-07 Andreas Kirschbaum + * Do not reflect filter settings into pickmaps. + * Fix #1621873 (Analyze menus misrender on multi-tile objects). * Fix #1613729 (Monsters appear as "weak wall (0)"). (Previous fix Modified: trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java 2007-01-07 14:18:29 UTC (rev 1495) +++ trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java 2007-01-07 14:24:32 UTC (rev 1496) @@ -471,41 +471,42 @@ grfx.fillRect(point.x * 32, point.y * 32, 32, 32); for (final GameObject node : mapModel.getMapSquare(point)) { filter.objectInSquare(node); - if (!filter.canShow(node)) { + if (!isPickmap && !filter.canShow(node)) { continue; } - if (mainControl.isTileEdit(node) || isPickmap) { - final ImageIcon img; - if (node.getArchetypeName() == null) { - img = CMainControl.getNoarchTileIcon(); + if (!isPickmap && !mainControl.isTileEdit(node)) { + continue; + } + final ImageIcon img; + if (node.getArchetypeName() == null) { + img = CMainControl.getNoarchTileIcon(); + offset.x = 0; + offset.y = 0; + } else if (node.getFaceFlag()) { + img = CMainControl.getNofaceTileIcon(); + offset.x = 0; + offset.y = 0; + } else if (node.getFaceNr() == -1) { + img = CMainControl.getUnknownTileIcon(); + offset.x = 0; + offset.y = 0; + } else { + img = archlist.getFace(node); + if (!node.isMulti() || (img.getIconWidth() == 32 && img.getIconHeight() == 32)) { offset.x = 0; offset.y = 0; - } else if (node.getFaceFlag()) { - img = CMainControl.getNofaceTileIcon(); - offset.x = 0; - offset.y = 0; - } else if (node.getFaceNr() == -1) { - img = CMainControl.getUnknownTileIcon(); - offset.x = 0; - offset.y = 0; } else { - img = archlist.getFace(node); - if (!node.isMulti() || (img.getIconWidth() == 32 && img.getIconHeight() == 32)) { - offset.x = 0; - offset.y = 0; - } else { - // this is an oversized image, so it must be shifted - // XXX: it must also be clipped to not overwrite filter information - offset.x = -32 * node.getMultiX(); - offset.y = -32 * node.getMultiY(); - } + // this is an oversized image, so it must be shifted + // XXX: it must also be clipped to not overwrite filter information + offset.x = -32 * node.getMultiX(); + offset.y = -32 * node.getMultiY(); } - img.paintIcon(DefaultLevelRenderer.this, grfx, point.x * 32 + offset.x, point.y * 32 + offset.y); } + img.paintIcon(DefaultLevelRenderer.this, grfx, point.x * 32 + offset.x, point.y * 32 + offset.y); } } for (int i = 0; i < CFilterControl.MAX_HIGHLIGHT; i++) { - if (!filter.highLightedSquare(i)) { + if (isPickmap || !filter.highLightedSquare(i)) { continue; } final Color alpha = highLightMask[i]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-09 08:04:17
|
Revision: 1521 http://svn.sourceforge.net/gridarta/?rev=1521&view=rev Author: akirschbaum Date: 2007-01-09 00:04:17 -0800 (Tue, 09 Jan 2007) Log Message: ----------- Make pickmap panel work for pickmaps with spaces in the name work. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-08 23:14:47 UTC (rev 1520) +++ trunk/crossfire/ChangeLog 2007-01-09 08:04:17 UTC (rev 1521) @@ -1,3 +1,8 @@ +2007-01-09 Andreas Kirschbaum + + * Make pickmap panel work for pickmaps with spaces in the name + work. + 2007-01-07 Andreas Kirschbaum * Implement undo/redo. Modified: trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java 2007-01-08 23:14:47 UTC (rev 1520) +++ trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java 2007-01-09 08:04:17 UTC (rev 1521) @@ -36,11 +36,9 @@ import java.awt.Component; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; import java.util.List; -import java.util.Map; import javax.swing.JTabbedPane; import net.sf.gridarta.map.MapType; import net.sf.japi.swing.ActionFactory; @@ -63,8 +61,11 @@ private final CMainControl mainControl; // main control reference - /** All open pickmaps (the map controllers get stored in the vector). */ - private final Map<String, MapControl> pickmaps = new HashMap<String, MapControl>(); + /** + * All open pickmaps. The sort order matches {@link + * PickmapChooserView#pickmapPanel}. + */ + private final List<MapControl> pickmaps = new ArrayList<MapControl>(); /** The view for this control. */ private final PickmapChooserView view; @@ -145,19 +146,15 @@ if (objects == null) { // The map is totally empty - bmapview = newPickmap(null, maparch, mapFile); // init the map + newPickmap(null, maparch, mapFile); // init the map } else { // go to ArchetypeParser and add the default arch list information to them if (!mainControl.collectTempList(objects, mapFile)) { // get face names, face id, etc. return false; } mainControl.getArchetypeParser().sortTempList(objects); // sort the list (put multiparts at the end) - bmapview = newPickmap(objects, maparch, mapFile); // init the map + newPickmap(objects, maparch, mapFile); // init the map } - if (bmapview == null) { - return false; - } - view.addPanel(mapFile.getName(), bmapview, getIndex(mapFile)); } catch (final IOException e) { // loading failed - could be a system file in that directory, // or something else. Doesn't deserve more attention than a printout. @@ -186,12 +183,7 @@ mapFile.getParentFile().mkdirs(); } - final CMapViewBasic bmapview = newPickmap(null, maparch, mapFile); - if (bmapview == null) { - return false; - } - view.addPanel(mapFile.getName(), bmapview, getIndex(mapFile)); - setActivePickmap(mapFile.getName()); + newPickmap(null, maparch, mapFile); actions.setLoadComplete(true); return true; } @@ -201,20 +193,19 @@ * @param objects list of objects or <code>null</code> for empty * @param maparch the maparch of the pickmap * @param mapFile The map file that's stored in the MapControl. - * @return basic mapview */ - private CMapViewBasic newPickmap(final List<GameObject> objects, final MapArchObject maparch, final File mapFile) { + private void newPickmap(final List<GameObject> objects, final MapArchObject maparch, final File mapFile) { final MapControl mapControl = new MapControl(mainControl, objects, maparch, true, null); mapControl.getMapViewFrame().setAutoscrolls(true); mapControl.setMapFile(mapFile); + mapControl.resetModified(); - // add pickmap to hashtable - pickmaps.put(mapFile.getName(), mapControl); + final int index = getIndex(mapFile); + pickmaps.add(index, mapControl); + view.addPanel(mapFile.getName(), mapControl.getMapViewFrame().getBasicView(), index); - mapControl.resetModified(); + setActivePickmap(index); actions.setCurrentPickmap(mapControl); - - return mapControl.getMapViewFrame().getBasicView(); } /** @@ -223,35 +214,23 @@ * @return true when closing successful */ public boolean closePickmap(final MapControl mapControl) { - boolean mapClosed = false; - - final Iterator<String> keyit = pickmaps.keySet().iterator(); - while (!mapClosed && keyit.hasNext()) { - final String tmpKey = keyit.next(); - final MapControl tmpMap = pickmaps.get(tmpKey); - if (tmpMap == mapControl) { - pickmaps.remove(tmpKey); - view.removePanel(tmpMap.getMapViewFrame().getBasicView()); - mapClosed = true; - } + final int index = pickmaps.indexOf(mapControl); + if (index == -1) { + return false; } - if (mapClosed) { - updateActivePickmap(); - } - - return mapClosed; + pickmaps.remove(index); + view.removePanel(index); + updateActivePickmap(); + return true; } /** - * Set pickmap with given name to be the active one (ontop). - * @param name map name (which is also the tab title) + * Set pickmap with given tab index to be the active one (ontop). + * @param index the index into <code>pickmaps</code> */ - public void setActivePickmap(final String name) { - final MapControl tmpMap = pickmaps.get(name); - if (tmpMap != null) { - view.selectPanel(tmpMap.getMapViewFrame().getBasicView()); - } + public void setActivePickmap(final int index) { + view.selectPanel(index); } /** Update info which pickmap is currently on top. */ @@ -261,27 +240,13 @@ return; } - final String newName = view.getSelectedPanelTitle(); - if (newName == null) { + final int index = view.getSelectedPanel(); + if (index == -1) { actions.setCurrentPickmap(null); return; } - final MapControl tmp = pickmaps.get(newName); - boolean foundMap = false; - if (tmp != null && tmp.getMapFileName().endsWith("/"+newName)) { - // this is the new active pickmap - actions.setCurrentPickmap(tmp); // <- new pickmap - foundMap = true; - if (log.isDebugEnabled()) { - log.debug("new pickmap: " + newName); - } - } - - if (!foundMap && isPickmapActive() && isLoadComplete()) { - // error: the new selected pickmap couldn't be found - log.error("Bad Error in PickmapChooserControl.updateActivePickmap: Selected pickmap couldn't be found!"); - } + actions.setCurrentPickmap(pickmaps.get(index)); } /** @@ -390,7 +355,6 @@ mainControl.closeLevel(pickmap, true); // close the old map openPickmap(mfile); // open the new map - setActivePickmap(mfile.getName()); // Update the main view so the new map instantly pops up. mainControl.getMainView().update(mainControl.getMainView().getGraphics()); @@ -404,12 +368,19 @@ return view.getPickmapPanel(); } + /** + * Determine where to insert a new pickmap into {@link #pickmaps}. + * + * @param file the file of the pickmap to insert + * + * @return the insertion index + */ private int getIndex(final File file) { - int i; - for (i = 0; i < view.getPickmapPanel().getTabCount() && file.getName().compareToIgnoreCase(view.getPickmapPanel().getTitleAt(i)) < 0; i++) { - ; - } - return i; + int i; + for (i = 0; i < view.getPickmapPanel().getTabCount() && file.getName().compareToIgnoreCase(view.getPickmapPanel().getTitleAt(i)) > 0; i++) { + ; + } + return i; } } // class PickmapChooserControl Modified: trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java 2007-01-08 23:14:47 UTC (rev 1520) +++ trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java 2007-01-09 08:04:17 UTC (rev 1521) @@ -58,16 +58,16 @@ pickmapPanel.insertTab(name, null, mapView, null, index); } - void removePanel(final Component mapView) { - pickmapPanel.remove(mapView); + void removePanel(final int index) { + pickmapPanel.remove(index); } - void selectPanel(final Component mapView) { - pickmapPanel.setSelectedComponent(mapView); + void selectPanel(final int index) { + pickmapPanel.setSelectedIndex(index); } - String getSelectedPanelTitle() { - return pickmapPanel.getTitleAt(pickmapPanel.getSelectedIndex()); + int getSelectedPanel() { + return pickmapPanel.getSelectedIndex(); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-10 22:18:43
|
Revision: 1550 http://svn.sourceforge.net/gridarta/?rev=1550&view=rev Author: akirschbaum Date: 2007-01-10 14:18:44 -0800 (Wed, 10 Jan 2007) Log Message: ----------- When saving a map which in fact is a pickmap, reflect the changes to the pickmap. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java trunk/crossfire/src/cfeditor/map/MapControl.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-10 22:13:24 UTC (rev 1549) +++ trunk/crossfire/ChangeLog 2007-01-10 22:18:44 UTC (rev 1550) @@ -1,5 +1,8 @@ 2007-01-10 Andreas Kirschbaum + * When saving a map which in fact is a pickmap, reflect the + changes to the pickmap. + * Add support for "Event" game objects (type 116). * Fix #1556003 (Crossfire script editor doesn't support new plugin Modified: trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java 2007-01-10 22:13:24 UTC (rev 1549) +++ trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserControl.java 2007-01-10 22:18:44 UTC (rev 1550) @@ -219,6 +219,20 @@ } /** + * Close a pickmap: Remove it from the panel and the data vector. + * @param file the map file name to remove + * @return true when closing successful + */ + public boolean closePickmap(final File file) { + for (final MapControl pickmap : pickmaps) { + if (pickmap.getMapFile().equals(file)) { + return closePickmap(pickmap); + } + } + return false; + } + + /** * Set pickmap with given tab index to be the active one (ontop). * @param index the index into <code>pickmaps</code> */ Modified: trunk/crossfire/src/cfeditor/map/MapControl.java =================================================================== --- trunk/crossfire/src/cfeditor/map/MapControl.java 2007-01-10 22:13:24 UTC (rev 1549) +++ trunk/crossfire/src/cfeditor/map/MapControl.java 2007-01-10 22:18:44 UTC (rev 1550) @@ -30,6 +30,7 @@ import cfeditor.gameobject.GameObject; import java.awt.Point; import java.io.File; +import java.io.IOException; import java.util.List; import net.sf.gridarta.Size2D; import net.sf.gridarta.gui.map.MapCursor; @@ -277,6 +278,23 @@ } assert mapFile != null; mainControl.encodeMapFile(mapFile, mapModel); + /* if we open a pickmap in the editor, is handled as normal map. + * to find out its original a pickmap we check the file name. + */ + if (isPickmap()) { + // this is called when we do a "add-new-pickmap from the pickmap menu + // we need to link the full path & save the map at creation time + // so the pickmap menu can handle it right + try { + mapModel.getMapArchObject().setFileName(mapFile.getCanonicalPath()); + } catch (final IOException e) { + // TODO + } + } else { + if (mainControl.getMainView().getPickmapChooserControl().closePickmap(mapFile)) { + mainControl.getMainView().getPickmapChooserControl().openPickmap(mapFile); + } + } resetModified(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-10 23:14:28
|
Revision: 1562 http://svn.sourceforge.net/gridarta/?rev=1562&view=rev Author: akirschbaum Date: 2007-01-10 15:14:29 -0800 (Wed, 10 Jan 2007) Log Message: ----------- Add context menu to pickmap chooser. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-10 23:08:37 UTC (rev 1561) +++ trunk/crossfire/ChangeLog 2007-01-10 23:14:29 UTC (rev 1562) @@ -1,3 +1,7 @@ +2007-01-11 Andreas Kirschbaum + + * Add context menu to pickmap chooser. + 2007-01-10 Andreas Kirschbaum * When saving a map which in fact is a pickmap, reflect the Modified: trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java 2007-01-10 23:08:37 UTC (rev 1561) +++ trunk/crossfire/src/cfeditor/gui/pickmapchooser/PickmapChooserView.java 2007-01-10 23:14:29 UTC (rev 1562) @@ -47,6 +47,7 @@ private final JTabbedPane pickmapPanel = new JTabbedPane(SwingConstants.TOP); public PickmapChooserView() { + pickmapPanel.setComponentPopupMenu(ACTION_FACTORY.createPopupMenu(true, "pickmaps")); pickmapPanel.setBorder(BorderFactory.createEmptyBorder(IGUIConstants.SPACE_PICKARCH_TOP, 0, 0, 0)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-01-13 21:13:06
|
Revision: 1593 http://svn.sourceforge.net/gridarta/?rev=1593&view=rev Author: akirschbaum Date: 2007-01-13 13:13:01 -0800 (Sat, 13 Jan 2007) Log Message: ----------- Add build information (including the SVN revision number) and licenses to about dialog. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/build.xml trunk/crossfire/src/cfeditor/CMainView.java trunk/crossfire/src/cfeditor/IGUIConstants.java trunk/crossfire/src/cfeditor/messages.properties trunk/crossfire/src/cfeditor/messages_de.properties Added Paths: ----------- trunk/crossfire/resource/icons/crossfireLogoSmall.png trunk/crossfire/src/cfeditor/gui/AboutDialog.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-01-13 21:07:56 UTC (rev 1592) +++ trunk/crossfire/ChangeLog 2007-01-13 21:13:01 UTC (rev 1593) @@ -1,3 +1,8 @@ +2007-01-13 Andreas Kirschbaum + + * Add build information (including the SVN revision number) and + licenses to about dialog. + 2007-01-11 Andreas Kirschbaum * Enable "save" after "save as". Modified: trunk/crossfire/build.xml =================================================================== --- trunk/crossfire/build.xml 2007-01-13 21:07:56 UTC (rev 1592) +++ trunk/crossfire/build.xml 2007-01-13 21:13:01 UTC (rev 1593) @@ -24,7 +24,6 @@ <!-- set properties and clean build directory --> <target name="init"> <property file="developer.properties" /> - <property file="nextBuildNumber.properties" /> <property name="src.dir" value="src" /> <property name="lib.dir" value="lib" /> <property name="devlib.dir" value="devlib/" /><!-- Don't forget trailing / ! --> @@ -44,10 +43,12 @@ <property name="build.developer" value="unknown" /> <property name="javac.args" value="-Xlint:all,-path,-unchecked,-fallthrough,-serial" /> <tstamp><format property="build.tstamp" pattern="yyyy-MM-dd HH:mm:ss z" timezone="UTC"/></tstamp> + <exec executable="svnversion" outputproperty="build.number" /> <echoproperties destfile="build.properties"> - <propertyset negate="true"> - <propertyref prefix="user.ftp"/> - <propertyref prefix="user.scp"/> + <propertyset> + <propertyref prefix="build.developer"/> + <propertyref prefix="build.number"/> + <propertyref prefix="build.tstamp"/> </propertyset> </echoproperties> </target> @@ -115,6 +116,14 @@ <!-- pack everything into the jar file --> <fileset dir="${build.dir}" excludes="MANIFEST.MF,test/**"/> <fileset dir="${src.dir}" includes="**/*.properties" /> + <fileset file="build.properties" /> + <fileset file="../COPYING" /> + <fileset dir="${lib.dir}"> + <include name="*-LICENSE" /> + </fileset> + <fileset dir="../lib"> + <include name="LICENSE-japi.jar" /> + </fileset> <zipgroupfileset dir="../lib/" includes="japi-*.jar" /> <!-- creating the manifest --> @@ -163,7 +172,7 @@ link = "${user.javadoc.link}" > <classpath> - <fileset dir="${lib.dir}" includes="*.jar" excludes="LICENSE-*.jar" /> + <fileset dir="${lib.dir}" includes="*.jar" excludes="*.jar-LICENSE" /> <fileset dir="../lib/" includes="*.jar" excludes="LICENSE-*.jar" /> </classpath> <sourcepath path="${src.dir}" /> @@ -276,8 +285,6 @@ <include name="update.properties" /> </fileset> </scp> - <buildnumber file="nextBuildNumber.properties" /> - <cvs command="commit -m "Released new update version, committing next build number." nextBuildNumber.properties" /> </target> </project> Added: trunk/crossfire/resource/icons/crossfireLogoSmall.png =================================================================== (Binary files differ) Property changes on: trunk/crossfire/resource/icons/crossfireLogoSmall.png ___________________________________________________________________ Name: svn:mime-type + image/png Modified: trunk/crossfire/src/cfeditor/CMainView.java =================================================================== --- trunk/crossfire/src/cfeditor/CMainView.java 2007-01-13 21:07:56 UTC (rev 1592) +++ trunk/crossfire/src/cfeditor/CMainView.java 2007-01-13 21:13:01 UTC (rev 1593) @@ -25,6 +25,7 @@ package cfeditor; import cfeditor.gameobject.GameObject; +import cfeditor.gui.AboutDialog; import cfeditor.gui.GameObjectAttributesPanel; import cfeditor.gui.InsertionObjectChooser; import cfeditor.gui.pickmapchooser.PickmapChooserControl; @@ -784,9 +785,12 @@ } } + /** The AboutDialog. */ + private final AboutDialog aboutDialog = new AboutDialog(); + /** Action method for about. */ public void about() { - mainControl.showMessage("About " + IGUIConstants.APP_NAME, " Version " + IGUIConstants.VERSION + "\n (c) 2001 Michael Toennies\n" + " Andreas Vogl\n"); + aboutDialog.showAboutDialog(this); } public GameObjectAttributesPanel getMapArchPanel() { Modified: trunk/crossfire/src/cfeditor/IGUIConstants.java =================================================================== --- trunk/crossfire/src/cfeditor/IGUIConstants.java 2007-01-13 21:07:56 UTC (rev 1592) +++ trunk/crossfire/src/cfeditor/IGUIConstants.java 2007-01-13 21:13:01 UTC (rev 1593) @@ -37,12 +37,6 @@ public interface IGUIConstants { /** - * Version number of the CFJavaEditor. - * Should be increased when a certain amount of changes happened. - */ - String VERSION = "0.986"; - - /** * Internal version number of the included online-documentation. * Increasing the number causes an automated popup of the docu * when users upgrade their editor and run for the first time. Added: trunk/crossfire/src/cfeditor/gui/AboutDialog.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/AboutDialog.java (rev 0) +++ trunk/crossfire/src/cfeditor/gui/AboutDialog.java 2007-01-13 21:13:01 UTC (rev 1593) @@ -0,0 +1,188 @@ +/* + * Gridarta Map Editor. + * Copyright (C) 2007 The Gridarta Developers + * + * 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., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +package cfeditor.gui; + +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Font; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.Enumeration; +import java.util.Properties; +import java.util.ResourceBundle; +import java.util.SortedSet; +import java.util.TreeSet; +import javax.swing.ImageIcon; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTextArea; +import javax.swing.SwingConstants; +import net.sf.japi.swing.ActionFactory; + +/** + * The AboutDialog displays information about the editor like properties and + * licenses. + * + * @author <a href="mailto:ch...@ri...">Christian Hujer</a> + * @author Andreas Kirschbaum + */ +public class AboutDialog extends JPanel { + + /** Action Factory to create Actions. */ + private static final ActionFactory ACTION_FACTORY = ActionFactory.getFactory("cfeditor"); + + /** + * The main tabs. + */ + private final JTabbedPane tabs; + + /** + * The tabs in the license tab. + */ + private final JTabbedPane licensePane; + + /** Create an AboutDialog. */ + public AboutDialog() { + super(new BorderLayout()); + tabs = new JTabbedPane(); + tabs.add(buildAboutTab()); + licensePane = buildLicenseTab(); + tabs.add(licensePane); + add(tabs); + tabs.add(buildRuntimePropertiesTab()); + add(new JLabel(new ImageIcon(getClass().getClassLoader().getResource("icons/crossfireLogoSmall.png"))), BorderLayout.NORTH); + } + + /** + * Show about dialog. + * @param parent Parent component to show dialog on + */ + public void showAboutDialog(final Component parent) { + tabs.setSelectedIndex(0); + licensePane.setSelectedIndex(0); + JOptionPane.showMessageDialog(parent, this, ACTION_FACTORY.getString("about.title"), JOptionPane.PLAIN_MESSAGE); + } + + /** + * Build the about tab. + * @return component for about tab + */ + private static JComponent buildAboutTab() { + String buildNumber = "unknown"; + String buildDeveloper = "unknown"; + String buildTstamp = "unknown"; + try { + final ResourceBundle bundle = ResourceBundle.getBundle("build"); + buildDeveloper = bundle.getString("build.developer"); + buildNumber = bundle.getString("build.number"); + buildTstamp = bundle.getString("build.tstamp"); + } catch (final Exception e) { + /* ignore */ + } + final JLabel aboutTab = new JLabel(ACTION_FACTORY.format("about", System.getProperty("java.version"), buildNumber, buildDeveloper, buildTstamp), SwingConstants.CENTER); + aboutTab.setName(ACTION_FACTORY.getString("aboutTab.title")); + return aboutTab; + } + + /** + * Build the license tab. + * @return component for license tab + */ + private JTabbedPane buildLicenseTab() { + final JTabbedPane licensePane = new JTabbedPane(); + for (int i = 1; ACTION_FACTORY.getString("license." + i + ".title") != null; i++) { + licensePane.add(buildLicenseSubTab(String.valueOf(i))); + } + licensePane.setName(ACTION_FACTORY.getString("license.title")); + return licensePane; + } + + /** + * Build a XY license tab. + * @param number number of license + * @return component for XY license tab + */ + private JComponent buildLicenseSubTab(final String number) { + String licenseText; + try { + final Reader in = new InputStreamReader(new BufferedInputStream(getClass().getClassLoader().getResource(ACTION_FACTORY.getString("license." + number + ".file")).openStream())); + try { + final StringBuilder sb = new StringBuilder(); + final char[] buf = new char[4096]; + for (int bytesRead; (bytesRead = in.read(buf)) != -1; sb.append(buf, 0, bytesRead)) { + ; + } + licenseText = sb.toString(); + } finally { + in.close(); + } + } catch (final NullPointerException e) { + licenseText = ACTION_FACTORY.getString("license.missing"); + } catch (final IOException e) { + licenseText = ACTION_FACTORY.getString("license.missing"); + } + final JTextArea license = new JTextArea(licenseText, 16, 80); + license.setLineWrap(true); + license.setWrapStyleWord(true); + license.setEditable(false); + license.setFont(new Font("Monospaced", Font.PLAIN, license.getFont().getSize())); + final JScrollPane scroller = new JScrollPane(license); + scroller.setFocusable(true); + scroller.setName(ACTION_FACTORY.getString("license." + number + ".title")); + return scroller; + } + + /** + * Build the runtime properties tab. + * @return component for runtime properties tab + */ + private static JComponent buildRuntimePropertiesTab() { + final StringBuilder propertiesText = new StringBuilder(); + final SortedSet<String> keys = new TreeSet<String>(); + final Properties props = System.getProperties(); + for (final Object key : props.keySet()) { + if (key instanceof String) { + keys.add((String) key); + } + } + for (final String key : keys) { + propertiesText + .append(key) + .append('=') + .append(props.getProperty(key)) + .append('\n'); + } + final JTextArea properties = new JTextArea(propertiesText.toString(), 16, 77); + properties.setEditable(false); + properties.setFont(new Font("Monospaced", Font.PLAIN, properties.getFont().getSize())); + final JScrollPane scroller = new JScrollPane(properties); + scroller.setName(ACTION_FACTORY.getString("aboutRuntimeProperties.title")); + scroller.setFocusable(true); + return scroller; + } + +} // class AboutDialog Property changes on: trunk/crossfire/src/cfeditor/gui/AboutDialog.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + LF Modified: trunk/crossfire/src/cfeditor/messages.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages.properties 2007-01-13 21:07:56 UTC (rev 1592) +++ trunk/crossfire/src/cfeditor/messages.properties 2007-01-13 21:13:01 UTC (rev 1593) @@ -436,7 +436,30 @@ about.text=About... about.mnemonic=A +about.title=About Gridarta for Crossfire +about=<html><h1 align="center">Gridarta for Crossfire</h1><p>Editor for Crossfire MMORPG maps and arches</p><table><tr><td valign="top" align="right" width="50%">Copyright \xA9 2001-2007</td><td width="50%">Michael Toennies<br>Andreas Vogl<br>Peter Plischewsky<br>Gecko<br>Christian Hujer<br>Daniel Viegas<br>Andreas Kirschbaum</td></tr><tr><td align="right">Java version:</td><td>{0}</td></tr><tr><td align="right">Version:</td><td>{1}</td></tr><tr><td align="right">by:</td><td>{2}</td></tr><tr><td align="right">at:</td><td>{3}</td></tr></table></html> +aboutTab.title=About +license.text=License... +license.mnemonic=L +license.title=License +license.missing=Cannot find License file. +license.1.title=Gridarta +license.1.file=COPYING +license.2.title=JAPI +license.2.file=LICENSE-japi.jar +license.3.title=SUN Icons +license.3.file=jlfgr-1_0.jar-LICENSE +license.4.title=BSH +license.4.file=bsh-LICENSE +license.5.title=JDOM +license.5.file=jdom.jar-LICENSE +license.6.title=Log4j +license.6.file=log4j.jar-LICENSE + +aboutRuntimeProperties.title=Runtime properties + + ############ # Map window Modified: trunk/crossfire/src/cfeditor/messages_de.properties =================================================================== --- trunk/crossfire/src/cfeditor/messages_de.properties 2007-01-13 21:07:56 UTC (rev 1592) +++ trunk/crossfire/src/cfeditor/messages_de.properties 2007-01-13 21:13:01 UTC (rev 1593) @@ -639,7 +639,18 @@ about.text=\xDCber... about.mnemonic=B +about.title=\xDCber Gridarta f\xFCr Crossfire +about=<html><h1 align="center">Gridarta f\xFCr Crossfire</h1><p>Editor f\xFCr Crossfire MMORPG Karten und Objekte</p><table><tr><td valign="top" align="right" width="50%">Copyright \xA9 2001-2007</td><td width="50%">Michael Toennies<br>Andreas Vogl<br>Peter Plischewsky<br>Gecko<br>Christian Hujer<br>Daniel Viegas<br>Andreas Kirschbaum</td></tr><tr><td align="right">Java version:</td><td>{0}</td></tr><tr><td align="right">Version:</td><td>{1}</td></tr><tr><td align="right">Entwickler:</td><td>{2}</td></tr><tr><td align="right">Erstellung:</td><td>{3}</td></tr></table></html> +aboutTab.title=\xDCber +license.text=Lizenz... +license.mnemonic=L +license.title=Lizenz +license.missing=Kann Lizenzdatei nicht finden. + +aboutRuntimeProperties.title=Laufzeitparameter + + ############ # Map window This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-02-04 22:03:21
|
Revision: 1824 http://svn.sourceforge.net/gridarta/?rev=1824&view=rev Author: akirschbaum Date: 2007-02-04 14:03:22 -0800 (Sun, 04 Feb 2007) Log Message: ----------- Make "Enter Exit" work for PLAYER_CHANGER tiles. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/CFArchTypeList.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-02-04 22:02:39 UTC (rev 1823) +++ trunk/crossfire/ChangeLog 2007-02-04 22:03:22 UTC (rev 1824) @@ -1,5 +1,7 @@ 2007-02-04 Andreas Kirschbaum + * Make "Enter Exit" work for PLAYER_CHANGER tiles. + * Mark map as changed if a game object's message, lore or animation was changed. Modified: trunk/crossfire/src/cfeditor/CFArchTypeList.java =================================================================== --- trunk/crossfire/src/cfeditor/CFArchTypeList.java 2007-02-04 22:02:39 UTC (rev 1823) +++ trunk/crossfire/src/cfeditor/CFArchTypeList.java 2007-02-04 22:03:22 UTC (rev 1824) @@ -45,6 +45,7 @@ static { EXIT_TYPES.add(41); // teleporter + EXIT_TYPES.add(57); // player changer EXIT_TYPES.add(58); // battleground EXIT_TYPES.add(66); // exit EXIT_TYPES.add(94); // pit This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-02-22 22:35:13
|
Revision: 1914 http://svn.sourceforge.net/gridarta/?rev=1914&view=rev Author: akirschbaum Date: 2007-02-22 14:07:56 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Fix #1656338 ("no face" error on customized archetype). Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/AutojoinList.java trunk/crossfire/src/cfeditor/CMainControl.java trunk/crossfire/src/cfeditor/gameobject/ArchetypeSet.java trunk/crossfire/src/cfeditor/gameobject/GameObject.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-02-18 20:09:51 UTC (rev 1913) +++ trunk/crossfire/ChangeLog 2007-02-22 22:07:56 UTC (rev 1914) @@ -1,3 +1,7 @@ +2007-02-22 Andreas Kirschbaum + + * Fix #1656338 ("no face" error on customized archetype). + 2007-02-04 Andreas Kirschbaum * Make "Enter Exit" work for PLAYER_CHANGER tiles. Modified: trunk/crossfire/src/cfeditor/AutojoinList.java =================================================================== --- trunk/crossfire/src/cfeditor/AutojoinList.java 2007-02-18 20:09:51 UTC (rev 1913) +++ trunk/crossfire/src/cfeditor/AutojoinList.java 2007-02-22 22:07:56 UTC (rev 1914) @@ -346,9 +346,7 @@ gameObject.setArchetypeName(archetypeName); // set face of new default arch - if (gameObject.getFaceName() != null && gameObject.getFaceName().length() > 0) { - gameObject.setFaceName(null); // take default face - } + gameObject.setFaceName(null); // take default face } } Modified: trunk/crossfire/src/cfeditor/CMainControl.java =================================================================== --- trunk/crossfire/src/cfeditor/CMainControl.java 2007-02-18 20:09:51 UTC (rev 1913) +++ trunk/crossfire/src/cfeditor/CMainControl.java 2007-02-22 22:07:56 UTC (rev 1914) @@ -971,16 +971,6 @@ undefinedArchetypeNames.add(gameObject.getArchetypeName()); } - // 2nd: attach the right face... - final String faceName = gameObject.getFaceName(); - if (faceName == null) { - // no face set => copy from archetype - gameObject.setFaceName(archetype.getFaceName()); - } else if (faceName.length() == 0) { - // empty face set => no face - gameObject.setFaceName(null); - } - // Ok, now is attached to default arch and loaded png // NOW we post parse the object... // (We calculate only edit types that are active, to save time) Modified: trunk/crossfire/src/cfeditor/gameobject/ArchetypeSet.java =================================================================== --- trunk/crossfire/src/cfeditor/gameobject/ArchetypeSet.java 2007-02-18 20:09:51 UTC (rev 1913) +++ trunk/crossfire/src/cfeditor/gameobject/ArchetypeSet.java 2007-02-22 22:07:56 UTC (rev 1914) @@ -72,27 +72,27 @@ /** {@inheritDoc} */ @NotNull public ImageIcon getFace(@NotNull final Archetype archetype) { - return getFace(archetype, archetype.isUndefinedArchetype()); + return getFace(archetype.getFaceName(), archetype.isUndefinedArchetype()); } /** {@inheritDoc} */ @NotNull public ImageIcon getFace(@NotNull final GameObject gameObject) { - return getFace(gameObject, gameObject.hasUndefinedArchetype()); + final String faceName = gameObject.getFaceName(); + return getFace(faceName != null ? faceName : gameObject.getArchetype().getFaceName(), gameObject.hasUndefinedArchetype()); } /** * Returns the face of the Archetype as icon. - * @param archetype Archetype to get face for + * @param faceName the face name to display * @param hasUndefinedArchetype if set, return the face for an game object * referencing an undefined archetype * @return the face of the Archetype as icon */ - @NotNull private ImageIcon getFace(@NotNull final Archetype archetype, final boolean hasUndefinedArchetype) { + @NotNull private ImageIcon getFace(@NotNull final String faceName, final boolean hasUndefinedArchetype) { if (hasUndefinedArchetype) { return CMainControl.getNoarchTileIcon(); } - final String faceName = archetype.getFaceName(); if (faceName == null) { return CMainControl.getNofaceTileIcon(); } Modified: trunk/crossfire/src/cfeditor/gameobject/GameObject.java =================================================================== --- trunk/crossfire/src/cfeditor/gameobject/GameObject.java 2007-02-18 20:09:51 UTC (rev 1913) +++ trunk/crossfire/src/cfeditor/gameobject/GameObject.java 2007-02-22 22:07:56 UTC (rev 1914) @@ -465,7 +465,6 @@ final GameObject arch = new GameObject(); arch.setArchetypeName(archetypeName); arch.setArchetype(getArchetype()); - arch.setFaceName(getFaceName()); arch.setMultiX(multiX); arch.setMultiY(multiY); return arch; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-02-22 22:35:13
|
Revision: 1915 http://svn.sourceforge.net/gridarta/?rev=1915&view=rev Author: akirschbaum Date: 2007-02-22 14:18:00 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Allow to change the face for game objects having an archetype without a default face. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/GameObjectAttributesDialog.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-02-22 22:07:56 UTC (rev 1914) +++ trunk/crossfire/ChangeLog 2007-02-22 22:18:00 UTC (rev 1915) @@ -1,5 +1,8 @@ 2007-02-22 Andreas Kirschbaum + * Allow to change the face for game objects having an archetype + without a default face. + * Fix #1656338 ("no face" error on customized archetype). 2007-02-04 Andreas Kirschbaum Modified: trunk/crossfire/src/cfeditor/gui/GameObjectAttributesDialog.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/GameObjectAttributesDialog.java 2007-02-22 22:07:56 UTC (rev 1914) +++ trunk/crossfire/src/cfeditor/gui/GameObjectAttributesDialog.java 2007-02-22 22:18:00 UTC (rev 1915) @@ -266,7 +266,8 @@ } } else if (attr.ref.getNameOld().equalsIgnoreCase("face")) { // special case #2: "face"-textfield - if (archetype.getFaceName() != null && archetype.getFaceName().length() > 0 && !inline.equals(archetype.getFaceName())) { + final String archFaceName = archetype.getFaceName(); + if (archFaceName == null || archFaceName.length() == 0 || !inline.equals(archFaceName)) { newFace = inline; } else { newFace = ""; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-02-23 19:48:18
|
Revision: 1921 http://svn.sourceforge.net/gridarta/?rev=1921&view=rev Author: akirschbaum Date: 2007-02-23 11:48:19 -0800 (Fri, 23 Feb 2007) Log Message: ----------- Fix #1666831 (Large faces with non-top-left heads broken). Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-02-23 08:11:38 UTC (rev 1920) +++ trunk/crossfire/ChangeLog 2007-02-23 19:48:19 UTC (rev 1921) @@ -1,3 +1,7 @@ +2007-02-23 Andreas Kirschbaum + + * Fix #1666831 (Large faces with non-top-left heads broken). + 2007-02-22 Andreas Kirschbaum * Allow to change the face for game objects having an archetype Modified: trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java 2007-02-23 08:11:38 UTC (rev 1920) +++ trunk/crossfire/src/cfeditor/gui/map/DefaultLevelRenderer.java 2007-02-23 19:48:19 UTC (rev 1921) @@ -464,10 +464,10 @@ } else { // this is an oversized image, so it must be shifted // XXX: it must also be clipped to not overwrite filter information - offset.x = -32 * node.getMultiX(); - offset.y = -32 * node.getMultiY(); + offset.x = 32 * (node.getMultiX() - node.getMinX()); + offset.y = 32 * (node.getMultiY() - node.getMinY()); } - img.paintIcon(this, grfx, point.x * 32 + offset.x, point.y * 32 + offset.y); + grfx.drawImage(img.getImage(), point.x * 32, point.y * 32, point.x * 32 + 32, point.y * 32 + 32, offset.x, offset.y, offset.x + 32, offset.y + 32, this); } } for (int i = 0; i < CFilterControl.MAX_HIGHLIGHT; i++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-02-23 20:02:17
|
Revision: 1922 http://svn.sourceforge.net/gridarta/?rev=1922&view=rev Author: akirschbaum Date: 2007-02-23 12:02:14 -0800 (Fri, 23 Feb 2007) Log Message: ----------- Update archetypes. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/resource/conf/archetypes trunk/crossfire/resource/conf/crossfire.0 trunk/crossfire/resource/conf/treasures Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-02-23 19:48:19 UTC (rev 1921) +++ trunk/crossfire/ChangeLog 2007-02-23 20:02:14 UTC (rev 1922) @@ -1,5 +1,7 @@ 2007-02-23 Andreas Kirschbaum + * Update archetypes. + * Fix #1666831 (Large faces with non-top-left heads broken). 2007-02-22 Andreas Kirschbaum Modified: trunk/crossfire/resource/conf/archetypes =================================================================== --- trunk/crossfire/resource/conf/archetypes 2007-02-23 19:48:19 UTC (rev 1921) +++ trunk/crossfire/resource/conf/archetypes 2007-02-23 20:02:14 UTC (rev 1922) @@ -3899,7 +3899,7 @@ end Object s_inn name snowed inn -face s_inn.111 +face s_inn.x11 type 66 no_pick 1 editable 2 @@ -3908,7 +3908,7 @@ More Object s_inn_2 name snowed inn -face s_inn.211 +face s_inn.x11 type 66 x 1 no_pick 1 @@ -3917,7 +3917,7 @@ Object treefort name treefort type 66 -face treefort.111 +face treefort.x11 no_pick 1 editable 2 client_type 25012 @@ -3927,7 +3927,7 @@ Object treefort_1 name treefort type 66 -face treefort.211 +face treefort.x11 no_pick 1 x 1 editor_folder construct/Treehouse @@ -3935,7 +3935,7 @@ Object treefort2 name treefort type 66 -face treefort2.111 +face treefort2.x11 no_pick 1 editable 2 client_type 25012 @@ -3945,7 +3945,7 @@ Object treefort2_1 name treefort type 66 -face treefort2.211 +face treefort2.x11 no_pick 1 y 1 editor_folder construct/Treehouse @@ -3972,7 +3972,7 @@ Object treefort3_2 name treefort type 66 -face treefort2.211 +face treefort2.x11 no_pick 1 y 1 editor_folder construct/Treehouse @@ -4454,7 +4454,7 @@ Object fort name fortress type 66 -face fort.111 +face fort.x11 no_pick 1 editable 2 client_type 25012 @@ -4464,7 +4464,7 @@ Object fort_2 name fortress type 66 -face fort.211 +face fort.x11 x 1 no_pick 1 editor_folder construct/fort @@ -4473,7 +4473,7 @@ Object fort_3 name fortress type 66 -face fort.311 +face fort.x11 y 1 no_pick 1 editor_folder construct/fort @@ -4482,7 +4482,7 @@ Object fort_4 name fortress type 66 -face fort.411 +face fort.x11 x 1 y 1 no_pick 1 @@ -4512,7 +4512,7 @@ Object darkhold name darkhold type 66 -face darkhold.111 +face darkhold.x11 no_pick 1 no_pass 1 editable 2 @@ -4523,7 +4523,7 @@ Object darkhold_2 name darkhold type 66 -face darkhold.211 +face darkhold.x11 x 1 no_pick 1 no_pass 1 @@ -4533,7 +4533,7 @@ Object darkhold_3 name darkhold type 66 -face darkhold.311 +face darkhold.x11 x 2 no_pick 1 no_pass 1 @@ -4543,7 +4543,7 @@ Object darkhold_4 name darkhold type 66 -face darkhold.411 +face darkhold.x11 y 1 no_pick 1 no_pass 1 @@ -4553,7 +4553,7 @@ Object darkhold_5 name darkhold type 66 -face darkhold.511 +face darkhold.x11 x 1 y 1 no_pick 1 @@ -4564,7 +4564,7 @@ Object darkhold_6 name darkhold type 66 -face darkhold.611 +face darkhold.x11 x 2 y 1 no_pick 1 @@ -4575,7 +4575,7 @@ Object darkhold_7 name darkhold type 66 -face darkhold.711 +face darkhold.x11 y 2 no_pick 1 no_pass 1 @@ -4585,7 +4585,7 @@ Object darkhold_8 name darkhold type 66 -face darkhold.811 +face darkhold.x11 x 1 y 2 no_pick 1 @@ -4596,7 +4596,7 @@ Object darkhold_9 name darkhold type 66 -face darkhold.911 +face darkhold.x11 x 2 y 2 no_pick 1 @@ -4607,7 +4607,7 @@ Object darkhold_10 name darkhold type 66 -face darkhold.A11 +face darkhold.x11 y 3 no_pick 1 no_pass 1 @@ -4617,7 +4617,7 @@ Object darkhold_11 name darkhold type 66 -face darkhold.B11 +face darkhold.x11 x 1 y 3 no_pick 1 @@ -4628,7 +4628,7 @@ Object darkhold_12 name darkhold type 66 -face darkhold.C11 +face darkhold.x11 x 2 y 3 no_pick 1 @@ -4639,7 +4639,7 @@ Object darkhold_13 name darkhold type 66 -face darkhold.D11 +face darkhold.x11 y 4 no_pick 1 no_pass 1 @@ -4649,7 +4649,7 @@ Object darkhold_14 name darkhold type 66 -face darkhold.E11 +face darkhold.x11 x 1 y 4 no_pick 1 @@ -4659,7 +4659,7 @@ Object darkhold_15 name darkhold type 66 -face darkhold.F11 +face darkhold.x11 x 2 y 4 no_pick 1 @@ -4677,7 +4677,7 @@ end Object stronghold type 66 -face stronghold.111 +face stronghold.x11 no_pick 1 no_pass 1 editable 2 @@ -4688,7 +4688,7 @@ Object stronghold_2 name stronghold type 66 -face stronghold.211 +face stronghold.x11 x 1 no_pick 1 no_pass 1 @@ -4698,7 +4698,7 @@ Object stronghold_3 name stronghold type 66 -face stronghold.311 +face stronghold.x11 x 2 no_pick 1 no_pass 1 @@ -4708,7 +4708,7 @@ Object stronghold_4 name stronghold type 66 -face stronghold.411 +face stronghold.x11 y 1 no_pick 1 no_pass 1 @@ -4718,7 +4718,7 @@ Object stronghold_5 name stronghold type 66 -face stronghold.511 +face stronghold.x11 x 1 y 1 no_pick 1 @@ -4729,7 +4729,7 @@ Object stronghold_6 name stronghold type 66 -face stronghold.611 +face stronghold.x11 x 2 y 1 no_pick 1 @@ -4740,7 +4740,7 @@ Object stronghold_7 name stronghold type 66 -face stronghold.711 +face stronghold.x11 y 2 no_pick 1 no_pass 1 @@ -4750,7 +4750,7 @@ Object stronghold_8 name stronghold type 66 -face stronghold.811 +face stronghold.x11 x 1 y 2 no_pick 1 @@ -4760,7 +4760,7 @@ Object stronghold_9 name stronghold type 66 -face stronghold.911 +face stronghold.x11 x 2 y 2 no_pick 1 @@ -5249,7 +5249,7 @@ name farmhouse type 66 blocksview 1 -face farmhouse.111 +face farmhouse.x11 no_pick 1 editable 2 client_type 25012 @@ -5260,7 +5260,7 @@ name farmhouse type 66 blocksview 1 -face farmhouse.211 +face farmhouse.x11 x 1 no_pick 1 editor_folder construct/house @@ -5885,7 +5885,7 @@ Object cathedral name cathedral type 66 -face cathedral.111 +face cathedral.x11 no_pick 1 no_pass 1 editable 2 @@ -5896,7 +5896,7 @@ Object cathedral_2 name cathedral type 66 -face cathedral.211 +face cathedral.x11 x 1 no_pick 1 no_pass 1 @@ -5906,7 +5906,7 @@ Object cathedral_3 name cathedral type 66 -face cathedral.311 +face cathedral.x11 x 2 no_pick 1 no_pass 1 @@ -5916,7 +5916,7 @@ Object cathedral_4 name cathedral type 66 -face cathedral.411 +face cathedral.x11 y 1 no_pick 1 no_pass 1 @@ -5926,7 +5926,7 @@ Object cathedral_5 name cathedral type 66 -face cathedral.511 +face cathedral.x11 x 1 y 1 no_pick 1 @@ -5937,7 +5937,7 @@ Object cathedral_6 name cathedral type 66 -face cathedral.611 +face cathedral.x11 x 2 y 1 no_pick 1 @@ -5948,7 +5948,7 @@ Object cathedral_7 name cathedral type 66 -face cathedral.711 +face cathedral.x11 y 2 no_pick 1 no_pass 1 @@ -5958,7 +5958,7 @@ Object cathedral_8 name cathedral type 66 -face cathedral.811 +face cathedral.x11 x 1 y 2 no_pick 1 @@ -5969,7 +5969,7 @@ Object cathedral_9 name cathedral type 66 -face cathedral.911 +face cathedral.x11 x 2 y 2 no_pick 1 @@ -5980,7 +5980,7 @@ Object cathedral_10 name cathedral type 66 -face cathedral.A11 +face cathedral.x11 y 3 no_pick 1 no_pass 1 @@ -5990,7 +5990,7 @@ Object cathedral_11 name cathedral type 66 -face cathedral.B11 +face cathedral.x11 x 1 y 3 no_pick 1 @@ -6001,7 +6001,7 @@ Object cathedral_12 name cathedral type 66 -face cathedral.C11 +face cathedral.x11 x 2 y 3 no_pick 1 @@ -6038,7 +6038,7 @@ Object shrine_east name ichidou type 66 -face shrine_east.111 +face shrine_east.x11 no_pick 1 editable 2 client_type 25012 @@ -6048,7 +6048,7 @@ Object shrine_east_2 name ichidou type 66 -face shrine_east.111 +face shrine_east.x11 no_pick 1 y 1 editor_folder construct/temple @@ -6057,7 +6057,7 @@ Object shrine_east_r name ichidou type 66 -face shrine_east_r.111 +face shrine_east_r.x11 no_pick 1 editable 2 client_type 25012 @@ -6067,7 +6067,7 @@ Object shrine_east_r_2 name ichidou type 66 -face shrine_east_r.111 +face shrine_east_r.x11 no_pick 1 y 1 editor_folder construct/temple @@ -6154,7 +6154,7 @@ Object city_tower name tower type 66 -face city-tower.111 +face city-tower.x11 no_pick 1 editable 2 client_type 25012 @@ -6164,7 +6164,7 @@ Object city_tower_2 name tower type 66 -face city-tower.211 +face city-tower.x11 no_pick 1 y 1 editor_folder construct/tower @@ -6172,7 +6172,7 @@ Object city_tower_east name tou type 66 -face city_tower_east.111 +face city_tower_east.x11 no_pick 1 editable 2 client_type 25012 @@ -6182,7 +6182,7 @@ Object city_tower_east_2 name tou type 66 -face city_tower_east.111 +face city_tower_east.x11 no_pick 1 y 1 editor_folder construct/tower @@ -6278,7 +6278,7 @@ editor_folder construct/tower end Object pagoda_tower_east -face pagoda_tower_east.111 +face pagoda_tower_east.x11 name tou type 66 no_pick 1 @@ -6289,7 +6289,7 @@ More Object pagoda_tower_2_east name tou -face pagoda_tower_east.111 +face pagoda_tower_east.x11 type 66 no_pick 1 x 1 @@ -6298,7 +6298,7 @@ More Object pagoda_tower_3_east name tou -face pagoda_tower_east.111 +face pagoda_tower_east.x11 type 66 no_pick 1 y 1 @@ -6307,7 +6307,7 @@ More Object pagoda_tower_4_east name tou -face pagoda_tower_east.111 +face pagoda_tower_east.x11 type 66 no_pick 1 x 1 @@ -6317,7 +6317,7 @@ More Object pagoda_tower_5_east name tou -face pagoda_tower_east.111 +face pagoda_tower_east.x11 type 66 no_pick 1 y 2 @@ -6326,7 +6326,7 @@ More Object pagoda_tower_6_east name tou -face pagoda_tower_east.111 +face pagoda_tower_east.x11 type 66 no_pick 1 x 1 @@ -6336,7 +6336,7 @@ Object ruined_tower name ruined tower type 66 -face ruined_tower.111 +face ruined_tower.x11 no_pick 1 editable 2 client_type 25012 @@ -6346,14 +6346,14 @@ Object ruined_tower_2 name ruined_tower type 66 -face ruined_tower.211 +face ruined_tower.x11 no_pick 1 y 1 editor_folder construct/tower end Object s_tower1 name spiral tower -face s_tower1.111 +face s_tower1.x11 type 66 no_pick 1 no_pass 1 @@ -6364,7 +6364,7 @@ More Object s_tower1_2 name spiral tower -face s_tower1.211 +face s_tower1.x11 type 66 no_pick 1 y 1 @@ -6372,7 +6372,7 @@ end Object s_tower2 name spiral tower -face s_tower2.111 +face s_tower2.x11 type 66 no_pick 1 no_pass 1 @@ -6383,7 +6383,7 @@ More Object s_tower2_2 name spiral tower -face s_tower2.211 +face s_tower2.x11 type 66 no_pick 1 y 1 @@ -6392,7 +6392,7 @@ Object tower_a name tower type 66 -face tower_a.111 +face tower_a.x11 no_pick 1 editable 2 client_type 25012 @@ -6402,7 +6402,7 @@ Object tower_b name tower type 66 -face tower_a.211 +face tower_a.x11 y 1 no_pick 1 editor_folder construct/tower @@ -6436,7 +6436,7 @@ Object wizard_tower name tower type 66 -face wizard_tower.111 +face wizard_tower.x11 animation wizard_tower speed -0.3000 no_pick 1 @@ -6448,7 +6448,7 @@ Object wizard_tower2 name tower type 66 -face wizard_tower.211 +face wizard_tower.x11 animation wizard_tower2 y 1 no_pick 1 @@ -6706,7 +6706,7 @@ editor_folder construct/town end Object building10_east -face building10_east.111 +face building10_east.x11 name tatemono type 66 no_pick 1 @@ -6718,7 +6718,7 @@ More Object building10_2_east name tatemono -face building10_east.111 +face building10_east.x11 type 66 no_pick 1 no_pass 1 @@ -6728,7 +6728,7 @@ More Object building10_3_east name tatemono -face building10_east.111 +face building10_east.x11 type 66 no_pick 1 y 1 @@ -6737,7 +6737,7 @@ More Object building10_4_east name tatemono -face building10_east.111 +face building10_east.x11 type 66 no_pick 1 x 1 @@ -6784,7 +6784,7 @@ editor_folder construct/town end Object building2_east -face building2_east.111 +face building2_east.x11 name tatemono type 66 no_pick 1 @@ -6796,7 +6796,7 @@ More Object building2_2_east name tatemono -face building2_east.111 +face building2_east.x11 type 66 no_pick 1 no_pass 1 @@ -6806,7 +6806,7 @@ More Object building2_3_east name tatemono -face building2_east.111 +face building2_east.x11 type 66 no_pick 1 y 1 @@ -6815,7 +6815,7 @@ More Object building2_4_east name tatemono -face building2_east.111 +face building2_east.x11 type 66 no_pick 1 x 1 @@ -6823,7 +6823,7 @@ editor_folder construct/town end Object building3_east -face building3_east.111 +face building3_east.x11 name tatemono type 66 no_pick 1 @@ -6835,7 +6835,7 @@ More Object building3_2_east name tatemono -face building3_east.111 +face building3_east.x11 type 66 no_pick 1 no_pass 1 @@ -6845,7 +6845,7 @@ More Object building3_3_east name tatemono -face building3_east.111 +face building3_east.x11 type 66 no_pick 1 y 1 @@ -6854,7 +6854,7 @@ More Object building3_4_east name tatemono -face building3_east.111 +face building3_east.x11 type 66 no_pick 1 x 1 @@ -6862,7 +6862,7 @@ editor_folder construct/town end Object building4_east -face building4_east.111 +face building4_east.x11 name tatemono type 66 no_pick 1 @@ -6874,7 +6874,7 @@ More Object building4_2_east name tatemono -face building4_east.111 +face building4_east.x11 type 66 no_pick 1 no_pass 1 @@ -6884,7 +6884,7 @@ More Object building4_3_east name tatemono -face building4_east.111 +face building4_east.x11 type 66 no_pick 1 y 1 @@ -6893,7 +6893,7 @@ More Object building4_4_east name tatemono -face building4_east.111 +face building4_east.x11 type 66 no_pick 1 x 1 @@ -6901,7 +6901,7 @@ editor_folder construct/town end Object building5_east -face building5_east.111 +face building5_east.x11 name tatemono type 66 no_pick 1 @@ -6913,7 +6913,7 @@ More Object building5_2_east name tatemono -face building5_east.111 +face building5_east.x11 type 66 no_pick 1 no_pass 1 @@ -6923,7 +6923,7 @@ More Object building5_3_east name tatemono -face building5_east.111 +face building5_east.x11 type 66 no_pick 1 y 1 @@ -6932,7 +6932,7 @@ More Object building5_4_east name tatemono -face building5_east.111 +face building5_east.x11 type 66 no_pick 1 x 1 @@ -6940,7 +6940,7 @@ editor_folder construct/town end Object building6_east -face building6_east.111 +face building6_east.x11 name tatemono type 66 no_pick 1 @@ -6952,7 +6952,7 @@ More Object building6_2_east name tatemono -face building6_east.111 +face building6_east.x11 type 66 no_pick 1 no_pass 1 @@ -6962,7 +6962,7 @@ More Object building6_3_east name tatemono -face building6_east.111 +face building6_east.x11 type 66 no_pick 1 y 1 @@ -6971,7 +6971,7 @@ More Object building6_4_east name tatemono -face building6_east.111 +face building6_east.x11 type 66 no_pick 1 x 1 @@ -6979,7 +6979,7 @@ editor_folder construct/town end Object building7_east -face building7_east.111 +face building7_east.x11 name tatemono type 66 no_pick 1 @@ -6991,7 +6991,7 @@ More Object building7_2_east name tatemono -face building7_east.111 +face building7_east.x11 type 66 no_pick 1 no_pass 1 @@ -7001,7 +7001,7 @@ More Object building7_3_east name tatemono -face building7_east.111 +face building7_east.x11 type 66 no_pick 1 y 1 @@ -7010,7 +7010,7 @@ More Object building7_4_east name tatemono -face building7_east.111 +face building7_east.x11 type 66 no_pick 1 x 1 @@ -7018,7 +7018,7 @@ editor_folder construct/town end Object building8_east -face building8_east.111 +face building8_east.x11 name tatemono type 66 no_pick 1 @@ -7030,7 +7030,7 @@ More Object building8_2_east name tatemono -face building8_east.111 +face building8_east.x11 type 66 no_pick 1 no_pass 1 @@ -7040,7 +7040,7 @@ More Object building8_3_east name tatemono -face building8_east.111 +face building8_east.x11 type 66 no_pick 1 y 1 @@ -7049,7 +7049,7 @@ More Object building8_4_east name tatemono -face building8_east.111 +face building8_east.x11 type 66 no_pick 1 x 1 @@ -7057,7 +7057,7 @@ editor_folder construct/town end Object building9_east -face building9_east.111 +face building9_east.x11 name tatemono type 66 no_pick 1 @@ -7069,7 +7069,7 @@ More Object building9_2_east name tatemono -face building9_east.111 +face building9_east.x11 type 66 no_pick 1 no_pass 1 @@ -7079,7 +7079,7 @@ More Object building9_3_east name tatemono -face building9_east.111 +face building9_east.x11 type 66 no_pick 1 y 1 @@ -7088,7 +7088,7 @@ More Object building9_4_east name tatemono -face building9_east.111 +face building9_east.x11 type 66 no_pick 1 x 1 @@ -7511,7 +7511,7 @@ end Object hovels2 name hovels -face hovels2.111 +face hovels2.x11 type 66 no_pick 1 editable 2 @@ -7521,7 +7521,7 @@ More Object hovels2_2 name hovels -face hovels2.211 +face hovels2.x11 type 66 no_pick 1 x 1 @@ -7530,7 +7530,7 @@ More Object hovels2_3 name hovels -face hovels2.311 +face hovels2.x11 type 66 no_pick 1 y 1 @@ -7539,7 +7539,7 @@ More Object hovels2_4 name hovels -face hovels2.411 +face hovels2.x11 type 66 no_pick 1 x 1 @@ -7548,7 +7548,7 @@ end Object l_shop1 name shop -face l_shop1.111 +face l_shop1.x11 type 66 no_pick 1 no_pass 1 @@ -7559,7 +7559,7 @@ More Object l_shop1_2 name shop -face l_shop1.211 +face l_shop1.x11 type 66 no_pick 1 no_pass 1 @@ -7569,7 +7569,7 @@ More Object l_shop1_3 name shop -face l_shop1.311 +face l_shop1.x11 type 66 no_pick 1 y 1 @@ -7578,7 +7578,7 @@ More Object l_shop1_4 name shop -face l_shop1.411 +face l_shop1.x11 type 66 no_pick 1 x 1 @@ -7643,7 +7643,7 @@ editor_folder construct/town end Object prison -face prison.111 +face prison.x11 type 66 no_pick 1 no_pass 1 @@ -7654,7 +7654,7 @@ More Object prison_2 name prison -face prison.211 +face prison.x11 type 66 no_pick 1 no_pass 1 @@ -7664,7 +7664,7 @@ More Object prison_3 name prison -face prison.311 +face prison.x11 type 66 no_pick 1 y 1 @@ -7673,7 +7673,7 @@ More Object prison_4 name prison -face prison.411 +face prison.x11 type 66 no_pick 1 x 1 @@ -7682,7 +7682,7 @@ end Object prison_fant name prison -face prison_fant.111 +face prison_fant.x11 type 66 no_pick 1 no_pass 1 @@ -7693,7 +7693,7 @@ More Object prison_2_fant name prison -face prison_fant.111 +face prison_fant.x11 type 66 no_pick 1 no_pass 1 @@ -7703,7 +7703,7 @@ More Object prison_3_fant name prison -face prison_fant.111 +face prison_fant.x11 type 66 no_pick 1 y 1 @@ -7712,7 +7712,7 @@ More Object prison_4_fant name prison -face prison_fant.111 +face prison_fant.x11 type 66 no_pick 1 x 1 @@ -7739,7 +7739,7 @@ end Object rl_house1 name appartments -face rl_house1.111 +face rl_house1.x11 type 66 no_pick 1 editable 2 @@ -7749,7 +7749,7 @@ More Object rl_house1_2 name appartments -face rl_house1.211 +face rl_house1.x11 type 66 no_pick 1 x 1 @@ -7758,7 +7758,7 @@ More Object rl_house1_3 name appartments -face rl_house1.311 +face rl_house1.x11 type 66 no_pick 1 y 1 @@ -7767,7 +7767,7 @@ More Object rl_house1_4 name appartments -face rl_house1.411 +face rl_house1.x11 type 66 no_pick 1 x 1 @@ -7776,7 +7776,7 @@ end Object rl_house2 name appartments -face rl_house2.111 +face rl_house2.x11 type 66 no_pick 1 editable 2 @@ -7786,7 +7786,7 @@ More Object rl_house2_2 name appartments -face rl_house2.211 +face rl_house2.x11 type 66 no_pick 1 x 1 @@ -7795,7 +7795,7 @@ More Object rl_house2_3 name appartments -face rl_house2.311 +face rl_house2.x11 type 66 no_pick 1 y 1 @@ -7804,7 +7804,7 @@ More Object rl_house2_4 name appartments -face rl_house2.411 +face rl_house2.x11 type 66 no_pick 1 x 1 @@ -7914,7 +7914,7 @@ end Object slum1 name slum -face slum1.111 +face slum1.x11 type 66 no_pick 1 no_pass 1 @@ -7925,7 +7925,7 @@ More Object slum1_2 name slum -face slum1.211 +face slum1.x11 type 66 no_pick 1 y 1 @@ -7933,7 +7933,7 @@ end Object slum2 name slum -face slum2.111 +face slum2.x11 type 66 no_pick 1 no_pass 1 @@ -7944,7 +7944,7 @@ More Object slum2_2 name slum -face slum2.211 +face slum2.x11 type 66 no_pick 1 y 1 @@ -7952,7 +7952,7 @@ end Object slum3 name slum -face slum3.111 +face slum3.x11 type 66 no_pick 1 no_pass 1 @@ -7963,7 +7963,7 @@ More Object slum3_2 name slum -face slum3.211 +face slum3.x11 type 66 no_pick 1 y 1 @@ -7971,7 +7971,7 @@ end Object t_house1 name town house -face t_house1.111 +face t_house1.x11 type 66 no_pick 1 no_pass 1 @@ -7982,7 +7982,7 @@ More Object t_house1_2 name town house -face t_house1.211 +face t_house1.x11 type 66 no_pick 1 no_pass 1 @@ -7992,7 +7992,7 @@ More Object t_house1_3 name town house -face t_house1.311 +face t_house1.x11 type 66 no_pick 1 y 1 @@ -8001,7 +8001,7 @@ More Object t_house1_4 name town house -face t_house1.411 +face t_house1.x11 type 66 no_pick 1 x 1 @@ -9586,7 +9586,7 @@ end Object pentagram_111 name pentagram -face pentagram.111 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9598,7 +9598,7 @@ More Object pentagram_112 name pentagram -face pentagram.112 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9611,7 +9611,7 @@ More Object pentagram_113 name pentagram -face pentagram.113 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9624,7 +9624,7 @@ More Object pentagram_121 name pentagram -face pentagram.121 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9637,7 +9637,7 @@ More Object pentagram_122 name pentagram -face pentagram.122 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9651,7 +9651,7 @@ More Object pentagram_123 name pentagram -face pentagram.123 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9665,7 +9665,7 @@ More Object pentagram_131 name pentagram -face pentagram.131 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -9678,7 +9678,7 @@ More Object pentagram_132 name pentagram -face pentagram.132 +face pentagram.x11 x 1 speed 0 type 41 @@ -9692,7 +9692,7 @@ More Object pentagram_133 name pentagram -face pentagram.133 +face pentagram.x11 speed 0 type 41 activate_on_push 1 @@ -10340,7 +10340,7 @@ Object volcano_high name high volcano type 66 -face volcano_hi.111 +face volcano_hi.x11 no_pick 1 slow_move 20 blocksview 1 @@ -10351,7 +10351,7 @@ More Object volcano_high_2 name high volcano -face volcano_hi.211 +face volcano_hi.x11 no_pick 1 x 1 slow_move 20 @@ -10362,7 +10362,7 @@ More Object volcano_high_3 name high volcano -face volcano_hi.311 +face volcano_hi.x11 no_pick 1 y 1 slow_move 20 @@ -10373,7 +10373,7 @@ More Object volcano_high_4 name high volcano -face volcano_hi.411 +face volcano_hi.x11 no_pick 1 x 1 y 1 @@ -10385,7 +10385,7 @@ Object volcano_low name volcano type 66 -face volcano_lo.111 +face volcano_lo.x11 no_pick 1 slow_move 15 blocksview 1 @@ -10396,7 +10396,7 @@ More Object volcano_low_2 name volcano -face volcano_lo.211 +face volcano_lo.x11 type 66 no_pick 1 x 1 @@ -15278,7 +15278,7 @@ end Object mountain_2 name high mountain -face mountain_2.111 +face mountain_2.x11 no_pick 1 slow_move 20 is_hilly 1 @@ -15290,7 +15290,7 @@ More Object mountain_2_2 name high mountain -face mountain_2.211 +face mountain_2.x11 no_pick 1 x 1 slow_move 20 @@ -15302,7 +15302,7 @@ More Object mountain_2_3 name high mountain -face mountain_2.311 +face mountain_2.x11 no_pick 1 y 1 slow_move 20 @@ -15314,7 +15314,7 @@ More Object mountain_2_4 name high mountain -face mountain_2.411 +face mountain_2.x11 no_pick 1 x 1 y 1 @@ -15795,6 +15795,24 @@ smoothlevel 32 editor_folder ground/Winter end +Object snowroad +name road +face snowroad.111 +no_pick 1 +is_floor 1 +editable 8 +smoothlevel 3 +editor_folder ground/Winter +end +Object snowroad2 +name road +face snowroad2.111 +no_pick 1 +is_floor 1 +editable 8 +smoothlevel 3 +editor_folder ground/Winter +end Object spalm name snow covered palm face spalm.111 @@ -16763,7 +16781,6 @@ no_pick 1 is_water 1 editable 8 -is_floor 1 smoothlevel 20 editor_folder ground end @@ -16775,7 +16792,6 @@ no_pick 1 is_water 1 editable 8 -is_floor 1 smoothlevel 20 editor_folder ground end @@ -16787,7 +16803,6 @@ no_pick 1 is_water 1 editable 8 -is_floor 1 smoothlevel 20 editor_folder ground end @@ -16799,10 +16814,59 @@ no_pass 1 is_water 1 editable 8 -is_floor 1 smoothlevel 20 editor_folder ground end +Object sea_nes +name sea +face sea_7.111 +no_pass 1 +no_pick 1 +is_water 1 +editable 8 +smoothlevel 255 +editor_folder ground +end +Object sea_new +name sea +face sea_B.111 +no_pass 1 +no_pick 1 +is_water 1 +editable 8 +smoothlevel 255 +editor_folder ground +end +Object sea_nse +name sea +face sea_D.111 +no_pass 1 +no_pick 1 +is_water 1 +editable 8 +smoothlevel 255 +editor_folder ground +end +Object sea_sew +name sea +face sea_E.111 +no_pass 1 +no_pick 1 +is_water 1 +editable 8 +smoothlevel 255 +editor_folder ground +end +Object sea_nsew +name sea +face sea_F.111 +no_pass 1 +no_pick 1 +is_water 1 +editable 8 +smoothlevel 255 +editor_folder ground +end Object shallow_sea face shallow_sea.111 animation shallow_sea @@ -16917,7 +16981,7 @@ Object active_volcano name volcano other_arch spell_create_lava -face volcano_lo.111 +face volcano_lo.x11 type 62 activate_on_push 1 activate_on_release 1 @@ -16934,7 +16998,7 @@ Object active_volcano_2 name volcano other_arch spell_create_lava -face volcano_lo.211 +face volcano_lo.x11 type 62 activate_on_push 1 activate_on_release 1 @@ -17900,6 +17964,20 @@ body_arm -2 editor_folder indoor end +Object wallclock +name clock +type 9 +nrof 1 +face wallclock.111 +speed -0.05 +weight 80000 +value 100 +editable 128 +material 20 +name_pl clocks +client_type 8001 +editor_folder indoor/wall +end Object dust_effect name cloud of dust type 88 @@ -20073,6 +20151,31 @@ editable 0 editor_folder misc/Container end +Object carton_box_1 +name box +other_arch close_carton_box_1 +face carton_box_1.111 +type 122 +material 1 +value 70 +container 50000 +weight 1000 +editable 128 +identified 1 +name_pl boxes +client_type 51 +editor_folder misc/Container +end +Object close_carton_box_1 +name close the box +face carton_box_1_open.111 +type 121 +no_pick 1 +no_drop 1 +identified 1 +editable 0 +editor_folder misc/Container +end Object cauldron other_arch cauldron_open face cauldron.111 @@ -20458,6 +20561,31 @@ identified 1 editor_folder misc/Container end +Object package +name package +other_arch close_package +face package.111 +type 122 +material 1 +value 70 +container 50000 +weight 20 +editable 128 +identified 1 +name_pl packages +client_type 51 +editor_folder misc/Container +end +Object close_package +name close the package +face package.111 +type 121 +no_pick 1 +no_drop 1 +identified 1 +editable 0 +editor_folder misc/Container +end Object pouch name pouch other_arch close_pouch @@ -21289,7 +21417,7 @@ end Object chandelier_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21298,7 +21426,7 @@ More Object chandelier_2_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 no_pick 1 editable 128 @@ -21308,7 +21436,7 @@ More Object chandelier_3_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21318,7 +21446,7 @@ More Object chandelier_4_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21328,7 +21456,7 @@ More Object chandelier_5_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21338,7 +21466,7 @@ More Object chandelier_6_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21349,7 +21477,7 @@ More Object chandelier_7_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21360,7 +21488,7 @@ More Object chandelier_8_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21371,7 +21499,7 @@ More Object chandelier_9_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21381,7 +21509,7 @@ More Object chandelier_10_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21392,7 +21520,7 @@ More Object chandelier_11_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21403,7 +21531,7 @@ More Object chandelier_12_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21414,7 +21542,7 @@ More Object chandelier_13_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21424,7 +21552,7 @@ More Object chandelier_14_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21435,7 +21563,7 @@ More Object chandelier_15_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21446,7 +21574,7 @@ More Object chandelier_16_1 name grand chandelier -face chandelier_1.111 +face chandelier_1.x11 glow_radius 5 no_pick 1 editable 128 @@ -21580,7 +21708,7 @@ food 1 type 31 exp 30 -face grand_piano_black.111 +face grand_piano_black.x11 no_pick 1 walk_on 1 editable 48 @@ -21594,7 +21722,7 @@ type 31 x 1 exp 30 -face grand_piano_black.111 +face grand_piano_black.x11 no_pick 1 walk_on 1 editable 48 @@ -21608,7 +21736,7 @@ type 31 y 1 exp 30 -face grand_piano_black.111 +face grand_piano_black.x11 no_pick 1 walk_on 1 editable 48 @@ -21623,7 +21751,7 @@ x 1 y 1 exp 30 -face grand_piano_black.111 +face grand_piano_black.x11 no_pick 1 walk_on 1 editable 48 @@ -21636,7 +21764,7 @@ food 1 type 31 exp 30 -face grand_piano_white.111 +face grand_piano_white.x11 no_pick 1 walk_on 1 editable 48 @@ -21650,7 +21778,7 @@ type 31 x 1 exp 30 -face grand_piano_white.111 +face grand_piano_white.x11 no_pick 1 walk_on 1 editable 48 @@ -21664,7 +21792,7 @@ type 31 y 1 exp 30 -face grand_piano_white.111 +face grand_piano_white.x11 no_pick 1 walk_on 1 editable 48 @@ -21679,7 +21807,7 @@ x 1 y 1 exp 30 -face grand_piano_white.111 +face grand_piano_white.x11 no_pick 1 walk_on 1 editable 48 @@ -22609,7 +22737,7 @@ Object angel_knight name Angel Knight race angel -face angelknight.111 +face angelknight.x11 monster 1 level 8 hp 100 @@ -22662,7 +22790,7 @@ More Object angel_knight_2 name Angel Knight -face angelknight.211 +face angelknight.x11 monster 1 alive 1 no_pick 1 @@ -22746,7 +22874,7 @@ randomitems archangel name Arch Angel race angel -face highangel.111 +face highangel.x11 animation ArchAngel monster 1 sleep 1 @@ -22816,7 +22944,7 @@ More Object ArchAngel_2 name Arch Angel -face highangel.211 +face highangel.x11 animation ArchAngel_2 monster 1 alive 1 @@ -22828,7 +22956,7 @@ More Object ArchAngel_3 name Arch Angel -face highangel.311 +face highangel.x11 animation ArchAngel_3 monster 1 alive 1 @@ -22840,7 +22968,7 @@ More Object ArchAngel_4 name Arch Angel -face highangel.411 +face highangel.x11 animation ArchAngel_4 monster 1 alive 1 @@ -22853,7 +22981,7 @@ More Object ArchAngel_5 name Arch Angel -face highangel.511 +face highangel.x11 animation ArchAngel_5 monster 1 alive 1 @@ -22866,7 +22994,7 @@ More Object ArchAngel_6 name Arch Angel -face highangel.611 +face highangel.x11 animation ArchAngel_6 monster 1 alive 1 @@ -23055,7 +23183,7 @@ Object destroying_angel name Retributioner race angel -face retributioner.111 +face retributioner.x11 randomitems angel monster 1 level 27 @@ -23111,7 +23239,7 @@ More Object destroying_angel_2 name Retributioner -face retributioner.211 +face retributioner.x11 monster 1 alive 1 no_pick 1 @@ -23122,7 +23250,7 @@ More Object destroying_angel_3 name Retributioner -face retributioner.311 +face retributioner.x11 monster 1 alive 1 no_pick 1 @@ -23133,7 +23261,7 @@ More Object destroying_angel_4 name Retributioner -face retributioner.411 +face retributioner.x11 monster 1 alive 1 no_pick 1 @@ -23145,7 +23273,7 @@ More Object destroying_angel_5 name Retributioner -face retributioner.511 +face retributioner.x11 monster 1 alive 1 no_pick 1 @@ -23157,7 +23285,7 @@ More Object destroying_angel_6 name Retributioner -face retributioner.611 +face retributioner.x11 monster 1 alive 1 no_pick 1 @@ -23684,7 +23812,7 @@ end Object cobra name giant cobra -face cobra.112 +face cobra.x12 race reptile animation cobra speed -0.1 @@ -23709,7 +23837,7 @@ More Object cobra_2 name giant cobra -face cobra.212 +face cobra.x12 animation cobra_2 alive 1 no_pick 1 @@ -24630,7 +24758,7 @@ name Balrog randomitems Balrog race demon -face jessyb.111 +face jessyb.x11 animation Balrog attacktype 1029 resist_magic 80 @@ -24697,7 +24825,7 @@ More Object Balrog_2 name Balrog -face jessyb.211 +face jessyb.x11 animation Balrog_2 monster 1 alive 1 @@ -24709,7 +24837,7 @@ More Object Balrog_3 name Balrog -face jessyb.311 +face jessyb.x11 animation Balrog_3 monster 1 alive 1 @@ -24721,7 +24849,7 @@ More Object Balrog_4 name Balrog -face jessyb.411 +face jessyb.x11 animation Balrog_4 monster 1 alive 1 @@ -24733,7 +24861,7 @@ More Object Balrog_5 name Balrog -face jessyb.511 +face jessyb.x11 animation Balrog_5 monster 1 alive 1 @@ -24745,7 +24873,7 @@ More Object Balrog_6 name Balrog -face jessyb.611 +face jessyb.x11 animation Balrog_6 monster 1 alive 1 @@ -24758,7 +24886,7 @@ More Object Balrog_7 name Balrog -face jessyb.711 +face jessyb.x11 animation Balrog_7 monster 1 alive 1 @@ -24771,7 +24899,7 @@ More Object Balrog_8 name Balrog -face jessyb.811 +face jessyb.x11 animation Balrog_8 monster 1 alive 1 @@ -24784,7 +24912,7 @@ More Object Balrog_9 name Balrog -face jessyb.911 +face jessyb.x11 animation Balrog_9 monster 1 alive 1 @@ -24796,7 +24924,7 @@ More Object Balrog_10 name Balrog -face jessyb.A11 +face jessyb.x11 animation Balrog_10 monster 1 alive 1 @@ -24809,7 +24937,7 @@ More Object Balrog_11 name Balrog -face jessyb.B11 +face jessyb.x11 animation Balrog_11 monster 1 alive 1 @@ -24822,7 +24950,7 @@ More Object Balrog_12 name Balrog -face jessyb.C11 +face jessyb.x11 animation Balrog_12 monster 1 alive 1 @@ -24835,7 +24963,7 @@ More Object Balrog_13 name Balrog -face jessyb.D11 +face jessyb.x11 animation Balrog_13 monster 1 alive 1 @@ -24847,7 +24975,7 @@ More Object Balrog_14 name Balrog -face jessyb.E11 +face jessyb.x11 animation Balrog_14 monster 1 alive 1 @@ -24860,7 +24988,7 @@ More Object Balrog_15 name Balrog -face jessyb.F11 +face jessyb.x11 animation Balrog_15 monster 1 alive 1 @@ -24873,7 +25001,7 @@ More Object Balrog_16 name Balrog -face jessyb.G11 +face jessyb.x11 animation Balrog_16 monster 1 alive 1 @@ -24887,7 +25015,7 @@ name big demon randomitems imp race demon -face big_demon.171 +face big_demon.x71 animation big_demon resist_magic 50 resist_godpower 50 @@ -24932,7 +25060,7 @@ More Object big_demon_2 name big demon -face big_demon.271 +face big_demon.x71 animation big_demon_2 monster 1 alive 1 @@ -24943,7 +25071,7 @@ More Object big_demon_3 name big demon -face big_demon.371 +face big_demon.x71 animation big_demon_3 monster 1 alive 1 @@ -24954,7 +25082,7 @@ More Object big_demon_4 name big demon -face big_demon.471 +face big_demon.x71 animation big_demon_4 monster 1 alive 1 @@ -24965,7 +25093,7 @@ More Object big_demon_5 name big demon -face big_demon.571 +face big_demon.x71 animation big_demon_5 monster 1 alive 1 @@ -24977,7 +25105,7 @@ More Object big_demon_6 name big demon -face big_demon.671 +face big_demon.x71 animation big_demon_6 monster 1 alive 1 @@ -24989,7 +25117,7 @@ More Object big_demon_7 name big demon -face big_demon.771 +face big_demon.x71 animation big_demon_7 monster 1 alive 1 @@ -25000,7 +25128,7 @@ More Object big_demon_8 name big demon -face big_demon.871 +face big_demon.x71 animation big_demon_8 monster 1 alive 1 @@ -25012,7 +25140,7 @@ More Object big_demon_9 name big demon -face big_demon.971 +face big_demon.x71 animation big_demon_9 monster 1 alive 1 @@ -25024,7 +25152,7 @@ More Object big_demon_A name big demon -face big_demon.A71 +face big_demon.x71 animation big_demon_A monster 1 alive 1 @@ -25035,7 +25163,7 @@ More Object big_demon_B name big demon -face big_demon.B71 +face big_demon.x71 animation big_demon_B monster 1 alive 1 @@ -25047,7 +25175,7 @@ More Object big_demon_C name big demon -face big_demon.C71 +face big_demon.x71 animation big_demon_C monster 1 alive 1 @@ -25060,7 +25188,7 @@ name Demon Lord randomitems demonlord race demon -face demon_lord.E11 +face demon_lord.x11 animation demon_lord Con 8 Pow 35 @@ -25098,7 +25226,7 @@ More Object demon_lord_1 name Demon Lord -face demon_lord.111 +face demon_lord.x11 animation demon_lord_1 x -1 y -3 @@ -25108,7 +25236,7 @@ More Object demon_lord_2 name Demon Lord -face demon_lord.211 +face demon_lord.x11 animation demon_lord_2 y -3 alive 1 @@ -25117,7 +25245,7 @@ More Object demon_lord_3 name Demon Lord -face demon_lord.311 +face demon_lord.x11 animation demon_lord_3 x 1 y -3 @@ -25127,7 +25255,7 @@ More Object demon_lord_4 name Demon Lord -face demon_lord.411 +face demon_lord.x11 animation demon_lord_4 x 2 y -3 @@ -25137,7 +25265,7 @@ More Object demon_lord_5 name Demon Lord -face demon_lord.511 +face demon_lord.x11 animation demon_lord_5 x -1 y -2 @@ -25147,7 +25275,7 @@ More Object demon_lord_6 name Demon Lord -face demon_lord.611 +face demon_lord.x11 animation demon_lord_6 y -2 alive 1 @@ -25156,7 +25284,7 @@ More Object demon_lord_7 name Demon Lord -face demon_lord.711 +face demon_lord.x11 animation demon_lord_7 x 1 y -2 @@ -25166,7 +25294,7 @@ More Object demon_lord_8 name Demon Lord -face demon_lord.811 +face demon_lord.x11 animation demon_lord_8 x 2 y -2 @@ -25176,7 +25304,7 @@ More Object demon_lord_9 name Demon Lord -face demon_lord.911 +face demon_lord.x11 animation demon_lord_9 x -1 y -1 @@ -25186,7 +25314,7 @@ More Object demon_lord_10 name Demon Lord -face demon_lord.A11 +face demon_lord.x11 animation demon_lord_10 y -1 alive 1 @@ -25195,7 +25323,7 @@ More Object demon_lord_11 name Demon Lord -face demon_lord.B11 +face demon_lord.x11 animation demon_lord_11 x 1 y -1 @@ -25205,7 +25333,7 @@ More Object demon_lord_12 name Demon Lord -face demon_lord.C11 +face demon_lord.x11 animation demon_lord_12 x 2 y -1 @@ -25215,7 +25343,7 @@ More Object demon_lord_13 name Demon Lord -face demon_lord.D11 +face demon_lord.x11 animation demon_lord_13 x -1 alive 1 @@ -25224,7 +25352,7 @@ More Object demon_lord_15 name Demon Lord -face demon_lord.F11 +face demon_lord.x11 animation demon_lord_15 x 1 alive 1 @@ -25233,7 +25361,7 @@ More Object demon_lord_16 name Demon Lord -face demon_lord.G11 +face demon_lord.x11 animation demon_lord_16 x 2 alive 1 @@ -25242,7 +25370,7 @@ More Object demon_lord_17 name Demon Lord -face demon_lord.H11 +face demon_lord.x11 animation demon_lord_17 x -1 y 1 @@ -25252,7 +25380,7 @@ More Object demon_lord_18 name Demon Lord -face demon_lord.I11 +face demon_lord.x11 animation demon_lord_18 y 1 alive 1 @@ -25261,7 +25389,7 @@ More Object demon_lord_19 name Demon Lord -face demon_lord.J11 +face demon_lord.x11 animation demon_lord_19 x 1 y 1 @@ -25271,7 +25399,7 @@ More Object demon_lord_20 name Demon Lord -face demon_lord.K11 +face demon_lord.x11 animation demon_lord_20 x 2 y 1 @@ -25281,7 +25409,7 @@ More Object demon_lord_21 name Demon Lord -face demon_lord.L11 +face demon_lord.x11 animation demon_lord_21 x -1 y 2 @@ -25291,7 +25419,7 @@ More Object demon_lord_22 name Demon Lord -face demon_lord.M11 +face demon_lord.x11 animation demon_lord_22 y 2 alive 1 @@ -25300,7 +25428,7 @@ More Object demon_lord_23 name Demon Lord -face demon_lord.N11 +face demon_lord.x11 animation demon_lord_23 x 1 y 2 @@ -25310,7 +25438,7 @@ More Object demon_lord_24 name Demon Lord -face demon_lord.O11 +face demon_lord.x11 animation demon_lord_24 x 2 y 2 @@ -25320,7 +25448,7 @@ More Object demon_lord_25 name Demon Lord -face demon_lord.P11 +face demon_lord.x11 animation demon_lord_25 x -1 y 3 @@ -25330,7 +25458,7 @@ More Object demon_lord_26 name Demon Lord -face demon_lord.Q11 +face demon_lord.x11 animation demon_lord_26 y 3 alive 1 @@ -25339,7 +25467,7 @@ More Object demon_lord_27 name Demon Lord -face demon_lord.R11 +face demon_lord.x11 animation demon_lord_27 x 1 y 3 @@ -25349,7 +25477,7 @@ More Object demon_lord_28 name Demon Lord -face demon_lord.S11 +face demon_lord.x11 animation demon_lord_28 x 2 y 3 @@ -25359,7 +25487,7 @@ More Object demon_lord_29 name Demon Lord -face demon_lord.T11 +face demon_lord.x11 animation demon_lord_29 x -1 y 4 @@ -25369,7 +25497,7 @@ More Object demon_lord_30 name Demon Lord -face demon_lord.U11 +face demon_lord.x11 animation demon_lord_30 y 4 alive 1 @@ -25378,7 +25506,7 @@ More Object demon_lord_31 name Demon Lord -face demon_lord.V11 +face demon_lord.x11 animation demon_lord_31 x 1 y 4 @@ -25388,7 +25516,7 @@ More Object demon_lord_32 name Demon Lord -face demon_lord.W11 +face demon_lord.x11 animation demon_lord_32 x 2 y 4 @@ -25399,7 +25527,7 @@ name Greater Demon randomitems Balrog race demon -face GreatDemon.111 +face GreatDemon.x11 Con 80 Pow 80 can_cast_spell 1 @@ -25460,7 +25588,7 @@ More Object Greater_Demon_1 name Greater Demon -face GreatDemon.211 +face GreatDemon.x11 x 1 y 0 alive 1 @@ -25469,7 +25597,7 @@ More Object Greater_Demon_2 name Greater Demon -face GreatDemon.311 +face GreatDemon.x11 x 2 y 0 alive 1 @@ -25478,7 +25606,7 @@ More Object Greater_Demon_3 name Greater Demon -face GreatDemon.411 +face GreatDemon.x11 x 3 y 0 alive 1 @@ -25487,7 +25615,7 @@ More Object Greater_Demon_4 name Greater Demon -face GreatDemon.511 +face GreatDemon.x11 x 4 y 0 alive 1 @@ -25496,7 +25624,7 @@ More Object Greater_Demon_5 name Greater Demon -face GreatDemon.611 +face GreatDemon.x11 x 5 y 0 alive 1 @@ -25505,7 +25633,7 @@ More Object Greater_Demon_6 name Greater Demon -face GreatDemon.711 +face GreatDemon.x11 x 0 y 1 alive 1 @@ -25514,7 +25642,7 @@ More Object Greater_Demon_7 name Greater Demon -face GreatDemon.811 +face GreatDemon.x11 x 1 y 1 alive 1 @@ -25523,7 +25651,7 @@ More Object Greater_Demon_8 name Greater Demon -face GreatDemon.911 +face GreatDemon.x11 x 2 y 1 alive 1 @@ -25532,7 +25660,7 @@ More Object Greater_Demon_9 name Greater Demon -face GreatDemon.A11 +face GreatDemon.x11 x 3 y 1 alive 1 @@ -25541,7 +25669,7 @@ More Object Greater_Demon_A name Greater Demon -face GreatDemon.B11 +face GreatDemon.x11 x 4 y 1 alive 1 @@ -25550,7 +25678,7 @@ More Object Greater_Demon_B name Greater Demon -face GreatDemon.C11 +face GreatDemon.x11 x 5 y 1 alive 1 @@ -25559,7 +25687,7 @@ More Object Greater_Demon_C name Greater Demon -face GreatDemon.D11 +face GreatDemon.x11 x 0 y 2 alive 1 @@ -25568,7 +25696,7 @@ More Object Greater_Demon_D name Greater Demon -face GreatDemon.E11 +face GreatDemon.x11 x 1 y 2 alive 1 @@ -25577,7 +25705,7 @@ More Object Greater_Demon_E name Greater Demon -face GreatDemon.F11 +face GreatDemon.x11 x 2 y 2 alive 1 @@ -25586,7 +25714,7 @@ More Object Greater_Demon_F name Greater Demon -face GreatDemon.G11 +face GreatDemon.x11 x 3 y 2 alive 1 @@ -25595,7 +25723,7 @@ More Object Greater_Demon_G name Greater Demon -face GreatDemon.H11 +face GreatDemon.x11 x 4 y 2 alive 1 @@ -25604,7 +25732,7 @@ More Object Greater_Demon_H name Greater Demon -face GreatDemon.I11 +face GreatDemon.x11 x 5 y 2 alive 1 @@ -25613,7 +25741,7 @@ More Object Greater_Demon_I name Greater Demon -face GreatDemon.J11 +face GreatDemon.x11 x 0 y 3 alive 1 @@ -25622,7 +25750,7 @@ More Object Greater_Demon_J name Greater Demon -face GreatDemon.K11 +face GreatDemon.x11 x 1 y 3 alive 1 @@ -25631,7 +25759,7 @@ More Object Greater_Demon_K name Greater Demon -face GreatDemon.L11 +face GreatDemon.x11 x 2 y 3 alive 1 @@ -25640,7 +25768,7 @@ More Object Greater_Demon_L name Greater Demon -face GreatDemon.M11 +face GreatDemon.x11 x 3 y 3 alive 1 @@ -25649,7 +25777,7 @@ More Object Greater_Demon_M name Greater Demon -face GreatDemon.N11 +face GreatDemon.x11 x 4 y 3 alive 1 @@ -25658,7 +25786,7 @@ More Object Greater_Demon_N name Greater Demon -face GreatDemon.O11 +face GreatDemon.x11 x 5 y 3 alive 1 @@ -25667,7 +25795,7 @@ More Object Greater_Demon_O name Greater Demon -face GreatDemon.P11 +face GreatDemon.x11 x 0 y 4 alive 1 @@ -25676,7 +25804,7 @@ More Object Greater_Demon_P name Greater Demon -face GreatDemon.Q11 +face GreatDemon.x11 x 1 y 4 alive 1 @@ -25685,7 +25813,7 @@ More Object Greater_Demon_Q name Greater Demon -face GreatDemon.R11 +face GreatDemon.x11 x 2 y 4 alive 1 @@ -25694,7 +25822,7 @@ More Object Greater_Demon_R name Greater Demon -face GreatDemon.S11 +face GreatDemon.x11 x 3 y 4 alive 1 @@ -25703,7 +25831,7 @@ More Object Greater_Demon_S name Greater Demon -face GreatDemon.T11 +face GreatDemon.x11 x 4 y 4 alive 1 @@ -25712,7 +25840,7 @@ More Object Greater_Demon_T name Greater Demon -face GreatDemon.U11 +face GreatDemon.x11 x 5 y 4 alive 1 @@ -25721,7 +25849,7 @@ More Object Greater_Demon_U name Greater Demon -face GreatDemon.V11 +face GreatDemon.x11 x 0 y 5 alive 1 @@ -25730,7 +25858,7 @@ More Object Greater_Demon_V name Greater Demon -face GreatDemon.W11 +face GreatDemon.x11 x 1 y 5 alive 1 @@ -25739,7 +25867,7 @@ More Object Greater_Demon_W name Greater Demon -face GreatDemon.X11 +face GreatDemon.x11 x 2 y 5 alive 1 @@ -25748,7 +25876,7 @@ More Object Greater_Demon_X name Greater Demon -face GreatDemon.Y11 +face GreatDemon.x11 x 3 y 5 alive 1 @@ -25757,7 +25885,7 @@ More Object Greater_Demon_Y name Greater Demon -face GreatDemon.Z11 +face GreatDemon.x11 x 4 y 5 alive 1 @@ -25766,7 +25894,7 @@ More Object Greater_Demon_Z name Greater Demon -face GreatDemon2.A11 +face GreatDemon.x11 x 5 y 5 alive 1 @@ -25775,7 +25903,7 @@ More Object Greater_Demon_a name Greater Demon -face GreatDemon2.B11 +face GreatDemon.x11 x 0 y 6 alive 1 @@ -25784,7 +25912,7 @@ More Object Greater_Demon_b name Greater Demon -face GreatDemon2.C11 +face GreatDemon.x11 x 1 y 6 alive 1 @@ -25793,7 +25921,7 @@ More Object Greater_Demon_c name Greater Demon -face GreatDemon2.D11 +face GreatDemon.x11 x 2 y 6 alive 1 @@ -25802,7 +25930,7 @@ More Object Greater_Demon_d name Greater Demon -face GreatDemon2.E11 +face GreatDemon.x11 x 3 y 6 alive 1 @@ -25811,7 +25939,7 @@ More Object Greater_Demon_e name Greater Demon -face GreatDemon2.F11 +face GreatDemon.x11 x 4 y 6 alive 1 @@ -25820,7 +25948,7 @@ More Object Greater_Demon_f name Greater Demon -face GreatDemon2.G11 +face GreatDemon.x11 x 5 y 6 alive 1 @@ -26334,7 +26462,7 @@ name demon race demon randomitems devil -face mdemon.111 +face mdemon.x11 animation medium_demon resist_magic 50 resist_godpower 50 @@ -26379,7 +26507,7 @@ More Object medium_demon_2 name demon -face mdemon.211 +face mdemon.x11 animation medium_demon_2 monster 1 alive 1 @@ -26390,7 +26518,7 @@ More Object medium_demon_3 name demon -face mdemon.311 +face mdemon.x11 animation medium_demon_3 monster 1 alive 1 @@ -26401,7 +26529,7 @@ More Object medium_demon_4 name demon -face mdemon.411 +face mdemon.x11 animation medium_demon_4 monster 1 alive 1 @@ -26453,7 +26581,7 @@ monster 1 sleep 1 Wis 30 -face chaos_dragon.171 +face chaos_dragon.x71 animation big_chaos_dragon level 68 Con 68 @@ -26486,7 +26614,7 @@ More Object big_chaos_dragon.2 name dragon of chaos -face chaos_dragon.271 +face chaos_dragon.x71 animation big_chaos_dragon.2 monster 1 alive 1 @@ -26497,7 +26625,7 @@ More Object big_chaos_dragon.3 name dragon of chaos -face chaos_dragon.371 +face chaos_dragon.x71 animation big_chaos_dragon.3 monster 1 alive 1 @@ -26508,7 +26636,7 @@ More Object big_chaos_dragon.4 name dragon of chaos -face chaos_dragon.471 +face chaos_dragon.x71 animation big_chaos_dragon.4 monster 1 alive 1 @@ -26519,7 +26647,7 @@ More Object big_chaos_dragon.5 name dragon of chaos -face chaos_dragon.571 +face chaos_dragon.x71 animation big_chaos_dragon.5 monster 1 alive 1 @@ -26531,7 +26659,7 @@ More Object big_chaos_dragon.6 name dragon of chaos -face chaos_dragon.671 +face chaos_dragon.x71 animation big_chaos_dragon.6 monster 1 alive 1 @@ -26544,7 +26672,7 @@ name chinese dragon randomitems chinese race dragon -face chinese_dr.171 +face chinese_dr.x71 animation chinese_dragon monster 1 sleep 1 @@ -26577,7 +26705,7 @@ More Object chinese_dragon_2 name chinese dragon -face chinese_dr.271 +face chinese_dr.x71 animation chinese_dragon_2 alive 1 x 1 @@ -26586,7 +26714,7 @@ More Object chinese_dragon_3 name chinese dragon -face chinese_dr.371 +face chinese_dr.x71 animation chinese_dragon_3 alive 1 y 1 @@ -26595,7 +26723,7 @@ More Object chinese_dragon_4 name chinese dragon -face chinese_dr.471 +face chinese_dr.x71 animation chinese_dragon_4 alive 1 x 1 @@ -26611,7 +26739,7 @@ Wis 30 Con 48 Pow 76 -face Cwyvern.171 +face Cwyvern.x71 animation Cwyvern level 30 can_cast_spell 1 @@ -26641,7 +26769,7 @@ More Object Cwyvern_2 name wyvern of chaos -face Cwyvern.271 +face Cwyvern.x71 animation Cwyvern_2 monster 1 x 1 @@ -26657,7 +26785,7 @@ monster 1 sleep 1 Wis 20 -face dragon.171 +face dragon.x71 animation big_dragon level 18 Con 11 @@ -26689,7 +26817,7 @@ More Object big_dragon_2 name dragon -face dragon.271 +face dragon.x71 animation big_dragon_2 monster 1 alive 1 @@ -26700,7 +26828,7 @@ More Object big_dragon_3 name dragon -face dragon.371 +face dragon.x71 animation big_dragon_3 monster 1 alive 1 @@ -26711,7 +26839,7 @@ More Object big_dragon_4 name dragon -face dragon.471 +face dragon.x71 animation big_dragon_4 monster 1 alive 1 @@ -26722,7 +26850,7 @@ More Object big_dragon_5 name dragon -face dragon.571 +face dragon.x71 animation big_dragon_5 monster 1 alive 1 @@ -26734,7 +26862,7 @@ More Object big_dragon_6 name dragon -face dragon.671 +face dragon.x71 animation big_dragon_6 monster 1 alive 1 @@ -26750,7 +26878,7 @@ monster 1 sleep 1 Wis 20 -face dragon_ac.171 +face dragon_ac.x71 animation big_dragon_ancient level 26 Con 11 @@ -26787,7 +26915,7 @@ More Object big_dragon_ancient2 name dragon -face dragon_ac.271 +face dragon_ac.x71 animation big_dragon_ancient2 monster 1 alive 1 @@ -26798,7 +26926,7 @@ More Object big_dragon_ancient3 name dragon -face dragon_ac.371 +face dragon_ac.x71 animation big_dragon_ancient3 monster 1 alive 1 @@ -26809,7 +26937,7 @@ More Object big_dragon_ancient4 name dragon -face dragon_ac.471 +face dragon_ac.x71 animation big_dragon_ancient4 monster 1 alive 1 @@ -26820,7 +26948,7 @@ More Object big_dragon_ancient5 name dragon -face dragon_ac.571 +face dragon_ac.x71 animation big_dragon_ancient5 monster 1 alive 1 @@ -26832,7 +26960,7 @@ More Object big_dragon_ancient6 name dragon -face dragon_ac.671 +face dragon_ac.x71 animation big_dragon_ancient6 monster 1 alive 1 @@ -26901,7 +27029,7 @@ monster 1 sleep 1 Wis 20 -face elec_dr.111 +face elec_dr.x11 animation big_elec level 18 Con 11 @@ -26933,7 +27061,7 @@ More Object big_elec_2 name electric dragon -face elec_dr.211 +face elec_dr.x11 animation big_elec_2 monster 1 alive 1 @@ -26944,7 +27072,7 @@ More Object big_elec_3 name electric dragon -face elec_dr.311 +face elec_dr.x11 animation big_elec_3 monster 1 alive 1 @@ -26955,7 +27083,7 @@ More Object big_elec_4 name electric dragon -face elec_dr.411 +face elec_dr.x11 animation big_elec_4 monster 1 alive 1 @@ -26967,7 +27095,7 @@ More Object big_elec_5 name electric dragon -face elec_dr.511 +face elec_dr.x11 animation big_elec_5 monster 1 alive 1 @@ -26978,7 +27106,7 @@ More Object big_elec_6 name electric dragon -face elec_dr.611 +face elec_dr.x11 animation big_elec_6 monster 1 alive 1 @@ -27099,7 +27227,7 @@ monster 1 sleep 1 Wis 20 -face worthless_dragon.171 +face worthless_dragon.x71 animation big_dragon_worthless level 18 Con 11 @@ -27133,7 +27261,7 @@ More Object big_worthless_dragon_2 name worthless_dragon -face worthless_dragon.271 +face worthless_dragon.x71 animation big_worthless_dragon_2 monster 1 alive 1 @@ -27144,7 +27272,7 @@ More Object big_worthless_dragon_3 name worthless_dragon -face worthless_dragon.371 +face worthless_dragon.x71 animation big_worthless_dragon_3 monster 1 alive 1 @@ -27155,7 +27283,7 @@ More Object big_worthless_dragon_4 name worthless_dragon -face worthless_dragon.471 +face worthless_dragon.x71 animation big_worthless_dragon_4 monster 1 alive 1 @@ -27166,7 +27294,7 @@ More Object big_worthless_dragon_5 name worthless_dragon -face worthless_dragon.571 +face worthless_dragon.x71 animation big_worthless_dragon_5 monster 1 alive 1 @@ -27178,7 +27306,7 @@ More Object big_worthless_dragon_6 name worthless_dragon -face worthless_dragon.671 +face worthless_dragon.x71 animation big_worthless_dragon_6 monster 1 alive 1 @@ -27225,7 +27353,7 @@ name bone drake randomitems chinese race dragon -face bone_drake.111 +face bone_drake.x11 animation bone_drake monster 1 sleep 1 @@ -27254,7 +27382,7 @@ More Object bone_drake_2 name bone drake -face bone_drake.211 +face bone_drake.x11 animation bone_drake_2 alive 1 x 1 @@ -27263,7 +27391,7 @@ More Object bone_drake_3 name bone drake -face bone_drake.311 +face bone_drake.x11 animation bone_drake_3 alive 1 y 1 @@ -27272,7 +27400,7 @@ More Object bone_drake_4 name bone drake -face bone_drake.411 +face bone_drake.x11 animation bone_drake_4 alive 1 x 1 @@ -27376,7 +27504,7 @@ monster 1 sleep 1 Wis 20 -face wyvern.171 +face wyvern.x71 animation dragon level 8 Con 2 @@ -27407,7 +27535,7 @@ More Object dragon_2 name wyvern -face wyvern.271 +face wyvern.x71 animation dragon_2 monster 1 x 1 @@ -27655,7 +27783,7 @@ end Object s_wyvern name shadow wyvern -face s_wyvern.171 +face s_wyvern.x71 race shadow randomitems s_wyvern animation s_wyvern @@ -27699,7 +27827,7 @@ More Object s_wyvern_2 name shadow wyvern -face s_wyvern.271 +face s_wyvern.x71 animation s_wyvern_2 monster 1 x 1 @@ -27994,7 +28122,7 @@ monster 1 sleep 1 Wis 25 -face belzebub.111 +face belzebub.x11 animation belzebub resist_magic 100 resist_electricity 30 @@ -28048,7 +28176,7 @@ More Object belzebub_2 name Belzebub -face belzebub.211 +face belzebub.x11 animation belzebub_2 no_pick 1 alive 1 @@ -28059,7 +28187,7 @@ More Object belzebub_3 name Belzebub -face belzebub.311 +face belzebub.x11 animation belzebub_3 no_pick 1 alive 1 @@ -28070,7 +28198,7 @@ More Object belzebub_4 name Belzebub -face belzebub.411 +face belzebub.x11 animation belzebub_4 no_pick 1 alive 1 @@ -28082,7 +28210,7 @@ More Object belzebub_5 name Belzebub -face belzebub.511 +face belzebub.x11 animation belzebub_5 no_pick 1 alive 1 @@ -28093,7 +28221,7 @@ More Object belzebub_6 name Belzebub -face belzebub.611 +face belzebub.x11 animation belzebub_6 no_pick 1 alive 1 @@ -28109,7 +28237,7 @@ monster 1 sleep 1 Wis 15 -face big_wiz.111 +face big_wiz.x11 animation big_wiz level 18 attacktype 128 @@ -28163,7 +28291,7 @@ More Object big_wiz2 name wizard -face big_wiz.211 +face big_wiz.x11 animation big_wiz2 monster 1 alive 1 @@ -28175,7 +28303,7 @@ More Object big_wiz3 name wizard -face big_wiz.311 +face big_wiz.x11 animation big_wiz3 monster 1 alive 1 @@ -28187,7 +28315,7 @@ More Object big_wiz4 name wizard -face big_wiz.411 +face big_wiz.x11 animation big_wiz4 monster 1 alive 1 @@ -28199,7 +28327,7 @@ More Object big_wiz5 name wizard -face big_wiz.511 +face big_wiz.x11 animation big_wiz5 monster 1 alive 1 @@ -28211,7 +28339,7 @@ More Object big_wiz6 name wizard -face big_wiz.611 +face big_wiz.x11 animation big_wiz6 monster 1 alive 1 @@ -28223,7 +28351,7 @@ More Object big_wiz7 name wizard -face big_wiz.711 +face big_wiz.x11 animation big_wiz7 monster 1 alive 1 @@ -28235,7 +28363,7 @@ More Object big_wiz8 name wizard -face big_wiz.811 +face big_wiz.x11 animation big_wiz8 monster 1 alive 1 @@ -28247,7 +28375,7 @@ More Object big_wiz9 name wizard -face big_wiz.911 +face big_wiz.x11 animation big_wiz9 monster 1 alive 1 @@ -28260,7 +28388,7 @@ race giant name Dread Knight randomitems DK -face Bk.111 +face Bk.x11 animation DK exp 200000 hp 4500 @@ -28322,7 +28450,7 @@ More Object DK3 name Dread Knight -face Bk.311 +face Bk.x11 animation DK3 alive 1 no_pick 1 @@ -28332,7 +28460,7 @@ More Object DK5 name Dread Knight -face Bk.511 +face Bk.x11 animation DK5 alive 1 no_pick 1 @@ -28342,7 +28470,7 @@ More Object DK2 name Dread Knight -face Bk.211 +face Bk.x11 animation DK2 alive 1 no_pick 1 @@ -28352,7 +28480,7 @@ More Object DK4 name Dread Knight -face Bk.411 +face Bk.x11 animation DK4 alive 1 no_pick 1 @@ -28363,7 +28491,7 @@ More Object DK6 name Dread Knight -face Bk.611 +face Bk.x11 animation DK6 alive 1 no_pick 1 @@ -28375,7 +28503,7 @@ race giant name Elite Dread Knight randomitems EDK -face Bk.111 +face Bk.x11 animation EDK exp 500000 hp 6000 @@ -28439,7 +28567,7 @@ More Object EDK3 name Elite Dread Knight -face Bk.311 +face Bk.x11 animation EDK3 alive 1 no_pick 1 @@ -28449,7 +28577,7 @@ More Object EDK5 name Elite Dread Knight -face Bk.511 +face Bk.x11 animation EDK5 alive 1 no_pick 1 @@ -28459,7 +28587,7 @@ More Object EDK2 name Elite Dread Knight -face Bk.211 +face Bk.x11 animation EDK2 alive 1 no_pick 1 @@ -28469,7 +28597,7 @@ More Object EDK4 name Elite Dread Knight -face Bk.411 +face Bk.x11 animation EDK4 alive 1 no_pick 1 @@ -28480,7 +28608,7 @@ More Object EDK6 name Elite Dread Knight -face Bk.611 +face Bk.x11 animation EDK6 alive 1 no_pick 1 @@ -28492,7 +28620,7 @@ race demon name Jessy randomitems big_wizard -face jessyb.111 +face jessyb.x11 animation jessyb attacktype 65023 resist_physical 95 @@ -28564,7 +28692,7 @@ More Object jessyb_2 name Jessy -face jessyb.211 +face jessyb.x11 animation jessyb_2 monster 1 alive 1 @@ -28576,7 +28704,7 @@ More Object jessyb_3 name Jessy -face jessyb.311 +face jessyb.x11 animation jessyb_3 monster 1 alive 1 @@ -28588,7 +28716,7 @@ More Object jessyb_4 name Jessy -face jessyb.411 +face jessyb.x11 animation jessyb_4 monster 1 alive 1 @@ -28600,7 +28728,7 @@ More Object jessyb_5 name Jessy -face jessyb.511 +face jessyb.x11 animation jessyb_5 monster 1 alive 1 @@ -28612,7 +28740,7 @@ More Object jessyb_6 name Jessy -face jessyb.611 +face jessyb.x11 animation jessyb_6 monster 1 alive 1 @@ -28625,7 +28753,7 @@ More Object jessyb_7 name Jessy -face jessyb.711 +face jessyb.x11 animation jessyb_7 monster 1 alive 1 @@ -28638,7 +28766,7 @@ More Object jessyb_8 name Jessy -face jessyb.811 +face jessyb.x11 animation jessyb_8 monster 1 alive 1 @@ -28651,7 +28779,7 @@ More Object jessyb_9 name Jessy -face jessyb.911 +face jessyb.x11 animation jessyb_9 monster 1 alive 1 @@ -28663,7 +28791,7 @@ More Object jessyb_10 name Jessy -face jessyb.A11 +face jessyb.x11 animation jessyb_10 monster 1 alive 1 @@ -28676,7 +28804,7 @@ More Object jessyb_11 name Jessy -face jessyb.B11 +face jessyb.x11 animation jessyb_11 monster 1 alive 1 @@ -28689,7 +28817,7 @@ More Object jessyb_12 name Jessy -face jessyb.C11 +face jessyb.x11 animation jessyb_12 monster 1 alive 1 @@ -28702,7 +28830,7 @@ More Object jessyb_13 name Jessy -face jessyb.D11 +face jessyb.x11 animation jessyb_13 monster 1 alive 1 @@ -28714,7 +28842,7 @@ More Object jessyb_14 name Jessy -face jessyb.E11 +face jessyb.x11 animation jessyb_14 monster 1 alive 1 @@ -28727,7 +28855,7 @@ More Object jessyb_15 name Jessy -face jessyb.F11 +face jessyb.x11 animation jessyb_15 monster 1 alive 1 @@ -28740,7 +28868,7 @@ More Object jessyb_16 name Jessy -face jessyb.G11 +face jessyb.x11 animation jessyb_16 monster 1 alive 1 @@ -28756,7 +28884,7 @@ monster 1 sleep 1 Wis 20 -face titan.571 +face titan.x71 animation titan ... [truncated message content] |
From: <aki...@us...> - 2007-03-20 08:06:34
|
Revision: 1926 http://svn.sourceforge.net/gridarta/?rev=1926&view=rev Author: akirschbaum Date: 2007-03-19 22:57:15 -0700 (Mon, 19 Mar 2007) Log Message: ----------- Add "smoothlevel" attribute for game objects. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/resource/conf/types.xml Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-03-20 05:54:59 UTC (rev 1925) +++ trunk/crossfire/ChangeLog 2007-03-20 05:57:15 UTC (rev 1926) @@ -1,5 +1,7 @@ 2007-03-20 Andreas Kirschbaum + * Add "smoothlevel" attribute for game objects. + * Do not change map difficulty to 1 for maps having no difficulty. * Fix #1680014 (Revert option language/word in CrossfireEditor). Modified: trunk/crossfire/resource/conf/types.xml =================================================================== --- trunk/crossfire/resource/conf/types.xml 2007-03-20 05:54:59 UTC (rev 1925) +++ trunk/crossfire/resource/conf/types.xml 2007-03-20 05:57:15 UTC (rev 1926) @@ -369,6 +369,12 @@ appears lit up on dark maps. <glow radius> can be a value between 0 and 4, the higher, the more light does the object emit. </attribute> + <attribute arch="smoothlevel" editor="smooth level" type="int"> + If <smooth level> is set to a value greater zero, the object will be + drawn partially over adjacent squares having a lower <smooth level> + value. The value must be between 0 and 255 (inclusive); 0 means "never + overlap adjacent squares". + </attribute> <attribute arch="material" editor="material" type="bitmask_material"> This bitmask-value informs the player of which material(s) the object consists. Material does also affect how likely the object This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-03-20 08:38:59
|
Revision: 1935 http://svn.sourceforge.net/gridarta/?rev=1935&view=rev Author: akirschbaum Date: 2007-03-20 01:38:59 -0700 (Tue, 20 Mar 2007) Log Message: ----------- Drop map window back buffer images when available memory becomes tight. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-03-20 08:12:20 UTC (rev 1934) +++ trunk/crossfire/ChangeLog 2007-03-20 08:38:59 UTC (rev 1935) @@ -1,5 +1,9 @@ 2007-03-20 Andreas Kirschbaum + * Drop map window back buffer images when available memory becomes + tight. This prevents out of memory errors when loading multiple + and/or large maps. + * Add "smoothlevel" attribute for game objects. * Do not change map difficulty to 1 for maps having no difficulty. Modified: trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java =================================================================== --- trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java 2007-03-20 08:12:20 UTC (rev 1934) +++ trunk/crossfire/src/cfeditor/gui/map/MapRenderer.java 2007-03-20 08:38:59 UTC (rev 1935) @@ -31,6 +31,7 @@ import java.awt.Point; import java.awt.Rectangle; import java.awt.image.BufferedImage; +import java.lang.ref.SoftReference; import javax.swing.ImageIcon; import net.sf.gridarta.gui.map.MapGrid; import org.apache.log4j.Logger; @@ -58,7 +59,12 @@ private final Point offset = new Point(); - private BufferedImage backBuffer; + /** + * The back buffer for this map. A soft reference is used because back + * buffers are huge and therefore frequently cause out of memory errors + * when loading large and/or multiple maps. + */ + private SoftReference<BufferedImage> backBufferRef = null; private final CMainControl mainControl; @@ -81,6 +87,7 @@ /** {@inheritDoc} */ protected void updateTile(final Point point) { + final BufferedImage backBuffer = getBackBuffer(); if (backBuffer == null) { return; } @@ -103,6 +110,7 @@ /** {@inheritDoc} */ protected void updateAll() { + final BufferedImage backBuffer = getBackBuffer(); if (backBuffer == null) { return; } @@ -112,14 +120,15 @@ /** {@inheritDoc} */ @Override public void paintComponent(final Graphics g) { + final BufferedImage backBuffer = getBackBuffer(); if (backBuffer != null) { - paintFromBackbuffer(g, 0, 0, backBuffer.getWidth(), backBuffer.getHeight()); + paintFromBackbuffer(g, backBuffer, 0, 0, backBuffer.getWidth(), backBuffer.getHeight()); } else { paintComponent(g, false, true); } } - private void paintFromBackbuffer(final Graphics grfx, final int x, final int y, final int width, final int height) { + private void paintFromBackbuffer(final Graphics grfx, final BufferedImage backBuffer, final int x, final int y, final int width, final int height) { if (grfx == null) { return; } @@ -129,17 +138,29 @@ /** {@inheritDoc} */ protected boolean resizeBackBuffer(final Dimension size) { + final BufferedImage backBuffer = getBackBuffer(); if (backBuffer != null && backBuffer.getWidth() == size.width && backBuffer.getHeight() == size.height) { return true; } + backBufferRef = null; + if (log.isDebugEnabled()) { log.debug("Creating a backbuffer of size " + size.width + "x" + size.height + "."); } - backBuffer = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB); - final Graphics g = backBuffer.getGraphics(); + final BufferedImage newBackBuffer; + try { + newBackBuffer = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB); + } catch (final OutOfMemoryError ex) { + if (log.isDebugEnabled()) { + log.debug("out of memory creating new back buffer"); + } + return false; + } + final Graphics g = newBackBuffer.getGraphics(); g.setColor(Color.YELLOW); g.fillRect(0, 0, size.width, size.height); + backBufferRef = new SoftReference<BufferedImage>(newBackBuffer); return true; } @@ -189,4 +210,29 @@ } } + /** + * Get the back buffer image for the map. Sets {@link #backBufferRef} to + * <code>null</code> if the back buffer has been deleted by the garbage + * collector. + * + * @return the back buffer image, or <code>null</code> if the map has no + * back buffer + */ + private BufferedImage getBackBuffer() { + if (backBufferRef == null) { + return null; + } + + final BufferedImage backBuffer = backBufferRef.get(); + if (backBuffer == null) { + if (log.isDebugEnabled()) { + log.debug("lost back buffer"); + } + backBufferRef = null; + return null; + } + + return backBuffer; + } + } // class MapRenderer This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-03-20 18:29:21
|
Revision: 1941 http://svn.sourceforge.net/gridarta/?rev=1941&view=rev Author: akirschbaum Date: 2007-03-20 11:29:17 -0700 (Tue, 20 Mar 2007) Log Message: ----------- Add "elevation" attribute for game objects. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/resource/conf/types.xml Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-03-20 16:28:32 UTC (rev 1940) +++ trunk/crossfire/ChangeLog 2007-03-20 18:29:17 UTC (rev 1941) @@ -1,5 +1,7 @@ 2007-03-20 Andreas Kirschbaum + * Add "elevation" attribute for game objects. + * Drop map window back buffer images when available memory becomes tight. This prevents out of memory errors when loading multiple and/or large maps. Modified: trunk/crossfire/resource/conf/types.xml =================================================================== --- trunk/crossfire/resource/conf/types.xml 2007-03-20 16:28:32 UTC (rev 1940) +++ trunk/crossfire/resource/conf/types.xml 2007-03-20 18:29:17 UTC (rev 1941) @@ -375,6 +375,12 @@ value. The value must be between 0 and 255 (inclusive); 0 means "never overlap adjacent squares". </attribute> + <attribute arch="elevation" editor="elevation" type="int"> + The elevation (height above sea level) of this tile. It is used for weather + calculations and should be in the range -32000..32000. The elevation of a + tile must be set in the bottom-most game object; elevation values for + non-bottom-most game objects are ignored by the Crossfire server. + </attribute> <attribute arch="material" editor="material" type="bitmask_material"> This bitmask-value informs the player of which material(s) the object consists. Material does also affect how likely the object This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-03-21 22:04:07
|
Revision: 1946 http://svn.sourceforge.net/gridarta/?rev=1946&view=rev Author: akirschbaum Date: 2007-03-21 15:04:07 -0700 (Wed, 21 Mar 2007) Log Message: ----------- Move logic for edit types from Java code to GameObjectMatchers.xml. Modified Paths: -------------- trunk/crossfire/resource/conf/GameObjectMatchers.xml trunk/crossfire/src/cfeditor/CFArchTypeList.java trunk/crossfire/src/cfeditor/gameobject/GameObject.java Modified: trunk/crossfire/resource/conf/GameObjectMatchers.xml =================================================================== --- trunk/crossfire/resource/conf/GameObjectMatchers.xml 2007-03-21 22:01:20 UTC (rev 1945) +++ trunk/crossfire/resource/conf/GameObjectMatchers.xml 2007-03-21 22:04:07 UTC (rev 1946) @@ -1,9 +1,62 @@ <?xml version="1.0"?> <!DOCTYPE GameObjectMatchers SYSTEM "GameObjectMatchers.dtd"> <GameObjectMatchers> - <GameObjectMatcher id="exits"> - <title xml:lang="en">Exits</title> - <title xml:lang="de">Ausgänge</title> + <GameObjectMatcher id="background"> + <title xml:lang="en">Background</title> + <title xml:lang="de">Hintergrund</title> + <And> + <Attrib name="is_floor" /> + <Attrib name="no_pick" /> + </And> + </GameObjectMatcher> + <GameObjectMatcher id="monster"> + <title xml:lang="en">Monster</title> + <title xml:lang="de">Monster</title> + <And> + <Attrib name="alive" /> + <Or> + <Attrib name="monster" /> + <Attrib name="generator" /> + </Or> + </And> + </GameObjectMatcher> + <GameObjectMatcher id="wall"> + <title xml:lang="en">Wall</title> + <title xml:lang="de">Wand</title> + <And> + <TypeNrs numbers="0" /> + <Attrib name="no_pass" /> + </And> + </GameObjectMatcher> + <GameObjectMatcher id="connected"> + <title xml:lang="en">Connected</title> + <title xml:lang="de">Verbunden</title> + <Attrib name="connected" op="ne" value="" /> + </GameObjectMatcher> + <GameObjectMatcher id="exit"> + <title xml:lang="en">Exit</title> + <title xml:lang="de">Ausgang</title> <TypeNrs numbers="41 57 58 66 94 95" /> </GameObjectMatcher> + <GameObjectMatcher id="treasure"> + <title xml:lang="en">Treasure</title> + <title xml:lang="de">Schatz</title> + <And> + <TypeNrs numbers="4 5 36 60 85 111 123 124 130" /> + <Attrib name="no_pick" value="" /> + </And> + </GameObjectMatcher> + <GameObjectMatcher id="door"> + <title xml:lang="en">Doors and Keys</title> + <title xml:lang="de">Türen und Schlüssel</title> + <TypeNrs numbers="20 21 23 24 26 91" /> + </GameObjectMatcher> + <GameObjectMatcher id="equipment"> + <title xml:lang="en">Equipment</title> + <title xml:lang="de">Ausrüstung</title> + <And> + <TypeNrs numbers="3 13 14 15 16 33 34 35 39 70 87 99 100 104 109 113 122" /> + <Attrib name="no_pick" value="" /> + </And> + </GameObjectMatcher> </GameObjectMatchers> Modified: trunk/crossfire/src/cfeditor/CFArchTypeList.java =================================================================== --- trunk/crossfire/src/cfeditor/CFArchTypeList.java 2007-03-21 22:01:20 UTC (rev 1945) +++ trunk/crossfire/src/cfeditor/CFArchTypeList.java 2007-03-21 22:04:07 UTC (rev 1946) @@ -63,19 +63,101 @@ private final List<NamedGameObjectMatcher> archObjectMatchers = new ArrayList<NamedGameObjectMatcher>(); /** - * Check whether the GameObject is an exit. + * Check whether the GameObject has a given type. * @param arch GameObject to check - * @return <code>true</code> if <var>arch</var> is an exit, otherwise <code>false</code> + * @param id the type to check for + * @return <code>true</code> if <var>arch</var> is of the given type, + * otherwise <code>false</code> */ - public static boolean isExitType(final GameObject arch) { + private static boolean isType(final GameObject arch, final String id) { if (arch == null) { return false; } - final NamedGameObjectMatcher exits = archObjectMatchersByIds.get("exits"); - return exits != null && exits.isMatching(arch); + final NamedGameObjectMatcher matcher = archObjectMatchersByIds.get(id); + return matcher != null && matcher.isMatching(arch); } + /** + * Check whether the GameObject is background. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is background, otherwise + * <code>false</code> + */ + public static boolean isBackgroundType(final GameObject arch) { + return isType(arch, "background"); + } + + /** + * Check whether the GameObject is a monster. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is a monster, otherwise + * <code>false</code> + */ + public static boolean isMonsterType(final GameObject arch) { + return isType(arch, "monster"); + } + + /** + * Check whether the GameObject is a wall. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is a wall, otherwise + * <code>false</code> + */ + public static boolean isWallType(final GameObject arch) { + return isType(arch, "wall"); + } + + /** + * Check whether the GameObject is connected. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is connected, otherwise + * <code>false</code> + */ + public static boolean isConnectedType(final GameObject arch) { + return isType(arch, "connected"); + } + + /** + * Check whether the GameObject is an exit. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is an exit, otherwise + * <code>false</code> + */ + public static boolean isExitType(final GameObject arch) { + return isType(arch, "exit"); + } + + /** + * Check whether the GameObject is a treasure. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is a treasure, otherwise + * <code>false</code> + */ + public static boolean isTreasureType(final GameObject arch) { + return isType(arch, "treasure"); + } + + /** + * Check whether the GameObject is a door/gate/key. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is a door/gate/key, + * otherwise <code>false</code> + */ + public static boolean isDoorType(final GameObject arch) { + return isType(arch, "door"); + } + + /** + * Check whether the GameObject is equipment. + * @param arch GameObject to check + * @return <code>true</code> if <var>arch</var> is equipment, + * otherwise <code>false</code> + */ + public static boolean isEquipmentType(final GameObject arch) { + return isType(arch, "equipment"); + } + /** {@inheritDoc} */ @Override public Spells getSpells() { return spells; Modified: trunk/crossfire/src/cfeditor/gameobject/GameObject.java =================================================================== --- trunk/crossfire/src/cfeditor/gameobject/GameObject.java 2007-03-21 22:01:20 UTC (rev 1945) +++ trunk/crossfire/src/cfeditor/gameobject/GameObject.java 2007-03-21 22:04:07 UTC (rev 1946) @@ -19,6 +19,7 @@ package cfeditor.gameobject; +import cfeditor.CFArchTypeList; import cfeditor.IGUIConstants; import cfeditor.gameobject.scripts.ScriptArchData; import cfeditor.gui.GameObjectAttributesPanel; @@ -79,49 +80,28 @@ editType &= ~checkType; } - if ((checkType & IGUIConstants.TILE_EDIT_BACKGROUND) != 0 - && getAttributeInt("is_floor") == 1 - && getAttributeInt("no_pick") == 1) { - // Backgroud: floors + if ((checkType & IGUIConstants.TILE_EDIT_BACKGROUND) != 0 && CFArchTypeList.isBackgroundType(this)) { editType |= IGUIConstants.TILE_EDIT_BACKGROUND; } - if ((checkType & IGUIConstants.TILE_EDIT_MONSTER) != 0 - && getAttributeInt("alive") == 1 - && (getAttributeInt("monster") == 1 || getAttributeInt("generator") == 1)) { - // Monster: monsters/npcs/generators + if ((checkType & IGUIConstants.TILE_EDIT_MONSTER) != 0 && CFArchTypeList.isMonsterType(this)) { editType |= IGUIConstants.TILE_EDIT_MONSTER; } - if ((checkType & IGUIConstants.TILE_EDIT_WALL) != 0 - && archType == 0 - && getAttributeInt("no_pass") == 1) { - // Walls + if ((checkType & IGUIConstants.TILE_EDIT_WALL) != 0 && CFArchTypeList.isWallType(this)) { editType |= IGUIConstants.TILE_EDIT_WALL; } - if ((checkType & IGUIConstants.TILE_EDIT_CONNECTED) != 0 - && getAttributeInt("connected") != 0) { - // Connected Objects + if ((checkType & IGUIConstants.TILE_EDIT_CONNECTED) != 0 && CFArchTypeList.isConnectedType(this)) { editType |= IGUIConstants.TILE_EDIT_CONNECTED; } - if ((checkType & IGUIConstants.TILE_EDIT_EXIT) != 0 - && (archType == 66 || archType == 41 || archType == 95)) { - // Exit: teleporter/exit/trapdoors + if ((checkType & IGUIConstants.TILE_EDIT_EXIT) != 0 && CFArchTypeList.isExitType(this)) { editType |= IGUIConstants.TILE_EDIT_EXIT; } - if ((checkType & IGUIConstants.TILE_EDIT_TREASURE) != 0 - && getAttributeInt("no_pick") == 0 - && (archType == 4 || archType == 5 || archType == 36 || archType == 60 || archType == 85 || archType == 111 || archType == 123 || archType == 124 || archType == 130)) { - // Treasure: randomtreasure/money/gems/potions/spellbooks/scrolls + if ((checkType & IGUIConstants.TILE_EDIT_TREASURE) != 0 && CFArchTypeList.isTreasureType(this)) { editType |= IGUIConstants.TILE_EDIT_TREASURE; } - if ((checkType & IGUIConstants.TILE_EDIT_DOOR) != 0 - && (archType == 20 || archType == 23 || archType == 26 || archType == 91 || archType == 21 || archType == 24)) { - // Door: door/special door/gates + keys + if ((checkType & IGUIConstants.TILE_EDIT_DOOR) != 0 && CFArchTypeList.isDoorType(this)) { editType |= IGUIConstants.TILE_EDIT_DOOR; } - if ((checkType & IGUIConstants.TILE_EDIT_EQUIP) != 0 - && getAttributeInt("no_pick") == 0 - && (archType >= 13 && archType <= 16 || archType == 33 || archType == 34 || archType == 35 || archType == 39 || archType == 70 || archType == 87 || archType == 99 || archType == 100 || archType == 104 || archType == 109 || archType == 113 || archType == 122 || archType == 3)) { - // Equipment: weapons/armour/wands/rods + if ((checkType & IGUIConstants.TILE_EDIT_EQUIP) != 0 && CFArchTypeList.isEquipmentType(this)) { editType |= IGUIConstants.TILE_EDIT_EQUIP; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-03-22 18:45:23
|
Revision: 1952 http://svn.sourceforge.net/gridarta/?rev=1952&view=rev Author: akirschbaum Date: 2007-03-22 11:44:50 -0700 (Thu, 22 Mar 2007) Log Message: ----------- Make view menu entries ("Show xxx") display the current view state. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/src/cfeditor/ViewActions.java Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-03-22 18:41:43 UTC (rev 1951) +++ trunk/crossfire/ChangeLog 2007-03-22 18:44:50 UTC (rev 1952) @@ -1,3 +1,8 @@ +2007-03-22 Andreas Kirschbaum + + * Make view menu entries ("Show xxx") display the current view + state. + 2007-03-20 Andreas Kirschbaum * Implement #1680008 (Goto coordinates function). Modified: trunk/crossfire/src/cfeditor/ViewActions.java =================================================================== --- trunk/crossfire/src/cfeditor/ViewActions.java 2007-03-22 18:41:43 UTC (rev 1951) +++ trunk/crossfire/src/cfeditor/ViewActions.java 2007-03-22 18:44:50 UTC (rev 1952) @@ -19,7 +19,12 @@ package cfeditor; +import cfeditor.gameobject.Archetype; +import cfeditor.gameobject.GameObject; +import cfeditor.map.MapArchObject; +import cfeditor.map.MapControl; import javax.swing.Action; +import net.sf.gridarta.CurrentMapListener; import net.sf.japi.swing.ActionFactory; import net.sf.japi.swing.ToggleAction; import org.apache.log4j.Logger; @@ -39,6 +44,9 @@ /** The main control to use. */ @NotNull private final CMainControl mainControl; + /** The listener to check for current map changes. */ + private final CurrentMapListener<GameObject, MapArchObject, Archetype, MapControl> currentMapListener; + /** Action for "show monster". */ private final ToggleAction aShowMonster = (ToggleAction) ACTION_FACTORY.createToggle(true, "showMonster", this); @@ -71,22 +79,47 @@ public ViewActions(@NotNull final CMainControl mainControl) { this.mainControl = mainControl; ACTION_FACTORY.createActions(true, this, "resetView"); + + currentMapListener = new CurrentMapListener<GameObject, MapArchObject, Archetype, MapControl>(mainControl, null, false, false) { + + /** {@inheritDoc} */ + public void mapHasChanged() { + updateActions(); + } + + }; + updateActions(); } + /** + * Unregister all registered listeners. Must be called when this instance + * is freed. + */ + public void closeNotify() { + currentMapListener.closeNotify(); + } + /** Action method for "reset view". */ public void resetView() { // set tileEdit to zero (-> show all) mainControl.unsetTileEdit(~0); - aShowMonster.setSelected(false); - aShowExit.setSelected(false); - aShowBackground.setSelected(false); - aShowDoor.setSelected(false); - aShowWall.setSelected(false); - aShowEquipment.setSelected(false); - aShowTreasure.setSelected(false); - aShowConnected.setSelected(false); + updateActions(); } + /** + * Update the actions' state to the current edit mode. + */ + private void updateActions() { + aShowMonster.setSelected(isShowMonster()); + aShowExit.setSelected(isShowExit()); + aShowBackground.setSelected(isShowBackground()); + aShowDoor.setSelected(isShowDoor()); + aShowWall.setSelected(isShowWall()); + aShowEquipment.setSelected(isShowEquipment()); + aShowTreasure.setSelected(isShowTreasure()); + aShowConnected.setSelected(isShowConnected()); + } + /** Action method for "show monster". */ public boolean isShowMonster() { return mainControl.isTileEdit(IGUIConstants.TILE_EDIT_MONSTER); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-03-25 11:03:55
|
Revision: 1967 http://svn.sourceforge.net/gridarta/?rev=1967&view=rev Author: akirschbaum Date: 2007-03-25 04:03:56 -0700 (Sun, 25 Mar 2007) Log Message: ----------- Fix part of #1555837 (Doesn't support new move_type system): add 'move_type' game object attribute. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/resource/conf/types.xml Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-03-25 11:02:30 UTC (rev 1966) +++ trunk/crossfire/ChangeLog 2007-03-25 11:03:56 UTC (rev 1967) @@ -1,3 +1,8 @@ +2007-03-24 Andreas Kirschbaum + + * Fix part of #1555837 (Doesn't support new move_type system): add + 'move_type' game object attribute. + 2007-03-23 Andreas Kirschbaum * Remove special handling of multipart objects when writing map Modified: trunk/crossfire/resource/conf/types.xml =================================================================== --- trunk/crossfire/resource/conf/types.xml 2007-03-25 11:02:30 UTC (rev 1966) +++ trunk/crossfire/resource/conf/types.xml 2007-03-25 11:03:56 UTC (rev 1967) @@ -196,6 +196,16 @@ <entry bit="6" name="All" /> </bitmask> +<bitmask name="movement" is_named="yes"> + <entry bit="0" name="Walk" encoding="walk" /> + <entry bit="1" name="Fly low" encoding="fly_low" /> + <entry bit="2" name="Fly high" encoding="fly_high" /> + <entry bit="3" name="Swim" encoding="swim" /> + <entry bit="4" name="Boat" encoding="boat" /> + <entry value="6" name="Flying" encoding="flying" /> + <entry value="31" name="All" encoding="all" /> +</bitmask> + <!--###################### list definitions ######################--> <list name="direction"> @@ -927,9 +937,9 @@ times, to avoid players being completely immune to certain types of attacks. </attribute> - <attribute arch="flying" editor="levitate" type="bool"> - As soon as the player applies a piece of equipment with - <levitate> set, the player will start to float in the air. + <attribute arch="move_type" editor="granted movement" type="bitmask_movement"> + As soon as the player applies a piece of equipment, the player will start + using the granted movement types. </attribute> <attribute arch="path_attuned" editor="attuned paths" type="bitmask_spellpath"> Click on the <attuned paths> button to select spellpaths. @@ -2952,9 +2962,9 @@ a randomly chosen item from the inventory. When generator is destroyed, inventory is destroyed. </attribute> - <attribute arch="flying" editor="flying" type="bool"> - Flying monsters won't get slowed down in rough terrain - and they won't be affected by movers. + <attribute arch="move_type" editor="movement type" type="bitmask_movement"> + Determines which movement types this monster can use. Flying monsters won't + get slowed down in rough terrain and they won't be affected by movers. </attribute> <attribute arch="undead" editor="undead" type="bool"> Several spells only affect undead monsters: @@ -3397,6 +3407,9 @@ route! Note that it's useful to set this NPC immune to everything, preventing the player to push the NPC off his trace. </attribute> + <attribute arch="move_type" editor="movement type" type="bitmask_movement"> + Determines which movement types this mover affects. + </attribute> <attribute arch="walk_on" editor="move walking creatures" type="bool"> This should always be set. </attribute> @@ -4333,6 +4346,9 @@ If it is set, the monster or player knows the skill natively, which means he does not need a skill tool to use it. </attribute> + <attribute arch="move_type" editor="movement type" type="bitmask_movement"> + Determines which movement types this skill grants. + </attribute> </type> <!--####################################################################--> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2007-03-25 12:02:13
|
Revision: 1968 http://svn.sourceforge.net/gridarta/?rev=1968&view=rev Author: akirschbaum Date: 2007-03-25 05:02:14 -0700 (Sun, 25 Mar 2007) Log Message: ----------- Many spelling corrections in game object attributes dialog. Modified Paths: -------------- trunk/crossfire/ChangeLog trunk/crossfire/resource/conf/types.xml Modified: trunk/crossfire/ChangeLog =================================================================== --- trunk/crossfire/ChangeLog 2007-03-25 11:03:56 UTC (rev 1967) +++ trunk/crossfire/ChangeLog 2007-03-25 12:02:14 UTC (rev 1968) @@ -1,5 +1,7 @@ 2007-03-24 Andreas Kirschbaum + * Many spelling corrections in game object attributes dialog. + * Fix part of #1555837 (Doesn't support new move_type system): add 'move_type' game object attribute. Modified: trunk/crossfire/resource/conf/types.xml =================================================================== --- trunk/crossfire/resource/conf/types.xml 2007-03-25 11:03:56 UTC (rev 1967) +++ trunk/crossfire/resource/conf/types.xml 2007-03-25 12:02:14 UTC (rev 1968) @@ -45,13 +45,13 @@ # # # bool - This attribute can only be set to '1' or '0' # # int - This attribute contains a decimal number # -# float - This attr. contains a floating point number # +# float - This attribute contains a floating point number # # string - This attribute contains a string # # text - This attribute contains a text ("text" can have # -# linebreaks, unlike "string") # +# line breaks, unlike "string") # # fixed - This attribute is always set to a fixed 'value' # # (There is no user-input for this attribute) # -# spell - This attribute contains a spell. The mapmaker can # +# spell - This attribute contains a spell. The map maker can # # choose spells from a combo box. # # nz_spell - works just like 'spell', except that the # # spell-value zero is always interpreted as <none>, # @@ -191,7 +191,7 @@ <entry bit="1" name="Wealth" /> <entry bit="2" name="Food" /> <entry bit="3" name="Weapons" /> - <entry bit="4" name="Armour" /> + <entry bit="4" name="Armor" /> <entry bit="5" name="Inverse" /> <entry bit="6" name="All" /> </bitmask> @@ -262,7 +262,7 @@ <entry value="13" name="singing" /> <entry value="14" name="detect curse" /> <entry value="15" name="find traps" /> - <entry value="16" name="mediatation" /> + <entry value="16" name="meditation" /> <entry value="17" name="punching" /> <entry value="18" name="flame touch" /> <entry value="19" name="karate" /> @@ -360,7 +360,7 @@ </attribute> <attribute arch="nrof" editor="number" type="int"> This value determines the number of objects in one stack (for example: - 100 goldcoins => "number = 100"). You should set this at least to one, for + 100 gold coins => "number = 100"). You should set this at least to one, for any pickable object - otherwise it won't be mergeable into a stack. </attribute> <attribute arch="weight" editor="weight" type="int"> @@ -409,7 +409,7 @@ </attribute> <attribute arch="blocksview" editor="block view" type="bool"> If an item is set to block view, players (and monsters) cannot - see byond it unless they cross it or manage to stand ontop. + see beyond it unless they cross it or manage to stand on top. </attribute> <attribute arch="identified" editor="identified" type="bool"> If an item is identified, the player has full knowledge about it. @@ -504,7 +504,7 @@ <br><br> A particularly nice feature of abilities is that they can hold two spells: One for short range- and one for long range use. - \n\n + <br><br> You should know that spellcasting monsters receive abilities via <treasurelist>. ]]> </description> @@ -517,7 +517,7 @@ You should keep in mind that magic abilities allow players to get better resistance. You can turn off the magic part to make the spells more dangerous. However, this really shouldn't - be neccessary unless you work on very high level maps. + be necessary unless you work on very high level maps. And what fun is a magic resistance cloak when it has no effect? ]]> </use> <attribute arch="invisible" value="1" type="fixed" /> @@ -615,11 +615,11 @@ </description> <use><![CDATA[ Altar_triggers are very useful if you want to charge a price for... - <UL> - <LI> ...an item. -> Connect the altar_trigger (set "last_sp 1") to a creator. - <LI> ...opening a gate. -> Connect the altar_trigger (set "last_sp 0") to the gate. - <LI> ...information. -> Connect the altar_trigger (set "last_sp 1") to a magic_mouth. - </UL> + <ul> + <li> ...an item. -> Connect the altar_trigger (set "last_sp 1") to a creator. + <li> ...opening a gate. -> Connect the altar_trigger (set "last_sp 0") to the gate. + <li> ...information. -> Connect the altar_trigger (set "last_sp 1") to a magic_mouth. + </ul> The big advantage over normal altars is the infinite usability of altar_triggers! If there are ten players on one server, they're quite grateful if things work more than once. =) ]]> @@ -687,15 +687,15 @@ Feel free to create your own special artifacts. However, it is very important that you keep your artifact in balance with existing maps. ]]> </use> - <attribute arch="ac" editor="armour class" type="int"> - This value defines the amount of armour-class bonus for wearing - this item. <Armour class> lessens the chance of being hit. Lower - values are better. It should usually be set only for armour-like equipment. + <attribute arch="ac" editor="armor class" type="int"> + This value defines the amount of armor-class bonus for wearing + this item. <Armor class> lessens the chance of being hit. Lower + values are better. It should usually be set only for armor-like equipment. </attribute> <attribute arch="wc" editor="weapon class" type="int"> The <weapon class> value adds to the overall weapon class of the wielder's melee attacks. Weapon class improves the chance of hitting the opponent. - Weapon class is the "counterpiece" of <armour class>. It should usually + Weapon class is the "counterpiece" of <armor class>. It should usually be set only for weapon-like items. Lower values are better. </attribute> <attribute arch="item_power" editor="item power" type="int"> @@ -744,7 +744,7 @@ </attribute> <section name="resistance"> <attribute arch="resist_physical" editor="resist physical %" length="15" type="int"> - This adds physical resistance to the item (= armour value). The number is + This adds physical resistance to the item (= armor value). The number is a percent-value in the range 0-100. Treat this with CARE. Look at other maps and what they require to do for getting this-and-that artifact. </attribute> @@ -846,7 +846,7 @@ </section> <section name="stats"> <attribute arch="Str" editor="strength" type="int"> - The player's strentgh will rise/fall by the given value + The player's strength will rise/fall by the given value while wearing this piece of equipment. </attribute> <attribute arch="Dex" editor="dexterity" type="int"> @@ -978,7 +978,7 @@ </description> <use><![CDATA[ Battleground is only meant for player vs. player duels. You can - design combat arenas similiar to the one in scorn.<br> + design combat arenas similar to the one in Scorn.<br> What should NEVER be done is placing battleground tiles in open dungeons or other free kinds of land. It must not be possible to gain significant treasure for fighting @@ -1011,7 +1011,7 @@ read if: mental_level greater <literacy level> - 5. Adding level to a book can be a nice idea, personally I like it when a player needs more than his fighting skills to solve a quest. However, keep the - booklevel at least below 15 because it is quite hard to gain high + book level at least below 15 because it is quite hard to gain high mental levels. </attribute> <attribute arch="startequip" editor="godgiven item" type="bool"> @@ -1050,10 +1050,10 @@ <attribute arch="magic" editor="magic bonus" type="int"> <magic bonus> works just like ac, except that it can be improved by "scrolls of Enchant Armour" or reduced by acid. It is less useful - than direct armour-class bonus on the boots. + than direct armor-class bonus on the boots. Important: <magic bonus> on boots has no effect if there is no - <armour class> set. It only works in combination with <armour class>. + <armor class> set. It only works in combination with <armor class>. </attribute> </type> @@ -1061,7 +1061,7 @@ <type number="104" name="Bracers"> <import_type name="Amulet" /> <description><![CDATA[ - Bracers are armour-plates worn around the wrists. + Bracers are armor-plates worn around the wrists. Wearing bracer, the object's stats will directly be inherited to the player. Usually enhancing his defense. ]]> </description> @@ -1072,15 +1072,15 @@ <attribute arch="magic" editor="magic bonus" type="int"> <magic bonus> works just like ac, except that it can be improved by "scrolls of Enchant Armour" or reduced by acid. It is less useful - than direct armour-class bonus on the bracers. + than direct armor-class bonus on the bracers. </attribute> </type> <!--####################################################################--> -<type number="16" name="Brestplate Armour"> +<type number="16" name="Breastplate Armor"> <import_type name="Amulet" /> <description><![CDATA[ - Wearing an armour, the object's stats will directly be inherited to + Wearing an armor, the object's stats will directly be inherited to the player. Usually enhancing his defense. ]]> </description> <use><![CDATA[ @@ -1088,17 +1088,17 @@ important that you keep your artifact in balance with existing maps. ]]> </use> <attribute arch="last_heal" editor="spellpoint penalty" type="int"> - This poses a penalty to spell regeneration speed, for wearing the armour. + This poses a penalty to spell regeneration speed, for wearing the armor. The bigger the spellpoint penalty, the worse. </attribute> <attribute arch="last_sp" editor="slowdown penalty" type="int"> Slowdown penalty reduces the player's walking speed when wearing the - armour. Bigger values are worse - zero is best. + armor. Bigger values are worse - zero is best. </attribute> <attribute arch="magic" editor="magic bonus" type="int"> <magic bonus> works just like ac, except that it can be improved by "scrolls of Enchant Armour" or reduced by acid. It is less useful - than direct armour-class bonus on the armour. + than direct armor-class bonus on the armor. </attribute> </type> @@ -1111,14 +1111,14 @@ When a predefined amount of weigh is placed on a button, the <connection> value is triggered. In most cases this happens when a player or monster steps on it. When the button is "released", the - <connection> value get's triggered a second time. ]]> + <connection> value gets triggered a second time. ]]> </description> <attribute arch="walk_on" value="1" type="fixed" /> <attribute arch="walk_off" value="1" type="fixed" /> <attribute arch="no_pick" value="1" type="fixed" /> <attribute arch="weight" editor="press weight" type="int"> The button is pressed (triggered), as soon as - <press weigh> gram are placed ontop of it. + <press weigh> gram are placed on top of it. </attribute> <attribute arch="connected" editor="connection" type="int"> Every time the button is pressed or released, all objects @@ -1191,7 +1191,7 @@ <import_type name="Amulet" /> <description><![CDATA[ Wearing a cloak, the object's stats will directly be inherited to - the player. Cloaks usually add minor <armour class> and + the player. Cloaks usually add minor <armor class> and sometimes a bit of resistance. ]]> </description> <use><![CDATA[ @@ -1201,10 +1201,10 @@ <attribute arch="magic" editor="magic bonus" type="int"> <magic bonus> works just like ac, except that it can be improved by "scrolls of Enchant Armour" or reduced by acid. It is less useful - than direct armour-class bonus on the cloak. + than direct armor-class bonus on the cloak. Important: <magic bonus> on cloaks has no effect if there is no - <armour class> set. It only works in combination with <armour class>. + <armor class> set. It only works in combination with <armor class>. </attribute> </type> @@ -1226,17 +1226,17 @@ container, depending on the settings. <br><br> A special feature of containers is the "cauldron", - capable of mixing alchemical receipes. ]]> + capable of mixing alchemical recipes. ]]> </description> <use><![CDATA[ Note on chests - There are two types of chests: - <UL> - <LI> First the random treasure chests - Those are NOT containers + <ul> + <li> First the random treasure chests - Those are NOT containers (but object type Treasure), they create random treasures when applied. Archetype name is "chest". - <LI> Second there are the permanent chests - Those are containers, + <li> Second there are the permanent chests - Those are containers, they can be opened and closed again. Archetype name is "chest_2". - </UL> ]]> + </ul> ]]> </use> <attribute arch="race" editor="container class" type="string"> If set, the container will hold only certain types of objects. @@ -1353,7 +1353,7 @@ </description> <use><![CDATA[ Don't hesitate to hide your creators under the floor. - The created items will still always appear ontop of the floor. ]]> + The created items will still always appear on top of the floor. ]]> </use> <attribute arch="no_pick" value="1" type="fixed" /> <attribute arch="other_arch" editor="create arch" type="string"> @@ -1367,13 +1367,13 @@ Whenever the connection value is activated, the creator gets triggered. </attribute> - <attribute arch="lifesave" editor="infinit uses" type="bool"> - If <infinit uses> is set, the creator will work + <attribute arch="lifesave" editor="infinite uses" type="bool"> + If <infinite uses> is set, the creator will work infinitely, regardless of the value in <number of uses>. </attribute> <attribute arch="hp" editor="number of uses" type="int"> The creator can be triggered <number of uses> times, thus - creating that many objects, before it dissappears. + creating that many objects, before it disappears. Default is <number of uses> 1 (-> one-time usage). </attribute> <attribute arch="slaying" editor="name of creation" type="string"> @@ -1393,18 +1393,18 @@ <ignore_list name="system_object" /> </ignore> <description><![CDATA[ - Detectors work quite much like inv. checkers/pedestals: If the detector + Detectors work quite much like inventory checkers/pedestals: If the detector finds a specific object, it toggles its connected value. <br><br> - What is "unique" about them, compared to inv. checkers/ pedestals? + What is "unique" about them, compared to inventory checkers/ pedestals? - First, detectors check their square for a match periodically, not instantly. Second, detectors check directly for object names. Third, detectors do not check the inventory of players/monsters. ]]> </description> <use><![CDATA[ There is one major speciality about detectors: You can detect spells - blown over a detector! To detect a lighting bolt for example, set - "slaying ligthing" and "speed 1.0". In combination with spellcasting + blown over a detector! To deetect a lighting bolt for example, set + "slaying lighting" and "speed 1.0". In combination with spellcasting walls, this can be very useful for map-mechanisms. ]]> </use> <attribute arch="no_pick" value="1" type="fixed" /> @@ -1440,8 +1440,8 @@ Directors are rarely used in maps. Sometimes they are placed to change the direction of spells coming out of magic walls, "channeling" spell-projectiles in some direction. When doing this, - <B>never place directors facing each other with magic walls fireing - into them!</B> The spell-projectiles bouncing between the directors + <b>never place directors facing each other with magic walls firing + into them!</b> The spell-projectiles bouncing between the directors would accumulate to huge numbers and at some point slow down the server by eating memory- and CPU-time. <br><br> @@ -1463,7 +1463,7 @@ <ignore_list name="system_object" /> </ignore> <description><![CDATA[ - Diseases are an intersting form of spellcraft in Crossfire. + Diseases are an interesting form of spellcraft in Crossfire. Once casted, they can spread out and infect creatures in a large area. Being infected can have various effects, from amusing farts to horrible damage - almost everything is possible. ]]> @@ -1479,7 +1479,7 @@ <attribute arch="level" editor="plaque level" type="int"> The <plaque level> is proportional to the disease's deadliness. This mainly reflects in the <damage>. It has no effect on - most other symptoms. Neverthless, it is a very important value for + most other symptoms. Nevertheless, it is a very important value for all damage-inflicting diseases. </attribute> <attribute arch="race" editor="infect race" type="string"> @@ -1488,19 +1488,19 @@ </attribute> <attribute arch="ac" editor="progressiveness" type="int"> Every time the disease "moves" the severity of the symptoms are increased - by <progressiveness>/100. (severity = 1 + (accumlated progression)/100) + by <progressiveness>/100. (severity = 1 + (accumulated progression)/100) </attribute> <section name="spreading"> - <attribute arch="wc" editor="infectiosness" type="int"> - The <infectiosness> defines the chance of new creatures getting + <attribute arch="wc" editor="infectiousness" type="int"> + The <infectiousness> defines the chance of new creatures getting infected. If you set this too high, the disease is very likely to be too effective. - <infectiosness>/127 is the chance of someone in range catching it. + <infectiousness>/127 is the chance of someone in range catching it. </attribute> <attribute arch="last_grace" editor="attenuation" type="int"> - The <attenuation> value reduces the diseases' <infectiosness> - everytime it infects someone new. This limits how many generations + The <attenuation> value reduces the diseases' <infectiousness> + every time it infects someone new. This limits how many generations a disease can propagate. </attribute> <attribute arch="magic" editor="infection range" type="int"> @@ -1637,9 +1637,9 @@ <attribute arch="hp" editor="hitpoints" type="int"> The more <hitpoints> the door has, the longer it takes to be broken. </attribute> - <attribute arch="ac" editor="armour class" type="int"> - Doors of high <armour class> are less likely to get hit. - <armour class> can be considered the "counterpiece" to + <attribute arch="ac" editor="armor class" type="int"> + Doors of high <armor class> are less likely to get hit. + <armor class> can be considered the "counterpiece" to <weapon class>. </attribute> <attribute arch="other_arch" editor="drop arch" type="string"> @@ -1675,7 +1675,7 @@ loosing rate of 2/3 = 67%. ]]> </use> <attribute arch="other_arch" editor="target arch" type="string"> - Only objects of matching archtype, lying ontop of the duplicator will be + Only objects of matching archetype, lying on top of the duplicator will be duplicated, multiplied or removed. All other objects will be ignored. </attribute> <attribute arch="level" editor="multiply factor" type="int"> @@ -1734,7 +1734,7 @@ detected with the show_invisible spell. <br><br> You can be quite creative with the outlook of secret exits (their "face"). - Don't forget to give the player relyable hints about them though. ]]> + Don't forget to give the player reliable hints about them though. ]]> </use> <attribute arch="slaying" editor="exit path" type="string"> The exit path defines the map that the player is transferred to. @@ -1776,12 +1776,12 @@ <attribute arch_begin="msg" arch_end="endmsg" editor="exit message" type="text"> If set, this message will be displayed to the player when he applies the exit. This is quite useful to throw in some "role-play feeling": "As you enter the - dark cave you hear the sound of rustling dragonscales...". Well, my english + dark cave you hear the sound of rustling dragonscales...". Well, my English is poor, but you get the point. =) </attribute> <attribute arch="unique" editor="unique destination" type="bool"> This flag defines the destined map as "personal unique map". If set, - there will be a seperate version of that map for every player out there. + there will be a separate version of that map for every player out there. This feature is used for the permanent apartments (in Scorn/Nuernberg/Caterham...). It should not be used for anything else than apartments, since Crossfire is a *multi*player game. In such a permanent @@ -1795,11 +1795,11 @@ <!--####################################################################--> <type number="72" name="Flesh"> <description><![CDATA[ - Just like with food, the player can fill his stomache and gain a + Just like with food, the player can fill his stomach and gain a little health by eating flesh-objects. <br> For dragon players, flesh plays a very special role though: If the flesh has resistances set, a dragon player has a chance to gain resistance in - those cathegories. The only constraint to this process is the <flesh level>. + those categories. The only constraint to this process is the <flesh level>. Don't forget that flesh items with resistances have to be balanced according to map/monster difficulty. ]]> </description> @@ -1812,11 +1812,11 @@ <br><br> Generally adding special flesh-treaties for dragon players is a great thing to do. Always consider that dragon players might really not be interested - in that special piece of weapon or armour, so don't let the dragon-fellows miss + in that special piece of weapon or armor, so don't let the dragon-fellows miss out on the reward completely. ]]> </use> <attribute arch="food" editor="foodpoints" type="int"> - The player's stomache will get filled with this amount of foodpoints. + The player's stomach will get filled with this amount of foodpoints. The player's health will increase by <foodpoints>/50 hp. </attribute> <attribute arch="level" editor="flesh level" type="int"> @@ -1922,7 +1922,7 @@ items in a monster's inventory. </attribute> <attribute arch="resist_death" editor="resist death-attack %" length="15" type="int"> - RResistances on flesh items make them more durable against spellcraft + Resistances on flesh items make them more durable against spellcraft of the appropriate kind. It also allows dragon players to eventually gain resistance by eating it. Usually resistance should only be set for flesh items in a monster's inventory. @@ -1955,7 +1955,7 @@ <ignore_list name="non_pickable" /> </ignore> <description><![CDATA[ - Floor is a very basic thing whithout too much + Floor is a very basic thing without too much functionality. It's a floor - you stand on it. ]]> </description> <attribute arch="is_floor" value="1" type="fixed" /> @@ -1992,7 +1992,7 @@ </attribute> <attribute arch="unique" editor="unique map" type="bool"> Unique floor means that any items dropped on that spot - will be saved byond map reset. For permanent apartments, + will be saved beyond map reset. For permanent apartments, all floor tiles must be set <unique map>. </attribute> <attribute arch_begin="msg" arch_end="endmsg" editor="description" type="text"> @@ -2047,7 +2047,7 @@ </attribute> <attribute arch="unique" editor="unique map" type="bool"> Unique floor means that any items dropped on that spot - will be saved byond map reset. For permanent apartments, + will be saved beyond map reset. For permanent apartments, all floor tiles must be set <unique map>. </attribute> <attribute arch_begin="msg" arch_end="endmsg" editor="description" type="text"> @@ -2059,10 +2059,10 @@ <type number="6" name="Food"> <description><![CDATA[ By eating/drinking food-objects, the player can fill his - stomache and gain a little health. ]]> + stomach and gain a little health. ]]> </description> <attribute arch="food" editor="foodpoints" type="int"> - The player's stomache will get filled with this amount of foodpoints. + The player's stomach will get filled with this amount of foodpoints. The player's health will increase by <foodpoints>/50 hp. </attribute> <attribute arch="startequip" editor="godgiven item" type="bool"> @@ -2084,7 +2084,7 @@ passed, which makes them more practical in many cases. ]]> </description> <use><![CDATA[ - Use gates to divide your maps into seperated areas. After solving + Use gates to divide your maps into separated areas. After solving area A, the player gains access to area B, and so on. Make your maps more complex than "one-way". ]]> </use> @@ -2129,10 +2129,10 @@ <attribute arch="magic" editor="magic bonus" type="int"> <magic bonus> works just like ac, except that it can be improved by "scrolls of Enchant Armour" or reduced by acid. It is less useful - than direct armour-class bonus on the helmet. + than direct armor-class bonus on the helmet. Important: <magic bonus> on girdles has no effect if there is no - <armour class> set. Girdles shouldn't have <armour class>, thus + <armor class> set. Girdles shouldn't have <armor class>, thus <magic bonus> is pointless here. </attribute> </type> @@ -2149,7 +2149,7 @@ important that you keep your artifact in balance with existing maps. ]]> </use> <attribute arch="magic" editor="magic bonus" type="int"> - If the gloves provide <armour class>, <magic bonus> will increase it. + If the gloves provide <armor class>, <magic bonus> will increase it. If the gloves have <weapon class> instead, then <magic bonus> will increase that. </attribute> @@ -2224,7 +2224,7 @@ <attribute arch="walk_on" value="1" type="fixed" /> <attribute arch="no_pick" value="1" type="fixed" /> <attribute arch="attacktype" editor="attacktype" type="bitmask_attacktype"> - This attribute specifys the attacktypes that this floor uses to + This attribute specifies the attacktypes that this floor uses to damage it's victims. Attacktypes are: physical, fire, cold.. etc. If you want a real tough hazard floor, add more than just one attacktype. </attribute> @@ -2233,11 +2233,11 @@ victim per hit. The final damage is influenced by several other factors like the victim's resistance and level. </attribute> - <attribute arch="wc" editor="weaponclass" type="int"> + <attribute arch="wc" editor="weapon class" type="int"> <weapon class> improves the chance of hitting the victim. Lower values are better. Usually, hazard floors like lava are supposed to hit the - victim all the time. Therefore, <weaponclass> should be set + victim all the time. Therefore, <weapon class> should be set to something like -30. </attribute> <attribute arch="level" editor="attack level" type="int"> @@ -2274,7 +2274,7 @@ </attribute> <attribute arch="unique" editor="unique map" type="bool"> Unique floor means that any items dropped on that spot - will be saved byond map reset. For permanent apartments, + will be saved beyond map reset. For permanent apartments, all floor tiles must be set <unique map>. </attribute> </type> @@ -2295,10 +2295,10 @@ <attribute arch="magic" editor="magic bonus" type="int"> <magic bonus> works just like ac, except that it can be improved by "scrolls of Enchant Armour" or reduced by acid. It is less useful - than direct armour-class bonus on the helmet. + than direct armor-class bonus on the helmet. Important: <magic bonus> on helmets has no effect if there is no - <armour class> set. It only works in combination with <armour class>. + <armor class> set. It only works in combination with <armor class>. Crowns for instance typically provide no <amour class>. </attribute> </type> @@ -2343,7 +2343,7 @@ spellpoints faster and thus are more valuable than rods. <br><br> A horn contains a spell. The player can use this spell by applying and - "fireing" (blowing) the horn. Unlike wands/scrolls, horns can be + "firing" (blowing) the horn. Unlike wands/scrolls, horns can be used endlessly. ]]> </description> <use><![CDATA[ @@ -2384,7 +2384,7 @@ <type number="73" name="Inorganic"> <description><![CDATA[ Inorganic materials are generally used as ingredients for - alchemical receipes. By themselves, they have no special + alchemical recipes. By themselves, they have no special functionalities. ]]> </description> <attribute arch="is_dust" editor="is dust" type="bool"> @@ -2426,20 +2426,20 @@ Inventory checkers passively check the players inventory for a specific object. You can set a connected value that is triggered either if that object is present or missing (-> "last_sp") when a - player walks over the inv. checker. A valid option is to remove the + player walks over the inventory checker. A valid option is to remove the matching object (usually not recommended, see "last_heal"). <br><br> - Alternatively, you can set your inv. checker to block all players + Alternatively, you can set your inventory checker to block all players that do/don't carry the matching object (-> "no_pass"). <br><br> - As you can see, inv. checkers are quite powerful, holding a + As you can see, inventory checkers are quite powerful, holding a great variety of possibilities. ]]> </description> <use><![CDATA[ Putting a check_inventory space in front of a gate (one below) and one on the opposite side works reasonably well as a control mechanism. Unlike the key/door-combo, this one works infinite since it is - independant from map reset. Use it to put a "structure" into your + independent from map reset. Use it to put a "structure" into your maps: Player must solve area A to gain access to area B. This concept can be found in nearly every RPG - simple but effective. ]]> </use> @@ -2448,18 +2448,18 @@ This string specifies the object we are looking for: We have a match if the player does/don't carry a key object or a mark with identical <key string>. Note that key objects usually appear as "passports" in - this context. A typical example is the city gate mechanism of scorn. + this context. A typical example is the city gate mechanism of Scorn. </attribute> <attribute arch="race" editor="match arch name" type="string"> This string specifies the object we are looking for: We have a match - if the player does/don't carry an object of archtype <match arch name>. + if the player does/don't carry an object of archetype <match arch name>. </attribute> <attribute arch="hp" editor="match type" type="int"> This value specifies the object we are looking for: We have a match if the player does/don't carry an object that is of type <match type>. Example: Set <match type> 15 (type 15 => weapon) and <blocking passage> - enabled. Now you have an inv. checker blocking all players that carry any + enabled. Now you have an inventory checker blocking all players that carry any kind of melee weapon. To pass, a player is forced to leave behind all his weaponry... bad news for a warrior. ;) </attribute> @@ -2479,7 +2479,7 @@ </attribute> <attribute arch="last_heal" editor="remove match" type="bool"> <remove match> means remove object if found. Setting this is usually not - recommended because inv. checkers are in general invisible. So, unlike + recommended because inventory checkers are in general invisible. So, unlike for altars/ locked doors, the player won't expect to lose an object when walking over that square. And he doesn't even get a message either. @@ -2562,12 +2562,12 @@ </description> <use><![CDATA[ If you want to create a locked door that cannot be opened (no key), - set a <key string> like "no_key_available". This will clearify things + set a <key string> like "no_key_available". This will clarify things and only a fool would create a key matching that string. Door-objects can not only be used for "doors". In many maps these are used with all kinds of faces/names, especially often as - "magic force". A good example is the map "Lake_Country/ebony/masterlev". + "magic force". A good example is the map "/lake_country/ebony/masterlev". There you have magic forces (door objects) put under certain artifact items. To get your hands on the artifacts, you need to bring up the appropriate quest items (key objects). ]]> @@ -2578,9 +2578,9 @@ The <key string> in the door must be identical with the <key string> in the special key, then the door is unlocked. It is VERY important to set the <key string> to something that - is unique among the CF mapset. + is unique among the CF map set. - DONT EVER USE the default string "set_individual_value". + DON'T EVER USE the default string "set_individual_value". </attribute> <attribute arch="no_magic" editor="restrict spells" type="bool"> Restricting the use of spells to pass this door. @@ -2611,7 +2611,7 @@ </description> <use><![CDATA[ Whenever you put magic_ears on your maps, make sure there are - CLEAR and RELYABLE hints about the keywords somewhere. Don't make + CLEAR and RELIABLE hints about the keywords somewhere. Don't make something like a gate that is opened by speaking "open" or "sesame", expecting the player to figure this out all by himself. <br><br> @@ -2627,13 +2627,13 @@ same connection value, every time it is activated. </attribute> <attribute arch_begin="msg" arch_end="endmsg" editor="keyword-matching" type="text"> - This textfield contains the keyword-matching-syntax. The text should + This text field contains the keyword-matching-syntax. The text should have the following format: "@match <keyword1>|<keyword2>|... ". Any number of keywords from one to infinite is allowed. Make sure - they are seperated by a '|'. + they are separated by a '|'. Examples: "@match yes", "@match gold|treasure". The connected - value will be triggerd when the player speaks any of the given + value will be triggered when the player speaks any of the given keywords within a two-square radius. IMPORTANT: Upper/lower case does not make a difference! </attribute> @@ -2716,9 +2716,9 @@ <max hitpoints> are the maximum amount of hitpoints the wall can have. This only makes sense if the wall can regain health. </attribute> - <attribute arch="ac" editor="armour class" type="int"> - A magic wall of high <armour class> is less likely to get hit from - an opponent. <armour class> can be considered the "counterpiece" + <attribute arch="ac" editor="armor class" type="int"> + A magic wall of high <armor class> is less likely to get hit from + an opponent. <armor class> can be considered the "counterpiece" to <weapon class>. </attribute> </section> @@ -2795,7 +2795,7 @@ </use> <attribute arch="no_pick" value="1" type="fixed" /> <attribute arch="slaying" editor="key string" type="string"> - The <key string> can be detected by inv. checkers/detectors. + The <key string> can be detected by inventory checkers/detectors. If the player already has a force with that <key string>, there won't be inserted a second one. </attribute> @@ -2819,7 +2819,7 @@ When the player steps onto the marker, all existing forces in the players inventory with a <key string> matching <delete mark> will be removed. If you don't want to remove any marks, leave - this textfield empty. + this text field empty. Note that the string <delete mark> is set as the name of this marker. So don't be confused, and remember changing the @@ -2869,40 +2869,40 @@ Monsters can behave in various kinds of ways. They can be aggressive, attacking the player. Or peaceful, helping the player - maybe joining him as pet. - The unagressive creatures who communicate with players are + The unaggressive creatures who communicate with players are usually called "NPCs" (Non Player Character), a well-known term in role-play environments. ]]> </description> <use><![CDATA[ Monsters play a central role in most maps. Choosing the right combination of monsters for your map is vital: - <UL> - <LI> Place only monsters of slightly varying (increasing) strength. + <ul> + <li> Place only monsters of slightly varying (increasing) strength. It's no fun to play for two hours just to find out the last monster is unbeatable. Similar, it's not exciting to fight orcs after passing a room of dragons.<br> This rule applies only for linear maps (one room after the other), with treasure at the end. You can sprinkle the treasure around, or make non-linear maps - That is often more entertaining. - <LI> Places with high level monsters must not be easy to reach. + <li> Places with high level monsters must not be easy to reach. Balrogs, Dragonmen and the likes should be at the end of a quest, not at the beginning. - <LI> Don't stick monsters together that tend to kill each other. + <li> Don't stick monsters together that tend to kill each other. Fire- and cold dragons in one room for example is a bad idea. By weakening and killing each other they are easy prey for players, not worth the experience they hold. - <LI> Create your own monsters, especially for "boss"-type monsters. + <li> Create your own monsters, especially for "boss"-type monsters. Having stage-bosses guarding treasure is a lot of fun when done right. Avoid to create monsters with completely non-intuitive abilities: - Don't give ice-spells to firedragons or vice versa. Don't add + Don't give ice-spells to fire dragons or vice versa. Don't add draining attack to trolls, etc. Additionally, you should inform the player before he bumps right into some very special/unusual monster. - <LI> Last but not least: Always keep an eye on the experience your monsters + <li> Last but not least: Always keep an eye on the experience your monsters hold. Design your maps in a way that high experience is always well-defended. Don't make large rooms full with only one kind of monster. Keep in mind the different abilities/techniques players can use. - </UL> + </ul> I know it's impossible to make the perfectly balanced map. There's always some part which is found too easy or too hard for a certain kind of player. Just give it your best shot. And listen to feedback from players if you @@ -2923,17 +2923,17 @@ <level> affects the power of a monster in various ways. </attribute> <attribute arch="race" editor="race" type="string"> - Every monster should have a race set to cathegorize it. + Every monster should have a race set to categorize it. The monster's <race> can have different effects: - Slaying weapons inflict tripple damage against enemy races + Slaying weapons inflict triple damage against enemy races and holy word kills only enemy races of the god. </attribute> <attribute arch="exp" editor="experience" type="int"> When a player kills this monster, he will get exactly this amount of <experience>. The experience will flow into - the skill-cathegory the player used for the kill. + the skill-category the player used for the kill. - If you create special monsters of tweaked strenght/abilities, + If you create special monsters of tweaked strength/abilities, always make sure that the <experience> is set to a reasonable value. Compare with existing arches to get a feeling what reasonable means. Keep in mind that spellcasting monsters @@ -2982,7 +2982,7 @@ for melee damage. Attacktypes are: physical, magical, fire, cold.. etc. Strong monsters often have more than just physical attacktype. - When a monster with multiple attacktypes hits aan oponent, it will do + When a monster with multiple attacktypes hits an opponent, it will do as much damage as the "best" of it's attacktypes does. So, the more attacktypes, the more dangerous. Attacktypes "magic" and "chaos" are somehow exceptions. @@ -2996,7 +2996,7 @@ <attribute arch="wc" editor="weapon class" type="int"> Monsters of high <weapon class> are more likely to really hit their opponent. <weapon class> can be considered the "counterpiece" - to <armour class>. + to <armor class>. </attribute> <attribute arch="hp" editor="health points" type="int"> The <health points> of a monster define how long it takes to @@ -3007,9 +3007,9 @@ <max health> is the maximum amount of <health points> this monster can have. </attribute> - <attribute arch="ac" editor="armour class" type="int"> - Monsters of low <armour class> are less likely to get hit from - their opponent. <armour class> can be considered the "counterpiece" + <attribute arch="ac" editor="armor class" type="int"> + Monsters of low <armor class> are less likely to get hit from + their opponent. <armor class> can be considered the "counterpiece" to <weapon class>. Values typically range between +20 (very bad) to -20 (quite good). </attribute> @@ -3031,7 +3031,7 @@ Acid spheres for example use this feature. </attribute> <attribute arch="one_hit" editor="one hit only" type="bool"> - Monsters with <one hit only> dissapear after one successful hit + Monsters with <one hit only> disappear after one successful hit to a player. </attribute> </section> @@ -3087,7 +3087,7 @@ <section name="ability"> <attribute arch="Int" editor="detect hidden" type="int"> - The <detect hidden> value gives monsters the ablitity to find + The <detect hidden> value gives monsters the ability to find hidden/invisible creatures. Higher values make for better detection-skills. Enabling <see invisible> makes this value obsolete. @@ -3110,9 +3110,9 @@ <attribute arch="can_use_bow" editor="can use bows" type="bool"> Monster is able to use missile-weapon type objects. </attribute> - <attribute arch="can_use_armour" editor="can use armour" type="bool"> - Monster is able to wear protective equipment like brestplate - armour, shields, helmets etc. + <attribute arch="can_use_armour" editor="can use armor" type="bool"> + Monster is able to wear protective equipment like breastplate + armor, shields, helmets etc. </attribute> <attribute arch="can_use_ring" editor="can use rings" type="bool"> Monster is able to wear rings. @@ -3134,13 +3134,13 @@ </section> <section name="behave"> - <attribute arch="monster" editor="monster behaviour" type="bool"> - When <monster behaviour> is enabled, this object will behave + <attribute arch="monster" editor="monster behavior" type="bool"> + When <monster behavior> is enabled, this object will behave like a monster: It can move and attack enemies (which are typically players). This flag should be set for all monsters as-such. Monsters which don't move, like guards, should also have - <monster behaviour>, but in combination with <stand still>. + <monster behavior>, but in combination with <stand still>. It should *not* be set for things like immobile generators. </attribute> <attribute arch="unaggressive" editor="unaggressive" type="bool"> @@ -3152,12 +3152,12 @@ </attribute> <attribute arch="stand_still" editor="stand still" type="bool"> Monsters which <stand still> won't move to leave their position. - When agressive, they will attack all enemies who get close to - them. This behaviour is commonly known from castle guards. + When aggressive, they will attack all enemies who get close to + them. This behavior is commonly known from castle guards. In older versions of Crossfire it was possible to eventually push a <stand still>-monster out of position by force. - I believe this is no longer possible. Neverthless, you should + I believe this is no longer possible. Nevertheless, you should still be cautious when lining up <stand still>-monster in order to "defend" something: Such monsters are rather easy to kill. It's good for low level maps, but not much more. @@ -3273,8 +3273,8 @@ </ignore> <description><![CDATA[ As the name implies, mood floors can change the "mood" of - a monsters/NPC. For example, an unagressive monster could be - turned mad to start attacking. Similar, an agressive monster + a monsters/NPC. For example, an unaggressive monster could be + turned mad to start attacking. Similar, an aggressive monster could be calmed. ]]> </description> <use><![CDATA[ @@ -3306,7 +3306,7 @@ <mood> 'charm': Turns monster into a pet of person who triggers the square. This setting is not - enabled for continous operation, you need to + enabled for continuous operation, you need to insert a <connection> value! </attribute> <attribute arch="connected" editor="connection" type="int"> @@ -3339,14 +3339,14 @@ are affected (monsters/NPCs always, players optional). Movers have a direction, so players can be made to move in a pattern, and so can monsters. Motion is involuntary. Additionally, players or - monsters can be "frozen" while ontop of movers so that they MUST + monsters can be "frozen" while on top of movers so that they MUST move along a chain of them. <br><br> Multisquare monsters can be moved as well, given enough space. Movers are usually invisible. ]]> </description> <use><![CDATA[ - NEVER EVER consider a mover being unpassable in the backwards + NEVER EVER consider a mover being impassable in the backwards direction. Setting "forced movement" makes it seemingly impossible but there is still a trick: One player can push a second player past the mover, in opposite to the mover's direction! The more @@ -3357,7 +3357,7 @@ below the floor. Moreover, movers that are set to be invisible cannot be discovered with the show_invisible spell. <br><br> - Note that Movers and Directors are seperate objects, even though + Note that Movers and Directors are separate objects, even though they look and act similar. Directors only do spells/missiles, while movers only do living creatures (depending on how it is set: monsters and players). ]]> @@ -3507,7 +3507,7 @@ </attribute> <attribute arch="fly_on" editor="swallow flying" type="bool"> If set, all flying creatures will fall into the pit as well. - This is not the behaviour expected from a pit, and it should + This is not the behavior expected from a pit, and it should only be used for map-mechanisms (e.g. for transporting flying monsters). An interesting side-effect: If this flag is enabled, spell @@ -3518,7 +3518,7 @@ <!--####################################################################--> <type number="7" name="Poison Food"> <description><![CDATA[ - When eating, the player's stomache is drained by 1/4 of food. + When eating, the player's stomach is drained by 1/4 of food. If his food drops to zero, the player might even die. ]]> </description> </type> @@ -3560,7 +3560,7 @@ </attribute> <section name="stats"> <attribute arch="Str" editor="strength" type="int"> - The player's strentgh will rise/fall by the given value for permanent + The player's strength will rise/fall by the given value for permanent (of course there is an upper limit). Generally there shouldn't be stat potions granting more than one stat. Cursed potions will subtract the stats if positive. @@ -3605,73 +3605,73 @@ <section name="resistance"> <attribute arch="resist_physical" editor="resist physical %" length="15" type="int"> The player's resistance to physical will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_magic" editor="resist magic %" length="15" type="int"> The player's resistance to magic will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_fire" editor="resist fire %" length="15" type="int"> The player's resistance to fire will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_electricity" editor="resist electricity %" length="15" type="int"> The player's resistance to electricity will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_cold" editor="resist cold %" length="15" type="int"> The player's resistance to cold will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_acid" editor="resist acid %" length="15" type="int"> The player's resistance to acid will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_confusion" editor="resist confusion %" length="15" type="int"> The player's resistance to confusion will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_weaponmagic" editor="resist weaponmagic %" length="15" type="int"> The player's resistance to weaponmagic will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_paralyze" editor="resist paralyze %" length="15" type="int"> The player's resistance to paralyze will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_drain" editor="resist draining %" length="15" type="int"> The player's resistance to draining will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_deplete" editor="resist depletion %" length="15" type="int"> The player's resistance to depletion will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> <attribute arch="resist_poison" editor="resist poison %" length="15" type="int"> The player's resistance to poison will rise by this value in percent - (range -100 till +100). The effect is only temporare, and it does NOT + (range -100 till +100). The effect is only temporary, and it does NOT add on the values from the player's equipment. Cursed potions will make negative resistance.. very nasty in combat! </attribute> @@ -3710,10 +3710,10 @@ </description> <use><![CDATA[ If you want to create new kinds of projectiles, you could - add an alchemical receipe to create these. + add an alchemical recipe to create these. Don't create new pairs of weapons & projectiles unless - they really fullfill a useful purpose. In fact, even bows + they really fulfill a useful purpose. In fact, even bows and crossbows are rarely ever used. ]]> </use> <attribute arch="attacktype" editor="attacktype" type="bitmask_attacktype"> @@ -3735,18 +3735,18 @@ by setting the <container class> to match your <ammunition class>. </attribute> <attribute arch="slaying" editor="slaying race" type="string"> - Slaying means the weapon does tripple (3x) damage to monsters + Slaying means the weapon does triple (3x) damage to monsters of the specified race. If <slaying race> matches an arch name, - only monsters of that archtype receive tripple damage. - Tripple damage is very effective. + only monsters of that archetype receive triple damage. + Triple damage is very effective. </attribute> <attribute arch="dam" editor="damage" type="int"> The projectile <damage> significantly affects the damage done. Damage can be further increased by the shooting weapon's attributes. </attribute> - <attribute arch="wc" editor="weaponclass" type="int"> - This value is supposed to be the base <weaponclass>, + <attribute arch="wc" editor="weapon class" type="int"> + This value is supposed to be the base <weapon class>, but it seems to have rather little effect. High values are good here, low values bad. </attribute> @@ -3790,7 +3790,7 @@ </description> <use><![CDATA[ When you create an artifact ring, never forget that players can - wear <B>two</B> rings! Due to that it is extremely important to + wear <b>two</b> rings! Due to that it is extremely important to keep rings in balance with the game. <br><br> Also keep in mind that rings are generally the wizard's tools. @@ -3806,7 +3806,7 @@ </ignore> <description><![CDATA[ A rod contains a spell. The player can use this spell by applying and - fireing the rod. Rods need time to regenerate their "internal" spellpoints, + firing the rod. Rods need time to regenerate their "internal" spellpoints, lowering the effectiveness in combat. But unlike wands/scrolls, rods can be used endlessly. ]]> </description> @@ -3856,7 +3856,7 @@ <attribute arch="unpaid" /> </ignore> <description><![CDATA[ - A rune is a magical enscription on the dungeon floor. + A rune is a magical inscription on the dungeon floor. <br><br> Runes hit any monster or person who steps on them for 'dam' damage in 'attacktype' attacktype. Alternatively, the rune could contain any spell, @@ -3949,17 +3949,17 @@ </description> <use><![CDATA[ Put savebed locations in towns, do not put them into dungeons. - It is absolutely neccessary that a place with savebeds is 100% secure. + It is absolutely necessary that a place with savebeds is 100% secure. That means: - <UL> - <LI> Monsters must not be able to reach the savebeds under any circumstances! - <LI> If there are NPCs around, make sure they have the friendly-flag set. - <LI> Insert a relyable exit! Make sure there is no possibility that + <ul> + <li> Monsters must not be able to reach the savebeds under any circumstances! + <li> If there are NPCs around, make sure they have the friendly-flag set. + <li> Insert a reliable exit! Make sure there is no possibility that players get trapped in a savebed location. - <LI> If possible, mark the whole site as no-spell area (Insert this + <li> If possible, mark the whole site as no-spell area (Insert this arch called "dungeon_magic" everywhere). This is not required, but it makes the place much more safe. - </UL> ]]> + </ul> ]]> </use> <attribute arch="no_pick" value="1" type="fixed" /> <attribute arch="no_magic" value="1" type="fixed" /> @@ -4003,7 +4003,7 @@ <description><![CDATA[ Wearing a shield, the object's stats will directly be inherited to the player. Shields usually provide good defense, only surpassed - by brestplate armour. Resistances on shields aren't uncommon either. ]]> + by breastplate armor. Resistances on shields aren't uncommon either. ]]> </description> <use><![CDATA[ Feel free to create your own special artifacts. However, it is very @@ -4012,7 +4012,7 @@ <attribute arch... [truncated message content] |