ifmapper 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>