ifmapper 1.2.8 → 1.2.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4e069afc1a864ed81cb28e78d834dc11f04f3e9
4
- data.tar.gz: 8646743ccceadbbf407a62bf547b77a439b9b864
3
+ metadata.gz: 9a6ffe61bf87bb485972ebe8c020b5c1a6230b71
4
+ data.tar.gz: 07f210cfe11047f2b208c380760834b529e64b9b
5
5
  SHA512:
6
- metadata.gz: 5a6bee24a94c206702f895a4677332ff623fdc30b0e7675d2da71c03b0f14c95c53a5ec83d253760fbde95b0ac2c8e29b62e1e47e5fe2656314b4ef295da56e9
7
- data.tar.gz: e87729088c1f9a49da20a07955644210d2c6d4fb4338edd0dcf398f4536c44c13285fda9ec2708d4acdcebfa1e33a503662226c6f1e1590fa8d82b4873d1fcb8
6
+ metadata.gz: a0b1c6a57e54043feea0c9621737ef35e576a53f520f250de017e7a0f1efd5165b848ba8171168eb92a80b867d9d4ae8f6c44314d3c38c73faf084e56d4fdfb8
7
+ data.tar.gz: fcdbeb0957b9e97a76eb10b71fa0e60e6e21146ce0611f8856d8d555f3e528c615387ad8fa4dc51719e7b7ac9f1dc3eb822fcdc4d0eda3ceb7e6a3ebbdbabad6
data/HISTORY.txt CHANGED
@@ -1,3 +1,5 @@
1
+ v1.2.9 Fixes to some regexp that would show warnings in ruby 2.1.0
2
+
1
3
  v1.2.8 Same as 1.2.7 but in all languages.
2
4
 
3
5
  v1.2.7 Added Ruby version to about box message.
data/IFMapper.gemspec CHANGED
@@ -1,33 +1,33 @@
1
1
  require "rubygems"
2
2
 
3
- VERSION = '1.2.8'
3
+ VERSION = '1.2.9'
4
4
 
5
- spec = Gem::Specification.new do |spec|
6
- spec.name = "ifmapper"
7
- spec.version = VERSION
8
- spec.author = "Gonzalo Garramuno"
9
- spec.email = 'ggarra13@gmail.com'
10
- spec.license = 'GPL'
11
- spec.homepage = 'http://www.rubyforge.org/projects/ifmapper/'
12
- spec.summary = 'Interactive Fiction Mapping Tool.'
13
- spec.require_path = "lib"
14
- spec.executables = "IFMapper"
15
- spec.files = ['IFMapper.rbw'] + ['bin/IFMapper'] +
5
+ gem = Gem::Specification.new do |s|
6
+ s.name = "ifmapper"
7
+ s.version = VERSION
8
+ s.author = "Gonzalo Garramuno"
9
+ s.email = 'ggarra13@gmail.com'
10
+ s.license = 'GPL'
11
+ s.homepage = 'http://www.rubyforge.org/projects/ifmapper/'
12
+ s.summary = 'Interactive Fiction Mapping Tool.'
13
+ s.require_path = "lib"
14
+ s.executables = "IFMapper"
15
+ s.files = ['IFMapper.rbw'] + ['bin/IFMapper'] +
16
16
  ['IFMapper.gemspec'] +
17
17
  Dir.glob("lib/IFMapper/*.rb") +
18
18
  Dir.glob("lib/IFMapper/locales/*/*.rb") +
19
19
  Dir.glob("lib/IFMapper/locales/*/*.sh") +
20
20
  Dir.glob("maps/*.ifm") + Dir.glob("maps/*.map") +
21
21
  Dir.glob("icons/*")
22
- spec.description = <<-EOF
22
+ s.description = <<-EOF
23
23
  Interactive Fiction Mapping Tool.
24
24
  EOF
25
- spec.add_dependency("rake-compiler", ">= 0.7.1" )
26
- spec.add_dependency("fxruby", ">= 1.6.0")
27
- spec.add_dependency("pdf-writer", ">= 1.1.1")
28
- spec.extra_rdoc_files = ["HISTORY.txt", "TODO.txt"] +
25
+ s.add_runtime_dependency("rake-compiler", "~> 0.7.1", ">= 0.7.1" )
26
+ s.add_runtime_dependency("fxruby", "~> 1.6.0", ">= 1.6.0")
27
+ s.add_runtime_dependency("pdf-writer", "~> 1.1.1", ">= 1.1.1")
28
+ s.extra_rdoc_files = ["HISTORY.txt", "TODO.txt"] +
29
29
  Dir.glob("docs/*/*")
30
- spec.has_rdoc = true
31
- spec.rubyforge_project = 'ifmapper'
32
- spec.required_ruby_version = '>= 1.8.0'
30
+ s.has_rdoc = true
31
+ s.rubyforge_project = 'ifmapper'
32
+ s.required_ruby_version = '>= 1.8.0'
33
33
  end
data/IFMapper.rbw CHANGED
@@ -6,6 +6,8 @@ install_loc = $0.sub(/\/?[^\/]*$/, '')
6
6
  install_loc = '.' if install_loc == ''
7
7
  Dir.chdir(install_loc)
8
8
  $LOAD_PATH << './lib'
9
+ require 'rubygems'
10
+ require 'bundler/setup'
9
11
  require 'IFMapper/FXMapperWindow'
10
12
 
11
13
  if __FILE__ == $0
@@ -390,8 +390,8 @@ class FXMapperWindow < FXMainWindow
390
390
  w.execute
391
391
  return
392
392
 
393
- printer = printer_dialog MSG_PRINT_LOC
394
- map.print_locations( printer ) if printer
393
+ #printer = printer_dialog MSG_PRINT_LOC
394
+ #map.print_locations( printer ) if printer
395
395
  end
396
396
 
397
397
  #
@@ -99,7 +99,7 @@ class IFMReader
99
99
  # see if line is a variable line. if so, return true
100
100
  #
101
101
  def parse_variable
102
- @line =~ /^\s*[\w_\-\.]+\s*=.*$/
102
+ @line =~ /^\s*[\w\.]+\s*=.*$/
103
103
  end
104
104
 
105
105
  #
@@ -143,8 +143,8 @@ class IFMReader
143
143
  when nil,
144
144
  'to', 'cmd', 'from', 'need', 'lose', 'lost', 'tag', 'all', 'except',
145
145
  'before', 'after', 'start', 'style', 'endstyle', 'follow', 'link',
146
- 'until', 'dir', 'start', 'get', 'drop', 'goto', 'give', 'given',
147
- 'exit', 'in', 'keep', 'any', 'safe', 'score', 'style', 'go',
146
+ 'until', 'dir', 'get', 'drop', 'goto', 'give', 'given',
147
+ 'exit', 'in', 'keep', 'any', 'safe', 'score', 'go',
148
148
  'hidden', 'oneway', 'finish', 'length', 'nopath', 'note', 'leave',
149
149
  'join', /^#/
150
150
  return false
@@ -305,8 +305,6 @@ class IFMReader
305
305
  when 'lost'
306
306
  when 'except'
307
307
  get_item while is_tag?
308
- when 'length'
309
- get_token
310
308
  when 'until'
311
309
  get_task while is_tag?
312
310
  when 'link'
@@ -105,8 +105,8 @@ class TranscriptReader
105
105
  ARTICLE = /^#{THE}/i
106
106
 
107
107
  ## Possible nessages indicating get/take succeeded
108
- TAKE_OBJ = '([\w\d\-\'\s]+)'
109
- TAKE_FROM = '(?:\s+(?:up|from|out)\s+.*)$'
108
+ TAKE_OBJ = '([\w\'\s]+)'
109
+ TAKE_FROM = '(\s+(?:up|from|out)\s+.*)$'
110
110
  TAKE_ALIAS = '(?:grab|pick\s+up|pick|pilfer|take(?:\s+up)?)'
111
111
  TAKE_OK = [
112
112
  /\btaken\b/i,
@@ -879,7 +879,7 @@ class TranscriptReader
879
879
  if line =~ /^You\sare\s(?:now\s)?(?:[io]n\s)?(?:#{THE})?([\w'\d\s\-_]+)\.$/
880
880
  return false if $1 =~ /own feet/
881
881
  return $1
882
- elsif line =~ /^\(([\w\d\s_]+)\)$/
882
+ elsif line =~ /^\(([\w\s]+)\)$/
883
883
  return $1
884
884
  else
885
885
  return false
data/maps/Asgard.map CHANGED
Binary file
metadata CHANGED
@@ -1,19 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ifmapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.8
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gonzalo Garramuno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-27 00:00:00.000000000 Z
11
+ date: 2014-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.7.1
17
20
  - - ">="
18
21
  - !ruby/object:Gem::Version
19
22
  version: 0.7.1
@@ -21,6 +24,9 @@ dependencies:
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.7.1
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
26
32
  version: 0.7.1
@@ -28,6 +34,9 @@ dependencies:
28
34
  name: fxruby
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 1.6.0
31
40
  - - ">="
32
41
  - !ruby/object:Gem::Version
33
42
  version: 1.6.0
@@ -35,6 +44,9 @@ dependencies:
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 1.6.0
38
50
  - - ">="
39
51
  - !ruby/object:Gem::Version
40
52
  version: 1.6.0
@@ -42,6 +54,9 @@ dependencies:
42
54
  name: pdf-writer
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: 1.1.1
45
60
  - - ">="
46
61
  - !ruby/object:Gem::Version
47
62
  version: 1.1.1
@@ -49,6 +64,9 @@ dependencies:
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 1.1.1
52
70
  - - ">="
53
71
  - !ruby/object:Gem::Version
54
72
  version: 1.1.1
@@ -62,10 +80,8 @@ extra_rdoc_files:
62
80
  - TODO.txt
63
81
  - docs/en/index.html
64
82
  - docs/en/start.html
65
- - docs/en/start.html~
66
83
  - docs/es/index.html
67
84
  - docs/es/start.html
68
- - docs/es/start.html~
69
85
  - docs/images/automap.gif
70
86
  - docs/images/complex_connection.gif
71
87
  - docs/images/connection.gif
@@ -81,10 +97,8 @@ files:
81
97
  - bin/IFMapper
82
98
  - docs/en/index.html
83
99
  - docs/en/start.html
84
- - docs/en/start.html~
85
100
  - docs/es/index.html
86
101
  - docs/es/start.html
87
- - docs/es/start.html~
88
102
  - docs/images/IFMapper_main.gif
89
103
  - docs/images/automap.gif
90
104
  - docs/images/complex_connection.gif
data/docs/en/start.html~ DELETED
@@ -1,517 +0,0 @@
1
- <html>
2
-
3
- <head>
4
- <meta http-equiv="Content-Language" content="es">
5
- <meta name="generator" content="Bluefish 2.2.2" >
6
- <meta name="ProgId" content="FrontPage.Editor.Document">
7
- <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
8
- <title>Interactive Fiction Mapper</title>
9
- </head>
10
-
11
- <body>
12
-
13
- <p align="center"><b><font color="#000080"><u><font size="5">Interactive</font><font size="5">
14
- Fiction Mapper (IFMapper)<br>
15
- </font></u><font size="5">by Gonzalo Garramu�o</font></font></b></p>
16
- <p align="center"><b><u><font size="4" color="#000080">User's</font><font size="4" color="#000080">
17
- Manual</font></u></b></p>
18
- <ol>
19
- <li><a href="#Introduction">Introduction </a>
20
- <ul>
21
- <li><a href="#What are Interactive Fiction Games">What are Interactive
22
- Fiction Games?</a></li>
23
- <li><a href="#What is IFMapper">What is IFMapper?</a></li>
24
- <li><a href="#Features of IFMapper">Features of IFMapper</a><br>
25
- &nbsp;</li>
26
- </ul>
27
- </li>
28
- <li><a href="#Installation">Installation</a><ul>
29
- <li><a href="#What youll need">What you'll need</a></li>
30
- <li><a href="#Where to get the stuff">Where to get the stuff</a></li>
31
- <li><a href="#Installing from a zip file">Installing from a zip file</a></li>
32
- <li><a href="#Installing or Upgrading using rubygems">Installing or
33
- Upgrading using rubygems</a><br>
34
- &nbsp;</li>
35
- </ul>
36
- </li>
37
- <li><a href="#Starting IFMapper">Starting IFMapper</a><br>
38
- &nbsp;</li>
39
- <li><a href="#Using IFMapper">Using IFMapper</a><ul>
40
- <li><a href="#The Interface">The Interface</a></li>
41
- <li><a href="#Navigation">Navigation</a></li>
42
- <li><a href="#Creating Locations">Creating Locations</a></li>
43
- <li><a href="#Creating Connections">Creating Connections</a></li>
44
- <li><a href="#Deleting Rooms or Connections">Deleting Rooms and Connections</a></li>
45
- <li><a href="#Complex Connections">Creating Complex Connections</a></li>
46
- <li><a href="#Moving Rooms in Map">Moving Rooms Around</a></li>
47
- <li><a href="#Dealing with Multiple Sections">Dealing with Multiple Sections</a></li>
48
- <li><a href="#Searching">Searching </a></li>
49
- <li><a href="#Preferences">Preferences </a></li>
50
- <li><a href="#Saving and Loading Maps">Saving and Loading Maps</a></li>
51
- <li><a href="#Saving and Loading Maps">Locking Maps</a></li>
52
- <li><a href="#Mapping Games from Transcripts (Automapping)">Automatically
53
- Creating Maps from Transcripts (Automapping)</a><ul>
54
- <li><a href="#How does the automapper distinguish locations">How does
55
- Automapping work</a></li>
56
- <li><a href="#Limitations on Automapping">Limitations on Automapping</a><br>
57
- &nbsp;</li>
58
- </ul>
59
- </li>
60
- </ul>
61
- </li>
62
- <li><a href="#Creating a new Inform/TADS3 game">Creating a new game for TADS3
63
- or Inform</a><br>
64
- &nbsp;</li>
65
- <li><a href="#Appendix">Appendix</a><ul>
66
- <li>
67
- <a href="#I am new to Interactive Fiction. What games would you recommend">I
68
- am new to Interactive Fiction.&nbsp; What games would you recommend?</a></li>
69
- <li><a href="#Contacting the Author">Contacting the Author</a></li>
70
- </ul>
71
- </li>
72
- </ol>
73
- <p>&nbsp;</p>
74
- <p><b><font size="5" color="#000080"><a name="Introduction">Introduction</a></font></b></p>
75
- <p><b><a name="What are Interactive Fiction Games"></a>What are Interactive
76
- Fiction Games?</b></p>
77
- <p>These are adventure games, which usually contain little or no graphics but
78
- use prose to describe locations, events and, hopefully, a good story.&nbsp; The
79
- first interactive fiction game was created in the late 1970s and was known as
80
- Adventure (or. Colossal Cave), albeit the genre became widely popular and
81
- developed most of its conventions with the creation of Infocom in the 1980s.<br>
82
- If you have never played an interactive fiction game, perhaps the best
83
- comparison is that they are a grown-up version of &quot;Dungeons and Dragons&quot; or the
84
- &quot;Choose Your Own Adventure&quot; series of children's books.&nbsp; <br>
85
- Still, just like any good novel, interactive fiction has evolved into all sorts
86
- of different styles, genres, and level of interactivity.&nbsp; And you can find
87
- adventures being developed today in a lot of languages like English, Spanish,
88
- Italian, German, etc.&nbsp; See the section:&nbsp; &quot;I am new to Interactive
89
- Fiction.&nbsp; What games would you recommend?&quot;</p>
90
- <p><b><a name="What is IFMapper"></a>What is IFMapper?</b><br>
91
- <br>
92
- IFMapper is a tool for easily mapping these interactive fiction games.&nbsp; As
93
- these games rely mainly on text descriptions and often use compass directions
94
- for navigation around the game world, it is relatively easy to get lost.&nbsp;
95
- In the old days, players would use grid paper to draw their maps, using boxes
96
- and lines to show each location and its exits.&nbsp; IFMapper is basically, the
97
- 21st century version of that old practice.<br>
98
- Albeit IFMapper is mainly a mapping tool, it can also be used as a design tool
99
- in the early stages of development of new games (for either Inform6 or TADS3).</p>
100
- <p><b><a name="Features of IFMapper">Features of IFMapper</a></b></p>
101
- <ul>
102
- <li>Multiplatform</li>
103
- <li>Very simple click interface</li>
104
- <li>Complex paths supported (paths that loop on themselves or connect two
105
- remote nodes)</li>
106
- <li>Automatic connection of rooms thru complex paths using an A* algorithm</li>
107
- <li>Mousewheel support for zooming in/out</li>
108
- <li>Middle mouse scrolling</li>
109
- <li>Rooms can have objects and tasks listed</li>
110
- <li>Automatic numbering of rooms</li>
111
- <li>Multiple map editing</li>
112
- <li>Ability to easily move rooms in map with arrow keys</li>
113
- <li>Written in a simple and great scripting language (Ruby)</li>
114
- <li>Acrobat PDF output</li>
115
- <li>Can read and save IFM files</li>
116
- <li>Can read and save Trizbort maps</li>
117
- <li>Can read and save Inform/TADS3 source code files</li>
118
- <li>Locking of maps</li>
119
- <li>Search for keywords in room names, objects or tasks</li>
120
- <li>Can automap games from Infocom-like transcripts, even while you play them</li>
121
- <li>Free<br>
122
- &nbsp;</li>
123
- </ul>
124
- <p><b><font size="5" color="#000080"><a name="Installation">Installation</a></font></b></p>
125
- <p><b><a name="What youll need">What you'll need</a></b></p>
126
- <p>In order to use IFMapper, you need to have the Ruby scripting language
127
- installed and FXRuby.&nbsp; IFMapper was originally developed to run under
128
- ruby1.8 and FXRuby1.2, but it will probably be compatible with later versions,
129
- too.<br>
130
- To print PDF documents, you will also need Austin Ziegler's PDF::Writer module.</p>
131
- <p><b><a name="Where to get the stuff">Where to get the stuff</a></b></p>
132
- <p>If your platform is Windows, your best bet is to download the One-Click Ruby
133
- Installer from:<br>
134
- <a href="http://rubyforge.org/projects/rubyinstaller/">
135
- http://rubyforge.org/projects/rubyinstaller/</a></p>
136
- <p>This installer comes with the latest stable ruby version and also with the
137
- latest fxruby.&nbsp; It also comes with rubygems (see rubygems later).</p>
138
- <p>If your platform is Linux or OSX, you may need to obtain ruby from your repositories.</p>
139
- <p>For example on Ubuntu:</p>
140
- <br>$ sudo apt-get install ruby</br>
141
- <p>OSX currently comes with ruby pre-installed, which although it is a tad old will work fine for IFMapper.
142
- </p>
143
- <p><br>
144
- <p>After you have ruby up and running, you should then proceed to install Fox and FXruby.&nbsp;
145
- You can do this by first installing rubygems (what I'd recomment) or by not
146
- using it.&nbsp; If you want to use rubygems, proceed to the &quot;Using Rubygems&quot;
147
- section.</p>
148
- <p>FXRuby can be found at:<br>
149
- <a href="http://www.fxruby.org">http://www.fxruby.org</a></p>
150
- <p>After you have fxruby (which requires the Fox toolkit) installed, you should then be able to install ifmapper.</p>
151
- <p>&nbsp;</p>
152
- <p><b><a name="Installing from a zip file">Installing from a zip file</a></b></p>
153
- <p>After you have ruby and fxruby properly installed, download the ifmapper zip
154
- file from:</p>
155
- <p><a href="http://rubyforge.org/projects/ifmapper">
156
- http://rubyforge.org/projects/ifmapper</a></p>
157
- <p>Use unzip, winzip or some other zip decompression tool to open the archive.&nbsp;
158
- All files will be placed inside an IFmapper directory.&nbsp;&nbsp; You should be
159
- ready to start IFMapper.</p>
160
- <p>If you want to output PDF files from IFMapper, you will also need to install
161
- the PDF::Writer library.&nbsp; You can do so using rubygems or by downloading
162
- the PDF::Writer library from:</p>
163
- <p><a href="http://rubyforge.org/projects/ruby-pdf/">
164
- http://rubyforge.org/projects/ruby-pdf/</a></p>
165
- <p>&nbsp;</p>
166
- <p><b><a name="Installing or Upgrading using rubygems">Installing or Upgrading
167
- using rubygems</a></b></p>
168
- <p>Rubygems is a manager of ruby libraries that should help with automatically
169
- installing any library dependencies that ifmapper may need.&nbsp; Rubygems comes
170
- pre-installed with the One-Click Installer for Windows.&nbsp; For other
171
- platforms, you can obtain it from:</p>
172
- <p><a href="http://rubyforge.org/projects/rubygems/">
173
- http://rubyforge.org/projects/rubygems/</a></p>
174
- <p>Once rubygems is installed, you can then open a windows console or a shell
175
- window and do:</p>
176
- <p><font face="Courier New">&gt; gem install -r ifmapper</font></p>
177
- <p>This will download the latest version of ifmapper, as well as all the
178
- libraries needed for ifmapper to run (in case they are not installed on your
179
- system).&nbsp; If you don't have fxruby installed, it will get installed for you.&nbsp;
180
- On Unix systems, you will probably still need to compile it yourself.</p>
181
- <p>IFmapper (and other libraries) will then be placed inside your ruby install
182
- directory, like:<br>
183
- <font face="Courier New">C:/ruby/lib/ruby/gems/1.8/gems/ifmapper-{VERSION}</font></p>
184
- <p>&nbsp;</p>
185
- <p><b><font size="5" color="#000080"><a name="Starting IFMapper">Starting
186
- IFMapper</a></font></b></p>
187
- <p>Once installed, you can then run IFMapper by either clicking on the
188
- IFMapper.rbw file inside the ifmapper directory or, invoking IFMapper.rbw from
189
- any shell or console.</p>
190
- <p>Assuming everything is installed properly, you should then see the IFMapper
191
- window popup with an empty map.</p>
192
- <p>&nbsp;</p>
193
- <p><b><font size="5" color="#000080"><a name="Using IFMapper">Using IFMapper</a></font></b></p>
194
- <p><font size="4"><a name="The Interface">The Interface</a></font></p>
195
- <p><img border="0" src="../images/IFMapper_main.gif" width="800" height="600"></p>
196
- <p>The IFMapper interface consists of a menu that allows you to access common
197
- operations (open/save maps, change settings, etc), a toolbar with a similar
198
- functionality, and one or more windows displaying a map canvas.</p>
199
- <p>IFMapper allows you to edit multiple maps simultaneously.<br>
200
- Each map can have multiple &quot;sections&quot;, so as to keep different parts of the
201
- games organized. Note that these sections have nothing to do with how printing
202
- is done and two or more sections could end up being printed <br>
203
- together in a page or a single section may end up getting split into a multiple
204
- page document once printed.</p>
205
- <p>When you start IFMapper for the first time, you should be placed in an empty
206
- map that shows a grid of where rooms and straight connections can be placed.<br>
207
- &nbsp;</p>
208
- <p><font size="4"><b><a name="Navigation">Navigation</a></b></font></p>
209
- <p>Use your mouse for navigation. If your mouse supports a mousewheel, this can
210
- be used for zooming in or out of the map easily.<br>
211
- To pan around the map, use the <b>Middle Mouse Button</b> or, alternatively, <b>
212
- ALT + Left Mouse Button</b> (These hotkeys mimic the behavior of Maya and 3dmax,
213
- both popular 3d packages).&nbsp; You can also scroll the map using the
214
- scrollbars around the canvas.<b><font size="4"><br>
215
- &nbsp;</font></b></p>
216
- <p><b><font size="4"><br>
217
- <a name="Creating Locations">Creating Locations</a><br>
218
- </font></b>
219
- <img border="0" src="../images/room_small.gif" align="right" width="342" height="377"><b><font size="4"><br>
220
- </font></b>You create new Locations or Rooms in the map by just clicking on any
221
- of those template boxes. The new location will then be given a default name and
222
- settings ('New Location').<br>
223
- Each room added will automatically receive a number, based on creation order.<br>
224
- To modify the name and settings of a location, you can then double click on it
225
- and a requester will pop up allowing you to do so.<br>
226
- If you want the requester to pop up as soon as a new room is created, you can
227
- turn on <b>Map-&gt;Options-&gt;Edit on Creation.</b><br>
228
- This requester also has options to allow you to mark the room as in darkness and
229
- to add a list of objects present in the room.<br>
230
- As you play the game, you can also choose to list the tasks that you need to do
231
- in the room to progress further (providing you some with a rudimentary walkthru/hint
232
- functionality).<br>
233
- This requester can be left open so as to quickly change from room to room.</p>
234
- <p>Besides using the mouse, you can also use the numeric keypad with Num Lock on
235
- and use the numbers from <b>1 to 9</b> to create a new room in the appropiate
236
- direction.<br>
237
- &nbsp;</p>
238
- <p>&nbsp;</p>
239
- <p>&nbsp;</p>
240
- <p>&nbsp;</p>
241
- <p><b><font size="4"><br>
242
- <a name="Creating Connections">Creating Connections</a></font></b></p>
243
- <p>You can then create connections among rooms by clicking on the non-boxed
244
- areas of the map. Depending on where exactly you click, a simple connection will
245
- be made between two rooms.<br>
246
- <br>
247
- In its default configuration, you can also click to create a connection on an
248
- area where no rooms yet exist. IFMapper will then create the missing rooms
249
- automatically for you, in addition to the connection.<br>
250
- <br>
251
- Note that you can change the behavior of how nodes and connections are created
252
- from the <b>Map-&gt;Options</b> menu:<br>
253
- <b>Automatic Connection - </b>will create a connection to the previous room for
254
- each new room you create.<b><br>
255
- Create on Connection - </b>will allow you to add both the connection and the
256
- missing rooms when you click on some connection area in the map.<br>
257
- <img border="0" src="../images/connection.gif" align="right" width="332" height="118"><br>
258
- Connections can also be modified similarly to rooms, by clicking twice on them.
259
- The connection requester allows you to specify the connection as a free, door,
260
- locked or special connection.&nbsp; It also allows you to make the connection
261
- travel in a single direction or in both directions.&nbsp; Finally, you can also
262
- add text to the connections to indicate that connection takes you Up/Down or In/Out.</p>
263
- <p>Changing the connection to<img border="5" src="../images/connection_menu.gif" align="right" width="342" height="241">
264
- be one way can also be done by just <br>
265
- clicking on them several times, without opening the requester.<br>
266
- <br>
267
- Finally, selecting a connection and using the right mouse button gives&nbsp; you
268
- access to a context-sensitive menu that allows you to flip the direction of a
269
- connection or to shift the connection to some other exit in the room.</p>
270
- <p>&nbsp;</p>
271
- <p>&nbsp;</p>
272
- <p>&nbsp;</p>
273
- <p>&nbsp;</p>
274
- <p><b><font size="4"><br>
275
- <a name="Deleting Rooms or Connections">Deleting Rooms or Connections</a></font></b><br>
276
- <br>
277
- To remove a room or connection, just select it by clicking on it with<br>
278
- the left mouse button. Then, press the Delete or Backspace key.<br>
279
- Note that there is currently no Undo, so deleted nodes or connections<br>
280
- cannot be restored.<br>
281
- <br>
282
- <font size="4"><br>
283
- <b><a name="Complex Connections">Complex Connections<img border="5" src="../images/complex_connection.gif" align="right" width="338" height="308"></a></b></font><br>
284
- <br>
285
- A lot of text adventures have mazes with exits that lead nowhere and exits that
286
- change direction from one room to the next. We refer to these as complex
287
- connections.<br>
288
- To create a complex connection, type the letter <b>'x'</b> or use the <b>Edit-&gt;Add
289
- Complex Connection </b>menu option. Afterwards, click on the exit next to the
290
- first room you want to connect and then click on<br>
291
- the exit of the second room.<br>
292
- If you want to get out of the add complex connection mode, just hit Esc at any
293
- time.<br>
294
- IFMapper will then try to calculate a path along the map to take you from your
295
- first room to the second one. <br>
296
- For a complex connection to happen, the path between those nodes has to be
297
- 'free' of other rooms. IFMapper will also try to avoid inter-crossing
298
- connections as much as it can, but will still allow them.<br>
299
- To create exits that just loop onto themselves, you can do a complex connection
300
- by clicking twice on the same exit or, you can just use<b> CTRL + Left Mouse
301
- Button </b>without needing to go into the Complex Connection mode.<br>
302
- <br>
303
- <b><font size="4"><br>
304
- <a name="Moving Rooms in Map">Moving Rooms in Map</a></font></b><br>
305
- <br>
306
- When building large maps on complex games, you will probably run into the need
307
- to shift nodes around. To do so, select on the nodes you want to move by <b>CTRL-LMB
308
- </b>on them, and then use the arrow keys to shift the nodes one grid unit at a
309
- time.<br>
310
- You can also use <b>SHIFT-LMB</b> to drag a box around the rooms to select. <br>
311
- If there are any simple or complex connections, IFMapper will keep recalculating
312
- those connections on the fly as you move the nodes.<br>
313
- Note that complex connections can sometimes 'fail'. In those cases, you will see
314
- the complex connection become taut and tinted red.<br>
315
- &nbsp;</p>
316
- <p><b><font size="4"><a name="Dealing with Multiple Sections">Dealing with
317
- Multiple Sections</a></font></b></p>
318
- <p>Some adventure games can be rather large and might be split into chapters.&nbsp;
319
- In those cases, you may want to take advantage of using multiple sections in
320
- your map.&nbsp; This will keep your map organized and may help you with printing
321
- them also later on.</p>
322
- <p>You can create and delete sections from the menu, in <b>Map-&gt;Sections-&gt;Create
323
- Section</b> and <b>Map-&gt;Sections-&gt;Delete Section.</b></p>
324
- <p>To move from one section to another, you can use the Arrows located in the
325
- right section of the toolbar or <b>Map-&gt;Sections-&gt;Next/Previous Section.</b></p>
326
- <p><br>
327
- <br>
328
- <b><font size="4"><a name="Searching">Searching</a></font></b><br>
329
- <br>
330
- You can search for words in locations, objects, tasks or descriptions in the
331
- current section or in the whole map, using regular expressions.<br>
332
- The search is interactive, a la Emacs, meaning that as you type, the rooms that
333
- match the search get hilited.<br>
334
- The number of matches for the map and the section is display in the status bar.<br>
335
- You can use the Next/Previous button to keep centering your view on each match (and
336
- automatically moving thru sections if you are matching stuff in the whole map)<br>
337
- <br>
338
- <br>
339
- <b><font size="4"><a name="Preferences">Preferences</a></font></b><br>
340
- <br>
341
- IFMapper allows you to change and set preferences on a per map basis (colors,
342
- editing options, etc). You can also save your preferences so that IFMapper will
343
- boot with those settings in place for creating new maps.<br>
344
- <br>
345
- <br>
346
- <font size="4"><b><a name="Saving and Loading Maps">Saving and Loading Maps</a></b></font></p>
347
- <p>To save a map you are editing, you can go to <b>File-&gt;Save</b> or <b>File-&gt;Save
348
- As</b>.&nbsp; The internal format of IFMapper's maps is the .map format, which
349
- is binary format.&nbsp; This format saves all your map preferences as well as
350
- all the connections and descriptions.<br>
351
- To load a map, you can then use <b>File-&gt;Open</b>.&nbsp; Besides IFMapper's own
352
- .map format, IFMapper also supports other popular formats within the IF
353
- community.&nbsp; IFMapper can read:<br>
354
- - .ifm files (Dave Chapeski's IFM, a popular free Unix mapping/walkthru tool)<br>
355
- - .gmp file (GUEmap's maps, a commercial mapping tool for Windows)<br>
356
- - .inf files (Inform6 source code files)<br>
357
- - .inform files (Inform7 source code files)<br>
358
- - .trizbort files (Trizbort map files)<br>
359
- - .t3m or .t files ( TADS3 makefiles or source code files )</p>
360
- <p><br>
361
- <b><font size="4"><a name="Locking Maps">Locking Maps</a></font></b><br>
362
- <br>
363
- Once you finish an adventure game, you can then lock the map for distribution.<br>
364
- You can do so by going into <b>Map-&gt;Map Information</b> and click on the Read-Only
365
- switch and making sure you save the map as .map file (IFMapper's native format).<br>
366
- Making the map read-only will not allow you to modify the map anymore (and thus
367
- will prevent accidentally moving or changing room descriptions by<br>
368
- mistake).<br>
369
- When reading any IFM file, Read-Only mode is entered automatically, as it is
370
- assumed these maps were created and finished elsewhere. If you need<br>
371
- to modify them, just untick the Read-Only switch in the Map Information box
372
- again.<br>
373
- <br>
374
- <b><font size="4"><br>
375
- <a name="Mapping Games from Transcripts (Automapping)">Mapping Games from
376
- Transcripts (Automapping)</a><br>
377
- </font></b><br>
378
- New to v0.8, the feature of automapping was added. The way automapping works is
379
- that it will read a transcript or log of your game, and will attempt to parse it
380
- to generate rooms and connections (even while you are playing it!).<br>
381
- <br>
382
- To use automapping, go to your game and start a transcript. Usually this is done
383
- by doing:</p>
384
- <p><b>&gt; verbose<br>
385
- &gt; script</b></p>
386
- <p>and then specifying the name of the file.<br>
387
- <br>
388
- Then, go to IFMapper and go to a map (usually an empty one) and do:<img border="0" src="../images/automap.gif" align="right" width="413" height="428"><br>
389
- <b>Map-&gt;Automap-&gt;Start</b>. This will pop up a file requester for you to feed
390
- IFMapper the name of the transcript.<br>
391
- Then, you will be asked thru a requester to select some options.<br>
392
- The options include how will the automapper identify locations as being unique.
393
- The automapper can determine whether you are in a new location by comparing the
394
- room description (the default) or by comparing just the short name of the room.
395
- Games that have rooms with the same short names (usually, mazes) will benefit
396
- from being identified by the room description while games that often change the
397
- room description on several visits to it might be mapped better using just short
398
- names.&nbsp; Note that you can also switch from one method to another at any
399
- time later on.<br>
400
- Another option allows you to specify what type of transcript you are dealing
401
- with. Most games use the &quot;Classic&quot; format, albeit some old Infocom games (mainly
402
- Witness and Moonmist) used a tad different format.<br>
403
- And voila. Immediately, you should see IFMapper get to work and start creating
404
- locations and connections. <br>
405
- If you continue playing your game and the 'script' command is still in operation,
406
- IFMapper will try to interactively map your game. This works very well for games
407
- running under WinFrotz, for example, albeit some other interpreters might not
408
- append text to transcripts as soon as you run a command, leading to a less
409
- interactive automapping (you'll probably have to type several commands before
410
- the interpreter will update the transcript file).<br>
411
- Besides trying to parse for locations and movements, automapper will also try to
412
- parse for objects in the room, by monitoring your 'get' or 'take' commands and
413
- remembering where each object was first found, so as to add it to the appropiate
414
- room.<br>
415
- Note that, at any point during your mapping, you can pop up the automapper
416
- properties again to switch from automapping using descriptions to using short
417
- names.<br>
418
- <br>
419
- <br>
420
- <b><font size="4"><a name="How does the automapper distinguish locations">How
421
- does the automapper distinguish locations?</a></font></b><br>
422
- <br>
423
- As we said before, the automapper will parse all the game text, looking for room
424
- descriptions.&nbsp; Not just the replies to moving commands.<br>
425
- This is done so that teleporting commands (such as magical words) or special
426
- events that take you other places will work.<br>
427
- Room locations are determined by finding the room's short name: a string of text
428
- where all of its words of 4 or more letters are capitalized (or where the string
429
- follows the format specified, in case of Witness/Moonmist format). <br>
430
- The paragraph following that is assumed to be a room description.<br>
431
- Depending on your automapper settings, the automapper will give preference to
432
- the room description or to the room's short name to determine whether a certain
433
- room has already been visited.<br>
434
- <br>
435
- <br>
436
- <b><font size="4"><a name="Limitations on Automapping">Limitations on
437
- Automapping</a></font></b><br>
438
- <br>
439
- Albeit automapping is very cool and powerful, there are some limitations on it
440
- you should be aware of.<br>
441
- First, it only works with games written in English.<br>
442
- Second, you should try to use automapping with verbose mode. Automapping will
443
- try to rely on the room description to distinguish one room from the next,
444
- instead of just the room's short name.<br>
445
- If your game is in brief or normal mode, automapping could end up getting
446
- confused about interpreting a previously visited location as a new location, as
447
- it could interpret an object or a character description as part of the<br>
448
- room description.<br>
449
- Even with full verbose mode, automapping may get confused if the&nbsp;
450
- description changes dramatically (like the demolished house in Hitchhiker's
451
- Guide to the Galaxy).<br>
452
- Automapping also may not help much when it comes to mazes, where all their
453
- descriptions are identical or in cases where exits are chosen at random (Adventure/Colossal
454
- Cave).<br>
455
- Some games don't follow the Infocom standard of labelling locations using a
456
- short capitalized description (for example, FailSafe). These games cannot be
457
- automapped.<br>
458
- Finally, the layout algorithm used in the automapper is not exceptional and it
459
- can lead to maps with intercrossings or with rooms placed too far apart.<br>
460
- Remember, thou, that you can still help the automapper by manually moving or
461
- removing rooms at any time if you are interactively automapping a transcript.<br>
462
- If for some reason the automapper does not detect a room automatically, you can
463
- also at any time create that room yourself and from then on, the automapper will
464
- be aware of it.<br>
465
- <br>
466
- <b><br>
467
- <font size="4"><a name="Creating a new Inform/TADS3 game">Creating a new
468
- Inform/TADS3 game</a></font></b><br>
469
- <br>
470
- IFMapper now allows you to also spit out Inform or TADS3 source code for a map.<br>
471
- This means you can now use IFMapper to easily create the basic skeleton for a
472
- new game from scratch. <br>
473
- With IFMapper, you can place your objects, your NPCs and locations with their
474
- doors/exits in your game.&nbsp; You can also type in your descriptions for each
475
- location.<br>
476
- To do this, make sure to activate the display of room descriptions:</p>
477
- <p><b>Map-&gt;Display-&gt;Location Description</b></p>
478
- <p>You can then type in all your room descriptions and objects manually and then,
479
- once your map is finished, use:<b><br>
480
- <br>
481
- File-&gt;Export-&gt;Export to Inform<br>
482
- File-&gt;Export-&gt;Export to TADS3<br>
483
- </b><br>
484
- These option will create a set of Inform or TADS3 source files (one per map
485
- section), which you can then immediately compile and play with.<br>
486
- Obviously, for a real game, the .inf or .t files you get out of IFMapper are
487
- just a skeleton, as you will still have to code manually all the logic in your<br>
488
- game.</p>
489
- <p>&nbsp;</p>
490
- <p><b><font size="5" color="#000080"><a name="Appendix">Appendix</a></font></b></p>
491
- <p><b><font size="4">
492
- <a name="I am new to Interactive Fiction. What games would you recommend">I am
493
- new to Interactive Fiction. What games would you recommend?</a></font></b><br>
494
- <br>
495
- If you can get a copy of it (Lost Treasures of Infocom or similar), I think
496
- Wishbringer from Infocom is probably one of the nicest introductory games. <br>
497
- Its puzzles are not that tricky and are also pretty logical.<br>
498
- Once you master it, you could then try Planetfall, which has one of the most
499
- lovable characters in any adventure game.<br>
500
- Assuming you cannot get hold of those Infocom games, Emily Short's City of
501
- Secrets is a very nice introductory game and probably one of the most polished
502
- adventures I have seen.<br>
503
- Andrew Plotkin's Dreamholder is also somewhat a nice introductory game as the
504
- game will help you with your commands a little as you begin. Note, however, that
505
- the game's puzzles are anything but easy. <br>
506
- <font size="5"><br>
507
- </font><b><font size="4"><a name="Contacting the Author">Contacting the Author</a></font><br>
508
- </b><br>
509
- Currently, I can be reached at:</p>
510
- <p>ggarra13 AT domain</p>
511
- <p>(Where &quot;domain&quot; is gmail.com )<br>
512
- <br>
513
- &nbsp;</p>
514
-
515
- </body>
516
-
517
- </html>