Added the launcher and files.
This commit is contained in:
229
ack_launcher.tcl
Executable file
229
ack_launcher.tcl
Executable file
@@ -0,0 +1,229 @@
|
||||
#! /usr/bin/env wish
|
||||
|
||||
# Copyright (c) 2015, Miguel Angel Astor Romero
|
||||
# All rights reserved.
|
||||
# See the enclosed LICENSE file for more information.
|
||||
|
||||
frame .banner -relief flat
|
||||
frame .info_f -relief flat
|
||||
frame .buttons -relief flat -pady 5
|
||||
frame .bottom -relief flat -pady 5
|
||||
pack .banner -fill both -expand 1
|
||||
pack .info_f -fill both -expand 1
|
||||
pack .buttons -fill both -expand 1
|
||||
pack .bottom -fill both -expand 1
|
||||
|
||||
image create photo bar1 -format GIF -file "launcher_icons/banner1.gif"
|
||||
image create photo bar2 -format GIF -file "launcher_icons/banner2.gif"
|
||||
image create photo con -format GIF -file "launcher_icons/configure.gif"
|
||||
image create photo cre -format GIF -file "launcher_icons/create.gif"
|
||||
image create photo fon -format GIF -file "launcher_icons/font.gif"
|
||||
image create photo imp -format GIF -file "launcher_icons/import.gif"
|
||||
image create photo mac -format GIF -file "launcher_icons/macros.gif"
|
||||
image create photo map -format GIF -file "launcher_icons/map.gif"
|
||||
image create photo mes -format GIF -file "launcher_icons/messages.gif"
|
||||
image create photo obj -format GIF -file "launcher_icons/object.gif"
|
||||
image create photo pep -format GIF -file "launcher_icons/people.gif"
|
||||
image create photo run -format GIF -file "launcher_icons/run.gif"
|
||||
image create photo til -format GIF -file "launcher_icons/tile.gif"
|
||||
|
||||
label .banner.bimg1 -image bar1
|
||||
label .banner.bimg2 -image bar2
|
||||
label .banner.just -font {-size 9 -weight bold} \
|
||||
-text " Just launch ACK: "
|
||||
checkbutton .banner.mouse_c -text "Enable mouse (experimental)" -onvalue 1 \
|
||||
-offvalue 0 -variable mouse_var
|
||||
label .banner.sclabel -text "Graphic Scaler: "
|
||||
ttk::combobox .banner.scaler -width 10
|
||||
.banner.scaler configure -values [ list none normal2x normal3x advmame2x \
|
||||
advmame3x hq2x hq3x 2xsai super2xsai supereagle advinterp2x \
|
||||
advinterp3x tv2x tv3x rgb2x rgb3x scan2x scan3x ]
|
||||
.banner.scaler configure -state readonly
|
||||
.banner.scaler set "hq3x"
|
||||
label .banner.fslabel -text "ALT + ENTER toggles fullscreen while running ACK"
|
||||
|
||||
label .sep1 \
|
||||
-text "------------------------------------------------------------------------"
|
||||
label .sep2 \
|
||||
-text "------------------------------------------------------------------------"
|
||||
|
||||
label .info1 -font {-size 9 -weight bold} \
|
||||
-text "... or launch multiple ACK editors"
|
||||
label .info2 -font {-size 9 -weight bold} \
|
||||
-text "in separate windows:"
|
||||
label .info3 -text "- Pick adventure with \"Select Adventure\" dropdown"
|
||||
label .info4 -text "- Click buttons below to launch editors"
|
||||
label .info5 -text "- Press TAB to save changes in current editor. Then"
|
||||
label .info6 -text "switch to another editor window and press TAB to"
|
||||
label .info7 -text "update it with the changes made in the previous"
|
||||
label .info8 -text "editor. (You may need to use a selection menu"
|
||||
label .info9 -text "before changes will appear.)"
|
||||
|
||||
label .buttons.butimg1 -image cre
|
||||
label .buttons.butimg2 -image con
|
||||
label .buttons.butimg3 -image til
|
||||
label .buttons.butimg4 -image map
|
||||
label .buttons.butimg5 -image imp
|
||||
label .buttons.butimg6 -image fon
|
||||
label .buttons.butimg7 -image obj
|
||||
label .buttons.butimg8 -image pep
|
||||
label .buttons.butimg9 -image mes
|
||||
label .buttons.butimg10 -image mac
|
||||
label .buttons.butimg11 -image run
|
||||
|
||||
button .banner.b01 -text "Go!" -command "ack_base" -width 10
|
||||
button .buttons.b02 -text "Create Adventure" -command "ackmod -n" -width 15
|
||||
button .buttons.b03 -text "Configure Adventure" \
|
||||
-command "ackmod -c" -width 15
|
||||
button .buttons.b04 -text "Edit Objects" -command "ackmod -o" -width 15
|
||||
button .buttons.b05 -text "Tile Editor" -command "ackmod -g" -width 15
|
||||
button .buttons.b06 -text "Edit People" -command "ackmod -p" -width 15
|
||||
button .buttons.b07 -text "Map Editor" -command "ackmod -m" -width 15
|
||||
button .buttons.b08 -text "Edit Messages" -command "ackmod -t" -width 15
|
||||
button .buttons.b09 -text "Import / Export" -command "ackmod -i" -width 15
|
||||
button .buttons.b10 -text "Edit Macros" -command "ackmod -x" -width 15
|
||||
button .buttons.b11 -text "Edit Font" -command "ackmod -f" -width 15
|
||||
button .buttons.b12 -text "Run Adventure" -command "ackmod -r" -width 15
|
||||
button .bottom.b13 -text "ACK Manual" -command "game_manual" -width 10
|
||||
button .bottom.b14 -text "Open Game Folder" -command "game_dir" -width 15
|
||||
button .bottom.b15 -text "Visit ACK Site" -command "home_page" -width 10
|
||||
button .buttons.b89 -text "Refresh Adventures" -command "refresh" -width 15
|
||||
|
||||
label .buttons.advlbl -text "Select Adventure:"
|
||||
ttk::combobox .buttons.advents
|
||||
.buttons.advents configure -values [ concat ".. " [ exec ls -1 "ACK/GAMES/" ] ]
|
||||
.buttons.advents configure -state readonly
|
||||
.buttons.advents set ".."
|
||||
bind .buttons.advents <<ComboboxSelected>> {
|
||||
if { [.buttons.advents get] == ".." } {
|
||||
disable_buttons
|
||||
} else {
|
||||
enable_buttons
|
||||
}
|
||||
}
|
||||
|
||||
grid .banner -row 0 -column 0
|
||||
grid .banner.bimg1 -row 0 -column 0 -rowspan 5
|
||||
grid .banner.just -row 0 -column 1 -columnspan 2
|
||||
grid .banner.b01 -row 1 -column 1 -columnspan 2
|
||||
grid .banner.bimg2 -row 0 -column 3 -rowspan 5
|
||||
grid .banner.mouse_c -row 3 -column 1 -columnspan 2
|
||||
grid .banner.sclabel -row 5 -column 1
|
||||
grid .banner.scaler -row 5 -column 2
|
||||
grid .banner.fslabel -row 6 -column 0 -columnspan 4
|
||||
|
||||
grid .sep1 -row 1 -column 0
|
||||
grid .info_f -row 2 -column 0
|
||||
pack .info1 -in .info_f
|
||||
pack .info2 -in .info_f
|
||||
pack .info3 -in .info_f -anchor w
|
||||
pack .info4 -in .info_f -anchor w
|
||||
pack .info5 -in .info_f -anchor w
|
||||
pack .info6 -in .info_f -anchor w
|
||||
pack .info7 -in .info_f -anchor w
|
||||
pack .info8 -in .info_f -anchor w
|
||||
pack .info9 -in .info_f -anchor w
|
||||
|
||||
grid .buttons -row 3 -column 0
|
||||
grid .buttons.advlbl -row 0 -column 1 -columnspan 2
|
||||
grid .buttons.advents -row 1 -column 1 -columnspan 2
|
||||
grid .buttons.butimg1 -row 2 -column 0
|
||||
grid .buttons.butimg2 -row 3 -column 0
|
||||
grid .buttons.butimg3 -row 4 -column 0
|
||||
grid .buttons.butimg4 -row 5 -column 0
|
||||
grid .buttons.butimg5 -row 6 -column 0
|
||||
grid .buttons.butimg6 -row 7 -column 0
|
||||
grid .buttons.b02 -row 2 -column 1
|
||||
grid .buttons.b03 -row 3 -column 1
|
||||
grid .buttons.b05 -row 4 -column 1
|
||||
grid .buttons.b07 -row 5 -column 1
|
||||
grid .buttons.b09 -row 6 -column 1
|
||||
grid .buttons.b11 -row 7 -column 1
|
||||
grid .buttons.b89 -row 2 -column 2
|
||||
grid .buttons.b04 -row 3 -column 2
|
||||
grid .buttons.b06 -row 4 -column 2
|
||||
grid .buttons.b08 -row 5 -column 2
|
||||
grid .buttons.b10 -row 6 -column 2
|
||||
grid .buttons.b12 -row 7 -column 2
|
||||
grid .buttons.butimg7 -row 3 -column 3
|
||||
grid .buttons.butimg8 -row 4 -column 3
|
||||
grid .buttons.butimg9 -row 5 -column 3
|
||||
grid .buttons.butimg10 -row 6 -column 3
|
||||
grid .buttons.butimg11 -row 7 -column 3
|
||||
|
||||
grid .sep2 -row 4 -column 0
|
||||
grid .bottom -row 5 -column 0
|
||||
grid .bottom.b13 -row 0 -column 0
|
||||
grid .bottom.b14 -row 0 -column 1
|
||||
grid .bottom.b15 -row 0 -column 2
|
||||
|
||||
proc refresh {} {
|
||||
.buttons.advents configure -values [ concat ".. " [ exec ls -1 "GAMES/" ] ]
|
||||
}
|
||||
|
||||
proc ack_base {} {
|
||||
set scaler [ .banner.scaler get ]
|
||||
exec dosbox -scaler $scaler -conf dosbox.conf -noconsole -c "ack.bat -exit" &
|
||||
}
|
||||
|
||||
proc ackmod module {
|
||||
global mouse_var
|
||||
if { $module == "-r" } then {
|
||||
set scaler [ .banner.scaler get ]
|
||||
} else {
|
||||
set scaler "hq2x"
|
||||
}
|
||||
if { $mouse_var == 1 && $module == "-r" } then {
|
||||
set use_mouse "-mouse"
|
||||
} else {
|
||||
set use_mouse ""
|
||||
}
|
||||
set command [ concat "ackmod $module" [ \
|
||||
concat [ .buttons.advents get ] "$use_mouse" ] ]
|
||||
exec dosbox -scaler $scaler -conf dosbox.conf -noconsole -c $command &
|
||||
}
|
||||
|
||||
proc game_dir {} {
|
||||
if { [.buttons.advents get] != ".." } then {
|
||||
set game [ .buttons.advents get ]
|
||||
exec nautilus "GAMES/$game" &
|
||||
}
|
||||
}
|
||||
|
||||
proc game_manual {} { exec evince "MANUAL.PDF" & }
|
||||
|
||||
proc home_page {} { exec firefox "http://mozomedia.com/ack/" & }
|
||||
|
||||
proc disable_buttons {} {
|
||||
.buttons.b03 configure -state disabled
|
||||
.buttons.b04 configure -state disabled
|
||||
.buttons.b05 configure -state disabled
|
||||
.buttons.b06 configure -state disabled
|
||||
.buttons.b07 configure -state disabled
|
||||
.buttons.b08 configure -state disabled
|
||||
.buttons.b09 configure -state disabled
|
||||
.buttons.b10 configure -state disabled
|
||||
.buttons.b11 configure -state disabled
|
||||
.buttons.b12 configure -state disabled
|
||||
.bottom.b14 configure -state disabled
|
||||
}
|
||||
|
||||
proc enable_buttons {} {
|
||||
.buttons.b03 configure -state normal
|
||||
.buttons.b04 configure -state normal
|
||||
.buttons.b05 configure -state normal
|
||||
.buttons.b06 configure -state normal
|
||||
.buttons.b07 configure -state normal
|
||||
.buttons.b08 configure -state normal
|
||||
.buttons.b09 configure -state normal
|
||||
.buttons.b10 configure -state normal
|
||||
.buttons.b11 configure -state normal
|
||||
.buttons.b12 configure -state normal
|
||||
.bottom.b14 configure -state normal
|
||||
}
|
||||
|
||||
wm resizable . false false
|
||||
wm title . "ACK Launcher"
|
||||
disable_buttons
|
||||
set mouse_var 0
|
||||
cd "ACK"
|
Reference in New Issue
Block a user