ifmapper 1.1.2 → 1.1.3
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.
- data/HISTORY.txt +4 -0
- data/IFMapper.gemspec +1 -1
- data/lib/IFMapper/FXMap.rb +12 -0
- data/lib/IFMapper/FXMapperSettings.rb +1 -1
- data/lib/IFMapper/FXMapperWindow.rb +26 -7
- data/lib/IFMapper/FXRoomDialogBox.rb +3 -3
- data/lib/IFMapper/TranscriptReader.rb +4 -1
- data/lib/IFMapper/TrizbortWriter.rb +4 -6
- data/lib/IFMapper/locales/en/Messages.rb +12 -3
- data/lib/IFMapper/locales/es/Messages.rb +9 -4
- data/maps/Hunter.map +0 -0
- data/maps/Planetfall.map +0 -0
- data/maps/The_Lost_Islands_of_Alabaz.map +0 -0
- metadata +5 -4
data/HISTORY.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
v1.1.3 Bug fixes:
|
2
|
+
- Fixed bug in transcript reader which could lead to a crash.
|
3
|
+
- Fixed bug in Trizbort Writer which could leave map in half.
|
4
|
+
|
1
5
|
v1.1.2 Improvements:
|
2
6
|
- Made room box use tabs for comments, descriptions and objects.
|
3
7
|
- Made dark rooms select as orange.
|
data/IFMapper.gemspec
CHANGED
@@ -2,7 +2,7 @@ require "rubygems"
|
|
2
2
|
|
3
3
|
spec = Gem::Specification.new do |spec|
|
4
4
|
spec.name = "ifmapper"
|
5
|
-
spec.version = '1.1.
|
5
|
+
spec.version = '1.1.3'
|
6
6
|
spec.author = "Gonzalo Garramuno"
|
7
7
|
spec.email = 'ggarra13@gmail.com'
|
8
8
|
spec.homepage = 'http://www.rubyforge.org/projects/ifmapper/'
|
data/lib/IFMapper/FXMap.rb
CHANGED
@@ -910,9 +910,19 @@ class FXMap < Map
|
|
910
910
|
def mousewheel_cb(sender, sel, event)
|
911
911
|
case event.code
|
912
912
|
when -120 # Hmm, there does not seem to be constants for these
|
913
|
+
pos = @scrollwindow.position
|
914
|
+
x = event.last_x
|
915
|
+
y = event.last_y
|
913
916
|
zoom_out
|
917
|
+
# @scrollwindow.setPosition( -x, -y )
|
914
918
|
when 120 # Hmm, there does not seem to be constants for these
|
919
|
+
pos = @scrollwindow.position
|
920
|
+
#puts "pos: #{pos[0]} #{pos[1]}"
|
921
|
+
x = event.last_x
|
922
|
+
y = event.last_y
|
923
|
+
#puts "event: #{x} #{y}"
|
915
924
|
zoom_in
|
925
|
+
# @scrollwindow.setPosition( -x, -y )
|
916
926
|
end
|
917
927
|
end
|
918
928
|
|
@@ -1214,6 +1224,8 @@ class FXMap < Map
|
|
1214
1224
|
else
|
1215
1225
|
if selection.kind_of?(Connection) and selection.selected
|
1216
1226
|
# Toggle arrow direction
|
1227
|
+
# If in navigation mode, we don't allow user to modify map.
|
1228
|
+
return if @navigation
|
1217
1229
|
selection.toggle_direction
|
1218
1230
|
draw
|
1219
1231
|
return
|
@@ -145,7 +145,7 @@ class FXMapperSettings < Hash
|
|
145
145
|
language = ARGV.shift
|
146
146
|
language = language[0,2].downcase
|
147
147
|
self['Language'] = language
|
148
|
-
when /.*\.(?:map|ifm|gmp|t|t3m|inf)$/
|
148
|
+
when /.*\.(?:map|ifm|gmp|t|t3m|inf|trizbort)$/
|
149
149
|
self['Map'] = param
|
150
150
|
else
|
151
151
|
$stderr.puts "Unknown parameter '#{param}'."
|
@@ -8,6 +8,7 @@ rescue LoadError
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def no_fox
|
11
|
+
require "IFMapper/locales/en/Messages.rb"
|
11
12
|
$stderr.puts ERR_NO_FOX
|
12
13
|
if $rubygems
|
13
14
|
$stderr.puts ERR_HAS_GEMS
|
@@ -46,8 +47,8 @@ require 'IFMapper/FXWarningBox'
|
|
46
47
|
class FXMapperWindow < FXMainWindow
|
47
48
|
|
48
49
|
PROGRAM_NAME = "Interactive Fiction Mapper"
|
49
|
-
VERSION = '1.1.
|
50
|
-
AUTHOR = "Gonzalo
|
50
|
+
VERSION = '1.1.3'
|
51
|
+
AUTHOR = "Gonzalo Garramuno"
|
51
52
|
|
52
53
|
@@copy_buffer = nil
|
53
54
|
@@default_options = FXMapperSettings.new
|
@@ -58,11 +59,11 @@ class FXMapperWindow < FXMainWindow
|
|
58
59
|
|
59
60
|
LANGUAGES = {
|
60
61
|
'English' => 'en',
|
61
|
-
'
|
62
|
+
'Espanol' => 'es',
|
62
63
|
# todo1
|
63
64
|
'Deutsch' => 'de',
|
64
65
|
'Italiano' => 'it',
|
65
|
-
'
|
66
|
+
'Francais' => 'fr',
|
66
67
|
# todo2
|
67
68
|
'Japanese' => 'ja',
|
68
69
|
'Chinese' => 'ch',
|
@@ -430,13 +431,28 @@ class FXMapperWindow < FXMainWindow
|
|
430
431
|
return unless map
|
431
432
|
|
432
433
|
require 'IFMapper/FXMapFileDialog'
|
433
|
-
d = FXMapFileDialog.new(self,
|
434
|
+
d = FXMapFileDialog.new(self, MSG_SAVE_MAP_AS_INFORM6,
|
434
435
|
[
|
435
|
-
|
436
|
+
FMT_INFORM6,
|
436
437
|
])
|
437
438
|
map.export_inform( d.filename ) if d.filename != ''
|
438
439
|
end
|
439
440
|
|
441
|
+
#
|
442
|
+
# Export current map as an Inform source file
|
443
|
+
#
|
444
|
+
def inform7_export_cb(sender, sel, msg)
|
445
|
+
map = current_map
|
446
|
+
return unless map
|
447
|
+
|
448
|
+
require 'IFMapper/FXMapFileDialog'
|
449
|
+
d = FXMapFileDialog.new(self, MSG_SAVE_MAP_AS_INFORM7,
|
450
|
+
[
|
451
|
+
FMT_INFORM7,
|
452
|
+
])
|
453
|
+
map.export_inform7( d.filename ) if d.filename != ''
|
454
|
+
end
|
455
|
+
|
440
456
|
|
441
457
|
#
|
442
458
|
# Export current map as a TADs source file
|
@@ -985,9 +1001,12 @@ class FXMapperWindow < FXMainWindow
|
|
985
1001
|
cmd = FXMenuCommand.new(submenu, MENU_EXPORT_IFM, nil)
|
986
1002
|
cmd.connect(SEL_COMMAND, method(:ifm_export_cb))
|
987
1003
|
|
988
|
-
cmd = FXMenuCommand.new(submenu,
|
1004
|
+
cmd = FXMenuCommand.new(submenu, MENU_EXPORT_INFORM6, nil)
|
989
1005
|
cmd.connect(SEL_COMMAND, method(:inform_export_cb))
|
990
1006
|
|
1007
|
+
cmd = FXMenuCommand.new(submenu, MENU_EXPORT_INFORM7, nil)
|
1008
|
+
cmd.connect(SEL_COMMAND, method(:inform7_export_cb))
|
1009
|
+
|
991
1010
|
cmd = FXMenuCommand.new(submenu, MENU_EXPORT_TADS, nil)
|
992
1011
|
cmd.connect(SEL_COMMAND, method(:tads_export_cb))
|
993
1012
|
|
@@ -120,9 +120,9 @@ class FXRoomDialogBox < FXDialogBox
|
|
120
120
|
@objects.visibleRows = 8
|
121
121
|
@objects.visibleColumns = 40
|
122
122
|
|
123
|
-
FXTabItem.new(@tab, BOX_TASKS, nil)
|
124
|
-
|
125
|
-
@tasks = FXText.new(
|
123
|
+
@tasksFrame = FXTabItem.new(@tab, BOX_TASKS, nil)
|
124
|
+
frame = FXHorizontalFrame.new(@tab, FRAME_THICK|FRAME_RAISED)
|
125
|
+
@tasks = FXText.new(frame, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
126
126
|
@tasks.visibleRows = 8
|
127
127
|
@tasks.visibleColumns = 40
|
128
128
|
|
@@ -572,7 +572,7 @@ class TranscriptReader
|
|
572
572
|
debug "CMD: #{cmd}"
|
573
573
|
debug "ENDS AT: #{name}"
|
574
574
|
|
575
|
-
desc = room[:desc]
|
575
|
+
desc = room[:desc].to_s
|
576
576
|
desc.gsub!(/(\w)\s*\n/, '\1 ')
|
577
577
|
|
578
578
|
line = move[:line]
|
@@ -1387,6 +1387,9 @@ class TranscriptReader
|
|
1387
1387
|
# Step one user command at a time
|
1388
1388
|
def step
|
1389
1389
|
begin
|
1390
|
+
if @f.eof
|
1391
|
+
@map.status AUTOMAP_IS_WAITING_FOR_MORE_TEXT
|
1392
|
+
end
|
1390
1393
|
parse_line(@f.gets)
|
1391
1394
|
rescue => e
|
1392
1395
|
$stderr.puts e
|
@@ -43,13 +43,11 @@ class TrizbortWriter
|
|
43
43
|
@f.puts "\t<map>"
|
44
44
|
hash = {}
|
45
45
|
x = 0
|
46
|
-
y = 0
|
47
|
-
maxX = 0
|
48
|
-
maxY = 0
|
49
46
|
id = 0
|
50
47
|
@map.sections.each { |s|
|
48
|
+
maxX = 0
|
51
49
|
s.rooms.each { |r|
|
52
|
-
@f.puts "\t\t<room id=\"#{id}\" name=\"#{r.name}\" x=\"#{x + r.x*(W+32)}\" y=\"#{
|
50
|
+
@f.puts "\t\t<room id=\"#{id}\" name=\"#{r.name}\" x=\"#{x + r.x*(W+32)}\" y=\"#{r.y*(H+32)}\" w=\"#{W}\" h=\"#{H}\""
|
53
51
|
if r.darkness
|
54
52
|
@f.puts " isDark=\"yes\""
|
55
53
|
end
|
@@ -62,9 +60,8 @@ class TrizbortWriter
|
|
62
60
|
hash[r] = id
|
63
61
|
id += 1
|
64
62
|
maxX = r.x if r.x > maxX
|
65
|
-
maxY = r.y if r.y > maxY
|
66
63
|
}
|
67
|
-
x
|
64
|
+
x += maxX * (W+32)
|
68
65
|
s.connections.each { |c|
|
69
66
|
@f.print "\t\t<line id=\"#{id}\""
|
70
67
|
if c.type == Connection::SPECIAL
|
@@ -102,6 +99,7 @@ class TrizbortWriter
|
|
102
99
|
write_info
|
103
100
|
write_map
|
104
101
|
@f.puts '</trizbort>'
|
102
|
+
@f.close
|
105
103
|
end
|
106
104
|
|
107
105
|
def initialize(map, fileroot)
|
@@ -2,7 +2,11 @@
|
|
2
2
|
TITLE = '#{PROGRAM_NAME} v#{VERSION} - Written by #{AUTHOR}'
|
3
3
|
|
4
4
|
################ Errors
|
5
|
+
ERR_NO_FOX = 'Please install the FXRuby (FOX) library version 1.6 o later.'
|
6
|
+
ERR_HAS_GEMS = 'You can do it if you run \'gem install -r fxruby\''
|
5
7
|
ERR_NO_YAML =<<'EOF'
|
8
|
+
Please install the 'yaml' library.
|
9
|
+
Without it preferences cannot be loaded or saved.
|
6
10
|
EOF
|
7
11
|
ERR_COULD_NOT_SAVE = 'Could not save'
|
8
12
|
ERR_COULD_NOT_LOAD = 'Could not load'
|
@@ -61,8 +65,10 @@ FMT_TRIZBORT = 'Trizbort Map (*.trizbort)'
|
|
61
65
|
MSG_SAVE_MAP_AS_IFM = 'Save Map as IFM File'
|
62
66
|
FMT_IFM = 'IFM Map (*.ifm)'
|
63
67
|
|
64
|
-
|
65
|
-
|
68
|
+
MSG_SAVE_MAP_AS_INFORM6 = 'Save Map as Inform 6 Files'
|
69
|
+
MSG_SAVE_MAP_AS_INFORM7 = 'Save Map as Inform 7 Files'
|
70
|
+
FMT_INFORM6 = 'Inform6 Source Code (*.inf)'
|
71
|
+
FMT_INFORM7 = 'Inform7 Source Code (*.inform)'
|
66
72
|
|
67
73
|
MSG_SAVE_MAP_AS_TADS = 'Save Map as TADS Files'
|
68
74
|
FMT_TADS = 'TADS Source Code (*.t)'
|
@@ -262,7 +268,8 @@ MENU_EXPORT = 'Export'
|
|
262
268
|
MENU_EXPORT_PDF = "Export as &PDF...\t\tExport map as Acrobat PDF document."
|
263
269
|
MENU_EXPORT_TRIZBORT = "Export as Triz&bort...\t\tExport map as a Trizbort map."
|
264
270
|
MENU_EXPORT_IFM = "Export as &IFM...\t\tExport map as an IFM map."
|
265
|
-
|
271
|
+
MENU_EXPORT_INFORM6 = "Export as &Inform 6 Source...\t\tExport map as an Inform 6 source code file."
|
272
|
+
MENU_EXPORT_INFORM7 = "Export as &Inform 7 Source...\t\tExport map as an Inform 7 source code file."
|
266
273
|
MENU_EXPORT_TADS = "Export as &TADS3 Source...\t\tExport map as a TADS3 source code file."
|
267
274
|
|
268
275
|
MENU_PRINT = 'Print'
|
@@ -465,3 +472,5 @@ class Room
|
|
465
472
|
'nw',
|
466
473
|
]
|
467
474
|
end
|
475
|
+
|
476
|
+
AUTOMAP_IS_WAITING_FOR_MORE_TEXT = "Automap is waiting for more text."
|
@@ -2,7 +2,7 @@
|
|
2
2
|
TITLE = '#{PROGRAM_NAME} v#{VERSION} - Programado por #{AUTHOR}'
|
3
3
|
|
4
4
|
################ Errores
|
5
|
-
ERR_NO_FOX = 'Por favor instale la librería FXRuby (FOX) version 1.
|
5
|
+
ERR_NO_FOX = 'Por favor instale la librería FXRuby (FOX) version 1.6 o posterior.'
|
6
6
|
ERR_HAS_GEMS = 'Puede hacerlo si corre \'gem install -r fxruby\''
|
7
7
|
ERR_NO_YAML =<<'EOF'
|
8
8
|
Por favor instale la librería 'yaml'.
|
@@ -65,8 +65,10 @@ FMT_TRIZBORT = 'Mapa Trizbort (*.trizbort)'
|
|
65
65
|
MSG_SAVE_MAP_AS_IFM = 'Grabar Mapa como Archivo IFM'
|
66
66
|
FMT_IFM = 'Mapa IFM (*.ifm)'
|
67
67
|
|
68
|
-
|
69
|
-
|
68
|
+
MSG_SAVE_MAP_AS_INFORM6 = 'Grabar Mapa como Archivo Inform6'
|
69
|
+
MSG_SAVE_MAP_AS_INFORM7 = 'Grabar Mapa como Archivo Inform7'
|
70
|
+
FMT_INFORM6 = 'Inform6 Source Code (*.inf)'
|
71
|
+
FMT_INFORM7 = 'Inform7 Source Code (*.inform)'
|
70
72
|
|
71
73
|
MSG_SAVE_MAP_AS_TADS = 'Grabar Mapa como Archivo TADS3'
|
72
74
|
FMT_TADS = 'Codigo Fuente de TADS (*.t)'
|
@@ -267,7 +269,8 @@ MENU_EXPORT = 'Exportar'
|
|
267
269
|
MENU_EXPORT_PDF = "Exportar como &PDF...\t\tExportar mapa como documento Acrobat PDF."
|
268
270
|
MENU_EXPORT_TRIZBORT = "Exportar como Triz&bort...\t\tExportar mapa como un archivo Trizbort."
|
269
271
|
MENU_EXPORT_IFM = "Exportar como &IFM...\t\tExportar mapa como un archivo IFM."
|
270
|
-
|
272
|
+
MENU_EXPORT_INFORM6 = "Exportar como Código Fuente de &Inform 6...\t\tExportar mapa como un código fuente de Inform 6."
|
273
|
+
MENU_EXPORT_INFORM7 = "Exportar como Código Fuente de &Inform 7...\t\tExportar mapa como un código fuente de Inform 7."
|
271
274
|
MENU_EXPORT_TADS = "Exportar como Código Fuente de &TADS3...\t\tExportar mapa como un código fuente de TADS3."
|
272
275
|
|
273
276
|
MENU_PRINT = 'Imprimir'
|
@@ -469,3 +472,5 @@ class Room
|
|
469
472
|
'no',
|
470
473
|
]
|
471
474
|
end
|
475
|
+
|
476
|
+
AUTOMAP_IS_WAITING_FOR_MORE_TEXT = "Automap espera por más texto."
|
data/maps/Hunter.map
ADDED
Binary file
|
data/maps/Planetfall.map
CHANGED
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ifmapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 3
|
10
|
+
version: 1.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gonzalo Garramuno
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-06-
|
18
|
+
date: 2011-06-13 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -246,6 +246,7 @@ files:
|
|
246
246
|
- maps/heroes.map
|
247
247
|
- maps/Heroine.map
|
248
248
|
- maps/History Repeating.map
|
249
|
+
- maps/Hunter.map
|
249
250
|
- maps/inhumane.map
|
250
251
|
- maps/Janitor.map
|
251
252
|
- maps/Jigsaw.map
|