├── template ├── snddir ├── vol.0 ├── logdir ├── object ├── picdir ├── viewdir ├── words.tok └── src │ ├── logic1.txt │ ├── newroom.txt │ ├── logic92.txt │ └── logic98.txt ├── packaging ├── debian │ ├── docs │ ├── dirs │ ├── agistudio.install │ ├── menu │ ├── agistudio.doc-base │ ├── control │ ├── agistudio.xpm │ └── copyright ├── agistudio.desktop ├── README.Packaging └── rpm │ └── agistudio.spec ├── help ├── kq3.png ├── logo.bmp ├── logo.png ├── notes ├── pridemo-1.pmg ├── pridemo-1.png ├── pridemo-2.png ├── logic-editor.png ├── view-editor.png ├── view-viewing.png ├── object-editor.png ├── picture-editor.png ├── picture-viewing.png ├── wordstok-editor.png ├── agi-pic-template.pdf ├── agi-pic-template.sxd ├── view-description.png ├── logic_diag-directions.png ├── sound_commands.html ├── renumbering_resources.html ├── set.html ├── version.html ├── parse.html ├── reset.html ├── set_string.html ├── shake_screen.html ├── cancel_line.html ├── drop.html ├── draw.html ├── have_key.html ├── picture_commands.html ├── set_v.html ├── erase.html ├── init_joy.html ├── restart_game.html ├── reset_v.html ├── get_room_v.html ├── set_upper_left.html ├── load_sound.html ├── toggle.html ├── put.html ├── assignn.html ├── put_v.html ├── string_commands.html ├── wander.html ├── deleting_resources.html ├── discard_sound.html ├── show_pri_screen.html ├── assignv.html ├── unanimate_all.html ├── get_priority.html ├── script_size.html ├── toggle_v.html ├── quit.html ├── random.html ├── show_pic.html ├── word_to_string.html ├── get.html ├── get_posn.html ├── get_v.html ├── obj_status_v.html ├── prevent_input.html ├── test.html ├── decrement.html ├── increment.html ├── equaln.html ├── isset.html ├── debug_commands.html ├── log.html ├── release_key.html ├── allow_menu.html ├── flag_commands.html ├── issetv.html ├── set_cursor_char.html ├── div_n.html ├── lessn.html ├── div_v.html ├── equalv.html ├── lessv.html ├── pause.html ├── pop_script.html ├── push_script.html ├── reset_scan_start.html ├── greatern.html ├── init_disk.html ├── lindirectn.html ├── current_view.html ├── lindirectv.html ├── rindirect.html ├── enable_item.html ├── greaterv.html ├── display.html ├── obj_in_room.html ├── set_pri_base.html ├── unblock.html ├── graphics.html ├── return.html ├── start_update.html ├── stop_sound.html ├── set_scan_start.html ├── subn.html ├── adding_resources.html ├── call.html ├── has.html ├── release_loop.html ├── subv.html ├── addv.html ├── call_v.html ├── addn.html ├── get_num.html ├── mul_v.html ├── hold_key.html ├── mul_n.html ├── accept_input.html ├── animate_obj.html ├── discard_pic.html ├── display_v.html ├── echo_line.html ├── stop_update.html ├── clear_lines.html ├── hide_mouse.html ├── load_pic.html ├── ignore_horizon.html ├── current_cel.html ├── get_dir.html ├── get_string.html ├── observe_horizon.html ├── player_control.html ├── control_commands.html ├── compare_strings.html ├── controller.html ├── load_logics.html ├── observe_objs.html ├── show_mouse.html ├── trace_on.html ├── force_update.html ├── load_logics_v.html ├── object_on_anything.html ├── last_cel.html ├── close_window.html ├── current_loop.html ├── status.html ├── mouse_posn.html ├── object_on_land.html ├── object_on_water.html ├── end_of_loop.html ├── fence_mouse.html ├── about_help.html ├── fix_loop.html ├── number_of_loops.html ├── reverse_loop.html ├── set_menu.html ├── distance.html ├── inventory_commands.html ├── clear_text_rect.html ├── obj_in_box.html ├── posn.html ├── release_priority.html ├── restore_game.html ├── show_mem.html ├── step_size.html ├── stop_motion.html ├── center_posn.html ├── right_posn.html ├── opening_games.html ├── set_view.html ├── disable_item.html ├── set_view_v.html ├── menu_commands.html ├── save_game.html ├── discard_view.html ├── follow_ego.html ├── ignore_blocks.html ├── trace_info.html ├── close_dialogue.html ├── discard_view_v.html ├── logic_contents.html ├── open_dialogue.html ├── observe_blocks.html ├── status_line_on.html ├── stop_cycling.html ├── cycle_time.html ├── sound.html ├── draw_pic.html ├── set_menu_item.html ├── normal_cycle.html ├── positioning_objects.html ├── reverse_cycle.html ├── status_line_off.html ├── normal_motion.html ├── ignore_objs.html ├── submit_menu.html ├── step_time.html ├── load_view.html ├── print.html ├── load_view_v.html ├── print_v.html ├── print_at.html ├── set_text_attribute.html ├── program_control.html ├── project_status.html ├── set_dir.html ├── print_at_v.html ├── extra_commands.html ├── extracting_resources.html ├── set_cel.html ├── sound_descr.html ├── set_cel_v.html ├── set_loop.html ├── text_screen.html ├── set_loop_v.html ├── start_cycling.html ├── set_horizon.html ├── reposition_to.html ├── test_commands.html ├── start_motion.html ├── position.html ├── reposition_to_v.html ├── system_commands.html ├── displaying_text.html ├── position_v.html ├── data_used.html ├── menu_input.html ├── add_to_pic.html ├── commands_by_category.html ├── reposition.html ├── add_to_pic_v.html ├── text_editor_main.html ├── configure_screen.html ├── show_obj.html ├── block.html ├── show_obj_v.html ├── viewing_resources.html ├── objects.html ├── getting_started.html ├── logic_descr.html ├── overlay_pic.html ├── trace_mode.html ├── math_commands.html ├── set_simple.html ├── set_priority.html ├── set_game_id.html ├── set_priority_v.html ├── rebuilding_vol_files.html ├── toggle_monitor.html ├── display_commands.html ├── files_used.html ├── new_room.html └── new_room_v.html ├── src ├── resources │ ├── appicon.ico │ ├── AGIStudio.icns │ ├── left.xpm │ ├── left1.xpm │ ├── left2.xpm │ ├── left_x.xpm │ ├── right.xpm │ ├── left1_x.xpm │ ├── left2_x.xpm │ ├── right1.xpm │ ├── right1_x.xpm │ ├── right2.xpm │ ├── right2_x.xpm │ ├── right_x.xpm │ ├── uparrow_x.xpm │ ├── downarrow_x.xpm │ ├── leftarrow_x.xpm │ ├── rightarrow_x.xpm │ ├── agistudio.rc │ ├── home.xpm │ ├── back.xpm │ ├── forward.xpm │ ├── Info.plist │ ├── zoom_minus.xpm │ ├── zoom_plus.xpm │ ├── zoom_plus_x.xpm │ └── zoom_minus_x.xpm ├── resource.h ├── ui │ └── CMakeLists.txt ├── midi.h ├── logic.cpp └── bmp2agipic.h ├── cmake └── GitVersion.cmake ├── agistudio.1 └── relnotes /template/snddir: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packaging/debian/docs: -------------------------------------------------------------------------------- 1 | README 2 | relnotes 3 | -------------------------------------------------------------------------------- /help/kq3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/kq3.png -------------------------------------------------------------------------------- /help/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/logo.bmp -------------------------------------------------------------------------------- /help/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/logo.png -------------------------------------------------------------------------------- /template/vol.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/template/vol.0 -------------------------------------------------------------------------------- /help/notes: -------------------------------------------------------------------------------- 1 | picedit 22 2 | 3 | view 76 4 | or 79 5 | 6 | preview view descr 101 7 | -------------------------------------------------------------------------------- /template/logdir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/template/logdir -------------------------------------------------------------------------------- /template/object: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/template/object -------------------------------------------------------------------------------- /template/picdir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/template/picdir -------------------------------------------------------------------------------- /template/viewdir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/template/viewdir -------------------------------------------------------------------------------- /help/pridemo-1.pmg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/pridemo-1.pmg -------------------------------------------------------------------------------- /help/pridemo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/pridemo-1.png -------------------------------------------------------------------------------- /help/pridemo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/pridemo-2.png -------------------------------------------------------------------------------- /template/words.tok: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/template/words.tok -------------------------------------------------------------------------------- /help/logic-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/logic-editor.png -------------------------------------------------------------------------------- /help/view-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/view-editor.png -------------------------------------------------------------------------------- /help/view-viewing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/view-viewing.png -------------------------------------------------------------------------------- /help/object-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/object-editor.png -------------------------------------------------------------------------------- /help/picture-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/picture-editor.png -------------------------------------------------------------------------------- /help/picture-viewing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/picture-viewing.png -------------------------------------------------------------------------------- /help/wordstok-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/wordstok-editor.png -------------------------------------------------------------------------------- /packaging/debian/dirs: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/share/agistudio/help 3 | usr/share/agistudio/template/src 4 | -------------------------------------------------------------------------------- /help/agi-pic-template.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/agi-pic-template.pdf -------------------------------------------------------------------------------- /help/agi-pic-template.sxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/agi-pic-template.sxd -------------------------------------------------------------------------------- /help/view-description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/view-description.png -------------------------------------------------------------------------------- /src/resources/appicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/src/resources/appicon.ico -------------------------------------------------------------------------------- /src/resources/AGIStudio.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/src/resources/AGIStudio.icns -------------------------------------------------------------------------------- /help/logic_diag-directions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Deledrius/agistudio/HEAD/help/logic_diag-directions.png -------------------------------------------------------------------------------- /packaging/debian/agistudio.install: -------------------------------------------------------------------------------- 1 | src/agistudio usr/bin 2 | help usr/share/agistudio 3 | template usr/share/agistudio 4 | debian/agistudio.xpm usr/share/agistudio 5 | -------------------------------------------------------------------------------- /packaging/agistudio.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=QT AGI Studio 3 | Exec=agistudio 4 | Icon=qtagistudio 5 | Type=Application 6 | Terminal=false 7 | Categories=Development;Qt; 8 | -------------------------------------------------------------------------------- /packaging/debian/menu: -------------------------------------------------------------------------------- 1 | ?package(agistudio):needs="X11" section="Apps/Programming" \ 2 | title="Agistudio" \ 3 | icon="/usr/share/agistudio/agistudio.xpm" \ 4 | command="/usr/bin/agistudio" 5 | -------------------------------------------------------------------------------- /packaging/README.Packaging: -------------------------------------------------------------------------------- 1 | This directory contains packaging scripts for a few systems. 2 | If package this software to anothor system, please submit 3 | the scripts to us through the project support site so that 4 | we can add them here. 5 | 6 | - Jarno Elonen 7 | -------------------------------------------------------------------------------- /help/sound_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Sound commands 4 | 5 |

Sound commands

6 | load.sound

7 | sound

8 | stop.sound

9 | 10 | -------------------------------------------------------------------------------- /help/renumbering_resources.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Renumbering resources 4 | 5 |

Renumbering resources

6 | To renumber a resource, select the resource you wish to renumber and select 'Renumber' from the 'Resource' menu.

7 | Back to contents

8 | 9 | -------------------------------------------------------------------------------- /help/set.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set 4 | 5 |

set

6 | Category

7 | Flag commads

8 | Syntax

9 |

10 | set(fA);

11 | Description

12 |

13 | Flag fA is set.

14 | See also

15 | set.v

16 | 17 | -------------------------------------------------------------------------------- /help/version.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | version 4 | 5 |

version

6 | Category

7 | Debugging commands

8 | Syntax

9 |

10 | version();

11 | Description

12 |

13 | Displays the interpreter version.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/parse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | parse 4 | 5 |

parse

6 | Category

7 | String commands

8 | Syntax

9 |

10 | parse(sA);

11 | Description

12 |

13 | Parses string sA as if it were entered by the player.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/reset.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reset 4 | 5 |

reset

6 | Category

7 | Flag commads

8 | Syntax

9 |

10 | reset(fA);

11 | Description

12 |

13 | Flag fA is reset.

14 | See also

15 | reset.v

16 | 17 | -------------------------------------------------------------------------------- /help/set_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.string 4 | 5 |

set.string

6 | Category

7 | String commands

8 | Syntax

9 |

10 | set.string(sA,mB);

11 | Description

12 |

13 | Sets string sA to message mB.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/shake_screen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | shake.screen 4 | 5 |

shake.screen

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | shake.screen(A);

11 | Description

12 |

13 | Shakes the screen A times.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/cancel_line.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | cancel.line 4 | 5 |

cancel.line

6 | Category

7 | System commands

8 | Syntax

9 |

10 | cancel.line();

11 | Description

12 |

13 | Clears any text that is on the input line.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/drop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | drop 4 | 5 |

drop

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | drop(iITEM);

11 | Description

12 |

13 | The room number of inventory item iITEM is set to 0.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /packaging/debian/agistudio.doc-base: -------------------------------------------------------------------------------- 1 | Document: agistudio 2 | Title: QT AGI Studio User's Manual 3 | Author: Peter Kelly, Helen Zommer 4 | Abstract: This manual describes the user interface 5 | of QT AGI Studio, an adventure game IDE. 6 | Section: Apps/Programming 7 | 8 | Format: HTML 9 | Index: /usr/share/agistudio/help/index.html 10 | Files: /usr/share/agistudio/help/*.html 11 | -------------------------------------------------------------------------------- /help/draw.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | draw 4 | 5 |

draw

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | draw(oA);

11 | Description

12 |

13 | Object oA is drawn on screen.

14 | See also

15 | erase

16 | 17 | -------------------------------------------------------------------------------- /help/have_key.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | have.key 4 | 5 |

have.key

6 | Category

7 | Test commands

8 |

9 | Syntax

10 |

11 | if (have.key()) { .....

12 | Description

13 |

14 | Returns true if the user has pressed a key.

15 | See also

16 | 17 | -------------------------------------------------------------------------------- /help/picture_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Picture commands 4 | 5 |

Picture commands

6 | discard.pic

7 | draw.pic

8 | load.pic

9 | overlay.pic

10 | show.pic

11 | 12 | -------------------------------------------------------------------------------- /help/set_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.v 4 | 5 |

set.v

6 | Category

7 | Flag commads

8 | Syntax

9 |

10 | set.v(vA);

11 | Description

12 |

13 | Flag fB (where B is the value of vA) is set.

14 | See also

15 | set

16 | 17 | -------------------------------------------------------------------------------- /help/erase.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | erase 4 | 5 |

erase

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | erase(oA);

11 | Description

12 |

13 | Object oA is erased from the screen.

14 | See also

15 | draw

16 | 17 | -------------------------------------------------------------------------------- /help/init_joy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | init.joy 4 | 5 |

init.joy

6 | Category

7 | System commands

8 | Syntax

9 |

10 | init.joy();

11 | Description

12 |

13 | Calibrates the joystick, if there is one connected to the computer.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/restart_game.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | restart.game 4 | 5 |

restart.game

6 | Category

7 | System commands

8 | Syntax

9 |

10 | restart.game();

11 | Description

12 |

13 | Restarts the game, taking the player back to the beginning.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/reset_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reset.v 4 | 5 |

reset.v

6 | Category

7 | Flag commads

8 | Syntax

9 |

10 | reset.v(vA);

11 | Description

12 |

13 | Flag fB (where B is the value of vA) is reset.

14 | See also

15 | reset

16 | 17 | -------------------------------------------------------------------------------- /help/get_room_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.room.v 4 | 5 |

get.room.v

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | get.room.v(vITEM,vROOM);

11 | Description

12 |

13 | vROOM is set to the room number of inventory item vITEM.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/set_upper_left.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.upper.left 4 | 5 |

set.upper.left

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.upper.left(A,B);

11 | Description

12 |

13 | The purpose of this command is not currently known.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/load_sound.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | load.sound 4 | 5 |

load.sound

6 | Category

7 | Sound commands

8 | Syntax

9 |

10 | load.sound(SOUNDNO);

11 | Description

12 |

13 | Sound SOUNDNO is loaded into memory.

14 | See also

15 | sound

16 | 17 | -------------------------------------------------------------------------------- /help/toggle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | toggle 4 | 5 |

toggle

6 | Category

7 | Flag commads

8 | Syntax

9 |

10 | toggle(fA);

11 | Description

12 |

13 | If flag fA is set, then it is reset. Otherwise it is set.

14 | See also

15 | toggle.v

16 | 17 | -------------------------------------------------------------------------------- /help/put.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | put 4 | 5 |

put

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | put(iITEM,ROOM);

11 | Description

12 |

13 | The room number of inventory item iITEM is set to ROOM.

14 | See also

15 | put.v

16 | 17 | -------------------------------------------------------------------------------- /help/assignn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | assignn 4 | 5 |

assignn

6 | Category

7 | Mathematical commands

8 |

9 | Syntax

10 |

11 | assignn(vA,B);

12 | vA = B;

13 | Description

14 |

15 | The value of vA is set to B.

16 | See also

17 | assignv

18 | 19 | -------------------------------------------------------------------------------- /help/put_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | put.v 4 | 5 |

put.v

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | put.v(vITEM,vROOM);

11 | Description

12 |

13 | The room number of inventory item vITEM is set to vROOM.

14 | See also

15 | put

16 | 17 | -------------------------------------------------------------------------------- /help/string_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | String commands 4 | 5 |

String commands

6 | get.string

7 | parse

8 | set.string

9 | word.to.string

10 | Test commands

11 | compare.strings

12 | 13 | -------------------------------------------------------------------------------- /help/wander.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | wander 4 | 5 |

wander

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | wander(oA);

11 | Description

12 |

13 | Object oA wanders randomly around the screen.

14 | See also

15 | Moving objects

16 | 17 | -------------------------------------------------------------------------------- /help/deleting_resources.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Deleting resources 4 | 5 |

Deleting resources

6 | To delete a resource, click on the resource you wish to delete and select 'Delete' from the 'Resource' menu. Note: Once you have deleted a resource, it is permanently deleted. There is no 7 | "undelete" feature. 8 |

9 | Back to contents

10 | 11 | -------------------------------------------------------------------------------- /help/discard_sound.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | discard.sound 4 | 5 |

discard.sound

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | discard.sound(A);

11 | Description

12 |

13 | This command discards sound A. 14 | Does not work on Sierra's PC version of the interpreter.

15 | See also

16 | 17 | -------------------------------------------------------------------------------- /help/show_pri_screen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | show.pri.screen 4 | 5 |

show.pri.screen

6 | Category

7 | Debugging commands

8 | Syntax

9 |

10 | show.pri.screen();

11 | Description

12 |

13 | Displays the priority screen.

14 | See also

15 | Priorities

16 | 17 | -------------------------------------------------------------------------------- /help/assignv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | assignv 4 | 5 |

assignv

6 | Category

7 | Mathematical commands

8 |

9 | Syntax

10 |

11 | assignv(vA,vB);

12 | vA = vB;

13 | Description

14 |

15 | The value of vA is set to the value of vB.

16 | See also

17 | assignn

18 | 19 | -------------------------------------------------------------------------------- /help/unanimate_all.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | unanimate.all 4 | 5 |

unanimate.all

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | unanimate.all();

11 | Description

12 |

13 | This deactivates all screen objects.

14 | See also

15 | animate.obj

16 | 17 | -------------------------------------------------------------------------------- /help/get_priority.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.priority 4 | 5 |

get.priority

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | get.priority(oA,vPRI);

11 | Description

12 |

13 | vPRI is set to the priority of object oA.

14 | See also

15 | Priorities

16 | 17 | -------------------------------------------------------------------------------- /help/script_size.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | script.size 4 | 5 |

script.size

6 | Category

7 | System commands

8 | Syntax

9 |

10 | script.size(SIZE);

11 | Description

12 |

13 | The maximum script size is set to SIZE. For more information, click here

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/toggle_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | toggle.v 4 | 5 |

toggle.v

6 | Category

7 | Flag commads

8 | Syntax

9 |

10 | toggle.v(vA);

11 | Description

12 |

13 | If flag fB (where B is the value of vA) is set, then it is reset. Otherwise it is set.

14 | See also

15 | toggle

16 | 17 | -------------------------------------------------------------------------------- /help/quit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | quit 4 | 5 |

quit

6 | Category

7 | System commands

8 | Syntax

9 |

10 | quit(nCONFIRM);

11 | Description

12 |

13 | Quits the game. If nCONFORM is 1, then the game will quit instantly. If nCONFIRM is 0 (or anything else), the user will be prompted first.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/random.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | random 4 | 5 |

random

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | random(A,B,vC);

11 | Description

12 |

13 | The value of vC is set to a random number between A and B. If A is greater than B, then the number chosen is in the 0-255 range.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/show_pic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | show.pic 4 | 5 |

show.pic

6 | Category

7 | Picture commands

8 | Syntax

9 |

10 | show.pic();

11 | Description

12 |

13 | The visual screen held in memory is updated on the actual screen.

14 | See also

15 | Drawing pictures

16 | 17 | -------------------------------------------------------------------------------- /help/word_to_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | word.to.string 4 | 5 |

word.to.string

6 | Category

7 | String commands

8 | Syntax

9 |

10 | word.to.string(wA,sB);

11 | Description

12 |

13 | This command is supposed to convert a word to a string, but I have not been able to get it to work.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/get.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get 4 | 5 |

get

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | get(iITEM);

11 | Description

12 |

13 | The room number of inventory item iITEM is set to 255, placing the item in the player's inventory.

14 | See also

15 | get.v

16 | 17 | -------------------------------------------------------------------------------- /help/get_posn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.posn 4 | 5 |

get.posn

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | get.posn(oA,vX,vY);

11 | Description

12 |

13 | vX and vY are set to the X and Y co-ordinates of object oA.

14 | See also

15 | Positioning objects

16 | 17 | -------------------------------------------------------------------------------- /help/get_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.v 4 | 5 |

get.v

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | get.v(vITEM);

11 | Description

12 |

13 | The room number of inventory item vITEM is set to 255, placing the item in the player's inventory.

14 | See also

15 | get

16 | 17 | -------------------------------------------------------------------------------- /help/obj_status_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | obj.status.v 4 | 5 |

obj.status.v

6 | Category

7 | Debugging commands

8 | Syntax

9 |

10 | obj.status.v(oA);

11 | Description

12 |

13 | Shows stats about an object - its co-ordinates, size, priority and step size.

14 | See also

15 | Objects

16 | 17 | -------------------------------------------------------------------------------- /help/prevent_input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | prevent.input 4 | 5 |

prevent.input

6 | Category

7 | System commands

8 | Syntax

9 |

10 | prevent.input();

11 | Description

12 |

13 | Hides the input prompt and prevents the player from entering input.

14 | See also

15 | accept.input

16 | 17 | -------------------------------------------------------------------------------- /help/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | test1 5 | 6 | 7 | 8 |

test1

9 | 10 | 11 | 12 |
13 |
helen
14 | 15 | 16 | Last modified: Sun Mar 19 21:22:28 IST 2000 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /help/decrement.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | decrement 4 | 5 |

decrement

6 | Category

7 | Mathematical commands

8 |

9 | Syntax

10 |

11 | decrement(vA);

12 | vA--;

13 | Description

14 |

15 | If the value of vA is greater than 0, then it is decreased by 1.

16 | See also

17 | increment

18 | 19 | -------------------------------------------------------------------------------- /help/increment.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | increment 4 | 5 |

increment

6 | Category

7 | Mathematical commands

8 |

9 | Syntax

10 |

11 | increment(vA);

12 | vA++;

13 | Description

14 |

15 | If the value of vA is less than 255, then it is increased by 1.

16 | See also

17 | decrement

18 | 19 | -------------------------------------------------------------------------------- /help/equaln.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | equaln 4 | 5 |

equaln

6 | Category

7 | Test commands / Mathematical commands

8 | Syntax

9 | if (equaln(vA,B)) { .....

10 | if (vA == B) { .....

11 | Description

12 | Returns true if vA is equal to B.

13 | See also

14 | equalv

15 | 16 | -------------------------------------------------------------------------------- /help/isset.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | isset 4 | 5 |

isset

6 | Category

7 | Test commands / Flag commads

8 |

9 | Syntax

10 |

11 | if (isset(fA)) { .....

12 | if (fA) { .....

13 | Description

14 |

15 | Returns true if flag fA is set.

16 | See also

17 | issetv

18 | 19 | -------------------------------------------------------------------------------- /help/debug_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Debugging commands 4 | 5 |

Debugging commands

6 | log

7 | obj.status.v

8 | show.mem

9 | show.pri.screen

10 | trace.info

11 | trace.on

12 | version

13 | 14 | -------------------------------------------------------------------------------- /help/log.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | log 4 | 5 |

log

6 | Category

7 | Debugging commands

8 |

9 | Syntax

10 |

11 | log(mLOGMESSAGE);

12 | Description

13 |

14 | Writes the current room number (value of v0), the input line given by the player and message mLOGMESSAGE to a file called logfile in the game's directory.

15 | See also

16 | 17 | -------------------------------------------------------------------------------- /help/release_key.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | release.key 4 | 5 |

release.key

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | release.key();

11 | Description

12 |

13 | This command restablishes the default control of Ego. It is normally used after a call to hold.key().

14 | See also

15 | hold.key

16 | 17 | -------------------------------------------------------------------------------- /help/allow_menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | allow.menu 4 | 5 |

allow.menu

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | allow.menu(A);

11 | Description

12 |

13 | This command determines whether the menu is activated or not.

14 | If A = 0 then the menu is turned off.
15 | If A = 1 then the menu is turned on.

16 | See also

17 | 18 | -------------------------------------------------------------------------------- /help/flag_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Flag commads 4 | 5 |

Flag commads

6 | reset.v

7 | reset

8 | set.v

9 | set

10 | toggle.v

11 | toggle

12 | Test commands

13 | isset

14 | issetv

15 | 16 | -------------------------------------------------------------------------------- /help/issetv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | issetv 4 | 5 |

issetv

6 | Category

7 | Test commands / Flag commads

8 |

9 | Syntax

10 |

11 | if (isset(vA)) { .....

12 | Description

13 |

14 | Returns true if the flag determined by the value of vA is set.

15 | See also

16 | isset

17 | 18 | -------------------------------------------------------------------------------- /help/set_cursor_char.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.cursor.char 4 | 5 |

set.cursor.char

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | set.cursor.char(mCHAR);

11 | Description

12 |

13 | The cursor character (the character displayed at the end of the player input line) is set to the first character of message mCHAR.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/div_n.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | div.n 4 | 5 |

div.n

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | div.n(vA,B);

11 | vA /= B;

12 | vA = vA / B;

13 | Description

14 |

15 | vA is divided by B. The result is rounded down. If you divide by 0, the interpreter will crash.

16 | See also

17 | div.v

18 | 19 | -------------------------------------------------------------------------------- /help/lessn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lessn 4 | 5 |

lessn

6 | Category

7 | Test commands / Mathematical commands

8 |

9 | Syntax

10 |

11 | if (lessn(vA,B)) { .....

12 | if (vA < B) { .....

13 | Description

14 |

15 | Returns true if vA is less than B.

16 | See also

17 | lessv

18 | 19 | -------------------------------------------------------------------------------- /help/div_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | div.v 4 | 5 |

div.v

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | div.n(vA,vB);

11 | vA /= vB;

12 | vA = vA / vB;

13 | Description

14 |

15 | vA is divided by vB. The result is rounded down. If you divide by 0, the interpreter will crash.

16 | See also

17 | div.n

18 | 19 | -------------------------------------------------------------------------------- /help/equalv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | equalv 4 | 5 |

equalv

6 | Category

7 | Test commands / Mathematical commands

8 |

9 | Syntax

10 |

11 | if (equalv(vA,vB)) { .....

12 | if (vA == vB) { .....

13 | Description

14 | Returns true if vA is equal to vB.

15 | See also

16 | equaln

17 | 18 | -------------------------------------------------------------------------------- /help/lessv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lessv 4 | 5 |

lessv

6 | Category

7 | Test commands / Mathematical commands

8 |

9 | Syntax

10 |

11 | if (lessn(vA,vB)) { .....

12 | if (vA < vB) { .....

13 | Description

14 |

15 | Returns true if vA is less than vB.

16 | See also

17 | lessn

18 | 19 | -------------------------------------------------------------------------------- /help/pause.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pause 4 | 5 |

pause

6 | Category

7 | System commands

8 | Syntax

9 |

10 | pause();

11 | Description

12 |

13 | Pauses the game. This appears to be the same as the following command:

14 | print(" Game paused.\n"

15 | "Press Enter to continue.");

16 | See also

17 | print

18 | 19 | -------------------------------------------------------------------------------- /help/pop_script.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pop.script 4 | 5 |

pop.script

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | pop.script();

11 | Description

12 |

13 | This command is used if you want to load something and then unload it, so it does not use too much of the interpreter script. 14 | See also

15 | push.script

16 | 17 | -------------------------------------------------------------------------------- /help/push_script.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | push.script 4 | 5 |

push.script

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | push.script();

11 | Description

12 |

13 | This command is used if you want to load something and then unload it, so it does not use too much of the interpreter script. 14 | See also

15 | pop.script

16 | 17 | -------------------------------------------------------------------------------- /help/reset_scan_start.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reset.scan.start 4 | 5 |

reset.scan.start

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | reset.scan.start();

11 | Description

12 |

13 | Tells the interpreter to start execution of the logic from the start of the logic.

14 | See also

15 | set.scan.start

16 | 17 | -------------------------------------------------------------------------------- /help/greatern.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | greatern 4 | 5 |

greatern

6 | Category

7 | Test commands / Mathematical commands

8 |

9 | Syntax

10 |

11 | if (greatern(vA,B)) { .....

12 | if (vA > B) {

13 | Description

14 |

15 | Returns true if vA is greater than B.

16 | See also

17 | greaterv

18 | 19 | -------------------------------------------------------------------------------- /help/init_disk.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | init.disk 4 | 5 |

init.disk

6 | Category

7 | System commands

8 | Syntax

9 |

10 | init.disk();

11 | Description

12 |

13 | This command was presumably used to format a floppy disk (for saved game purposes) on Apple II and other versions of the interpreter. On the PC version, this command does nothing.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/lindirectn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lindirectn 4 | 5 |

lindirectn

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | lindirectn(vA,B);

11 | *vA = B;

12 | Description

13 |

14 | The value of vC (where C is the value of vA) is set to B.

15 | See also

16 | lindirectv

17 | rindirect

18 | 19 | -------------------------------------------------------------------------------- /help/current_view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | current.view 4 | 5 |

current.view

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | current.view(oA,vB);

11 | Description

12 |

13 | vB is set to the number of the view currently assigned to object oA.

14 | See also

15 | set.view

16 | set.view.v

17 | 18 | -------------------------------------------------------------------------------- /help/lindirectv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | lindirectv 4 | 5 |

lindirectv

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | lindirectn(vA,vB);

11 | *vA = vB;

12 | Description

13 |

14 | The value of vC (where C is the value of vA) is set to vB.

15 | See also

16 | lindirectn

17 | rindirect

18 | 19 | -------------------------------------------------------------------------------- /help/rindirect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | rindirect 4 | 5 |

rindirect

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | rindirect(vA,vB);

11 | vA = *vB;

12 | Description

13 |

14 | The value of vA is set to vC (where C is the value of vB).

15 | See also

16 | lindirectv

17 | lindirectn

18 | 19 | -------------------------------------------------------------------------------- /help/enable_item.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | enable.item 4 | 5 |

enable.item

6 | Category

7 | Menu/Key commands

8 | Syntax

9 |

10 | enable.item(cA);

11 | Description

12 |

13 | Enables the menu item that is assigned to controller cA.

14 | All menu items are enabled again whenever the game is restarted.

15 | See also

16 | disable.item

17 | 18 | -------------------------------------------------------------------------------- /help/greaterv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | greaterv 4 | 5 |

greaterv

6 | Category

7 | Test commands / Mathematical commands

8 |

9 | Syntax

10 |

11 | if (greaterv(vA,vB)) { .....

12 | if (vA > vB) { .....

13 | Description

14 |

15 | Returns true if vA is greater than vB.

16 | See also

17 | greatern

18 | 19 | -------------------------------------------------------------------------------- /help/display.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | display 4 | 5 |

display

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | display(ROW,COLUMN,mMESSAGE);

11 | Description

12 |

13 | Displays the text of message mMESSAGE at the specified row and column.

14 | See also

15 | display.v

16 | set.text.attribute

17 | 18 | -------------------------------------------------------------------------------- /help/obj_in_room.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | obj.in.room 4 | 5 |

obj.in.room

6 | Category

7 | Test commands / Inventory item commands

8 |

9 | Syntax

10 |

11 | if (obj.in.room(iA,vB)) { .....

12 | Description

13 |

14 | Returns true if the room number if inventory item iA is equal to vB.

15 | See also

16 | has

17 | 18 | -------------------------------------------------------------------------------- /help/set_pri_base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.pri.base 4 | 5 |

set.pri.base

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | set.pri.base(A);

11 | Description

12 |

13 | This command affects the priority base of the AGI interpreter. King?s Quest 4 uses this function to affect the table so the "base" (priorities <= 4) is bigger or larger at the top.

14 | See also

15 | 16 | -------------------------------------------------------------------------------- /help/unblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | unblock 4 | 5 |

unblock

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | unblock();

11 | Description

12 |

13 | This removes the block set up on the screen by the block command.

14 | See also

15 | block

16 | Controlling obstacles

17 | 18 | -------------------------------------------------------------------------------- /src/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by agistudio.rc 4 | // 5 | #define IDI_ICON1 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1000 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /help/graphics.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | graphics 4 | 5 |

graphics

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | graphics();

11 | Description

12 |

13 | Switches the interpreter back to graphics mode if it was previously switched to text mode (using the text.screen command).

14 | See also

15 | text.screen

16 | 17 | -------------------------------------------------------------------------------- /help/return.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | return 4 | 5 |

return

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | return();

11 | Description

12 |

13 | Ends execution of the current logic and returns to the logic that called it (or in the case of logic 0, goes on to the next interpreter cycle).

14 | This command is required at the end of every logic.

15 | See also

16 | 17 | -------------------------------------------------------------------------------- /help/start_update.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | start.update 4 | 5 |

start.update

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | start.update(oA);

11 | Description

12 |

13 | This tells the interpreter to update object oA at the start of every cycle.

14 | See also

15 | stop.update

16 | force.update

17 | 18 | -------------------------------------------------------------------------------- /help/stop_sound.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | stop.sound 4 | 5 |

stop.sound

6 | Category

7 | Sound commands

8 | Syntax

9 |

10 | stop.sound();

11 | Description

12 |

13 | If a sound is playing, it is stopped. The flag that was given as the second parameter of the sound command is set when this happens.

14 | See also

15 | sound

16 | 17 | -------------------------------------------------------------------------------- /help/set_scan_start.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.scan.start 4 | 5 |

set.scan.start

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | set.scan.start();

11 | Description

12 |

13 | Tells the intepreter to start execution of this logic from the current point, instead of from the start of the logic.

14 | See also

15 | reset.scan.start

16 | 17 | -------------------------------------------------------------------------------- /help/subn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | subn 4 | 5 |

subn

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | subn(vA,B);

11 | vA -= B;

12 | vA = vA - B;

13 | Description

14 |

15 | B is subtracted from vA. Since a var can only be from 0-255, if the result is less than 0, then the value wraps around, e.g. 10 - 12 would give 254.

16 | See also

17 | subv

18 | 19 | -------------------------------------------------------------------------------- /help/adding_resources.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Adding resources 4 | 5 |

Adding resources

6 | To add a resource, select 'Add' from the 'Resource' menu. Select the file you want to add. Once a file is selected, you will be prompted for the 7 | resource type and number (the program will attempt to determine this from the name of the file). 8 |

9 | In version 3 games, resources added or saved to the game are not compressed.

10 | Back to contents

11 | 12 | -------------------------------------------------------------------------------- /help/call.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | call 4 | 5 |

call

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | call(A);

11 | Description

12 |

13 | Logic A is executed once. If it is not already loaded into memory, it is loaded before being called and then unloaded again afterwards.

14 | See also

15 | call.v

16 | load.logics

17 | 18 | -------------------------------------------------------------------------------- /help/has.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | has 4 | 5 |

has

6 | Category

7 | Test commands / Inventory item commands

8 |

9 | Syntax

10 |

11 | if (has(iA)) { .....

12 | Description

13 |

14 | Returns true if the inventory item iA is in the player's inventory (i.e. the item's room number is 255).

15 | See also

16 | obj.in.room

17 | 18 | -------------------------------------------------------------------------------- /help/release_loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | release.loop 4 | 5 |

release.loop

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | release.loop(oA);

11 | Description

12 |

13 | This enables the interpreter to choose the loop number of an object based on its direction.

14 | See also

15 | fix.loop

16 | Cycling objects

17 | 18 | -------------------------------------------------------------------------------- /help/subv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | subv 4 | 5 |

subv

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | subv(vA,vB);

11 | vA -= vB;

12 | vA = vA - vB;

13 | Description

14 |

15 | vB is subtracted from vA. Since a var can only be from 0-255, if the result is less than 0, then the value wraps around, e.g. 10 - 12 would give 254.

16 | See also

17 | subn

18 | 19 | -------------------------------------------------------------------------------- /help/addv.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | addv 4 | 5 |

addv

6 | Category

7 | Mathematical commands

8 |

9 | Syntax

10 |

11 | addv(vA,vB);

12 | vA += vB;

13 | vA = vA + vB;

14 | Description

15 |

16 | vB is added to vA. Since a var can only be from 0-255, if the result is greater than 255, then the value wraps around, e.g. 250 + 10 would give 4.

17 | See also

18 | addn

19 | 20 | -------------------------------------------------------------------------------- /help/call_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | call.v 4 | 5 |

call.v

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | call.v(vA);

11 | Description

12 |

13 | Logic vA is executed once. If it is not already loaded into memory, it is loaded before being called and then unloaded again afterwards.

14 | See also

15 | call

16 | load.logics

17 | 18 | -------------------------------------------------------------------------------- /help/addn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | addn 4 | 5 |

addn

6 | Category

7 | Mathematical commands

8 |

9 | Syntax

10 |

11 | addn(vA,B);

12 | vA += B;

13 | vA = vA + B;

14 | Description

15 |

16 | B is added to vA. Since a var can only be from 0-255, if the result is greater than 255, then the value wraps around, e.g. 250 + 10 would give 4.

17 |

18 | See also

19 | addv

20 | 21 | -------------------------------------------------------------------------------- /help/get_num.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.num 4 | 5 |

get.num

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | get.num(mPROMPT,vNUM);

11 | Description

12 |

13 | The player is prompted to enter a number, with the prompt being mPROMPT. vNUM is set to the number the player entered. If no valid number number is entered, this is 0.

14 | See also

15 | get.string

16 | 17 | -------------------------------------------------------------------------------- /help/mul_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | mul.v 4 | 5 |

mul.v

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | mul.v(vA,vB);

11 | vA *= vB;

12 | vA = vA * vB;

13 | Description

14 |

15 | vA is multiplied by vB. Since a var can only be from 0-255, if the result is greater than 255, then the value wraps around, e.g. 100 * 3 would give 44.

16 | See also

17 | mul.n

18 | 19 | -------------------------------------------------------------------------------- /help/hold_key.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | hold.key 4 | 5 |

hold.key

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | hold.key();

11 | Description

12 |

13 | This command changes the way that ego is controlled. After calling hold.key(), Ego will only move when a direction key is maintained pressed. If the key is released, ego will stop walking. 14 | See also

15 | release.key

16 | 17 | -------------------------------------------------------------------------------- /help/mul_n.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | mul.n 4 | 5 |

mul.n

6 | Category

7 | Mathematical commands

8 | Syntax

9 |

10 | mul.n(vA,B);

11 | vA *= B;

12 | vA = vA * B;

13 | Description

14 |

15 | vA is multiplied by B. Since a var can only be from 0-255, if the result is greater than 255, then the value wraps around, e.g. 100 * 3 would give 44.

16 |

17 | See also

18 | mul.v

19 | 20 | -------------------------------------------------------------------------------- /help/accept_input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | accept.input 4 | 5 |

accept.input

6 | Category

7 | System commands

8 | Syntax

9 |

10 | accept.input();

11 | Description

12 |

13 | Allows the player to enter input, if they have been prevented from doing so. If the input prompt is hidden, it is displayed again (including any text that was on it).

14 | See also

15 | prevent.input

16 | 17 | -------------------------------------------------------------------------------- /help/animate_obj.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | animate.obj 4 | 5 |

animate.obj

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | animate.obj(oA);

11 | Description

12 |

13 | This tells the interpreter to activate oA. You must do this before doing anything with the object.

14 | See also

15 | unanimate.all

16 | Initializing objects

17 | 18 | -------------------------------------------------------------------------------- /help/discard_pic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | discard.pic 4 | 5 |

discard.pic

6 | Category

7 | Picture commands

8 | Syntax

9 |

10 | discard.pic(vA);

11 | Description

12 |

13 | Picture resource vA is discarded from memory. If the picture is not already loaded, the interpreter generates an error.

14 | See also

15 | load.pic

16 | Drawing pictures

17 | 18 | -------------------------------------------------------------------------------- /help/display_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | display.v 4 | 5 |

display.v

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | display(vROW,vCOLUMN,vMESSAGE);

11 | Description

12 |

13 | Displays the text of message number vMESSAGE at the location determined by the values of vROW and vCOLUMN.

14 | See also

15 | display

16 | set.text.attribute

17 | 18 | -------------------------------------------------------------------------------- /help/echo_line.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | echo.line 4 | 5 |

echo.line

6 | Category

7 | System commands

8 | Syntax

9 |

10 | echo.line();

11 | Description

12 |

13 | The previous line of input entered by the player is added to the input line (if there is already text on the input line, only the characters from the previous line after the number of characters 14 | currently on the line are added). 15 |

16 | See also

17 | 18 | -------------------------------------------------------------------------------- /help/stop_update.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | stop.update 4 | 5 |

stop.update

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | stop.update(oA);

11 | Description

12 |

13 | This tells the interpreter not to update object oA at the start of every cycle. The object remains on screen, unchanged.

14 | See also

15 | start.update

16 | force.update

17 | 18 | -------------------------------------------------------------------------------- /help/clear_lines.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | clear.lines 4 | 5 |

clear.lines

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | clear.lines(TOP,BOTTOM,COLOUR);

11 | Description

12 |

13 | Clears the lines from TOP to BOTTOM with the colour COLOUR. I have found that it will only use black (if COLOUR is 0) or white (if COLOUR is greater than 0).

14 | See also

15 | clear.text.rect

16 | 17 | -------------------------------------------------------------------------------- /help/hide_mouse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | hide.mouse 4 | 5 |

hide.mouse

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | hide.mouse();

11 | Description

12 |

13 | This command hides the mouse cursor. 14 | Does not work with Sierra's PC version of the interpreter

15 | See also

16 | show.mouse

17 | fence.mouse

18 | mouse.posn

19 | 20 | -------------------------------------------------------------------------------- /help/load_pic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | load.pic 4 | 5 |

load.pic

6 | Category

7 | Picture commands

8 | Syntax

9 |

10 | load.pic(vA);

11 | Description

12 |

13 | Picture resource vA is loaded into memory.

14 | See also

15 | discard.pic

16 | draw.pic

17 | overlay.pic

18 | Drawing pictures

19 | 20 | -------------------------------------------------------------------------------- /help/ignore_horizon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | ignore.horizon 4 | 5 |

ignore.horizon

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | ignore.horizon(oA);

11 | Description

12 |

13 | Object oA is allowed to go above the horizon.

14 | See also

15 | observe.horizon

16 | set.horizon

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/current_cel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | current.cel 4 | 5 |

current.cel

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | current.cel(oA,vB);

11 | Description

12 |

13 | vB is set to the number of the current cel of object oA.

14 | See also

15 | last.cel

16 | set.cel

17 | set.cel.v

18 | current.loop

19 | 20 | -------------------------------------------------------------------------------- /help/get_dir.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.dir 4 | 5 |

get.dir

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | get.dir(oA,vDIR);

11 | Description

12 |

13 | vDIR is set to the direction object oA is currently travelling in. The value will be between 0 and 8:

14 |

15 | See also

16 | set.dir

17 | Moving objects

18 | 19 | -------------------------------------------------------------------------------- /help/get_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | get.string 4 | 5 |

get.string

6 | Category

7 | String commands

8 | Syntax

9 |

10 | get.string(sA,mB,Y,X,L);

11 | Description

12 |

13 | The user is prompted to enter a string. Message mB is used as the prompt, and displayed at column Y, row X. The maximum string length is L. Once the string has been entered, it is stored in string sA.

14 | See also

15 | get.num

16 | 17 | -------------------------------------------------------------------------------- /help/observe_horizon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | observe.horizon 4 | 5 |

observe.horizon

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | observe.horizon(oA);

11 | Description

12 |

13 | Object oA is not allowed to go above the horizon.

14 | See also

15 | ignore.horizon

16 | set.horizon

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/player_control.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | player.control 4 | 5 |

player.control

6 | Category

7 | System commands

8 | Syntax

9 |

10 | player.control();

11 | Description

12 |

13 | Allows the player to move ego (object 0) around with the arrow keys, after they have been prevented from doing so by the program.control command.

14 | See also

15 | program.control

16 | 17 | -------------------------------------------------------------------------------- /src/resources/left.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *left[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ".......... ....", 11 | "......... ....", 12 | "........ ....", 13 | "....... ....", 14 | "...... ....", 15 | "..... ....", 16 | "..... ....", 17 | "...... ....", 18 | "....... ....", 19 | "........ ....", 20 | "......... ....", 21 | ".......... ....", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/left1.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *left1[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | "........ ....", 11 | "....... .....", 12 | "...... ......", 13 | "..... .......", 14 | ".... ........", 15 | "... .........", 16 | "... .........", 17 | ".... ........", 18 | "..... .......", 19 | "...... ......", 20 | "....... .....", 21 | "........ ....", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/left2.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *left2[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | "...... ... .", 11 | "..... ... ..", 12 | ".... ... ...", 13 | "... ... ....", 14 | ".. ... .....", 15 | ". ... ......", 16 | ". ... ......", 17 | ".. ... .....", 18 | "... ... ....", 19 | ".... ... ...", 20 | "..... ... ..", 21 | "...... ... .", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/left_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *left_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ".......... ....", 11 | "......... ....", 12 | "........ ....", 13 | "....... ....", 14 | "...... ....", 15 | "..... ....", 16 | "..... ....", 17 | "...... ....", 18 | "....... ....", 19 | "........ ....", 20 | "......... ....", 21 | ".......... ....", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/right.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *right[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ".... ..........", 11 | ".... .........", 12 | ".... ........", 13 | ".... .......", 14 | ".... ......", 15 | ".... .....", 16 | ".... .....", 17 | ".... ......", 18 | ".... .......", 19 | ".... ........", 20 | ".... .........", 21 | ".... ..........", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /help/control_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Control flow commands 4 | 5 |

Control flow commands

6 | call.v

7 | call

8 | load.logics.v

9 | load.logics

10 | new.room.v

11 | new.room

12 | reset.scan.start

13 | return

14 | set.scan.start

15 | 16 | -------------------------------------------------------------------------------- /src/resources/left1_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *left1_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | "........ ....", 11 | "....... .....", 12 | "...... ......", 13 | "..... .......", 14 | ".... ........", 15 | "... .........", 16 | "... .........", 17 | ".... ........", 18 | "..... .......", 19 | "...... ......", 20 | "....... .....", 21 | "........ ....", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/left2_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *left2_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | "...... ... .", 11 | "..... ... ..", 12 | ".... ... ...", 13 | "... ... ....", 14 | ".. ... .....", 15 | ". ... ......", 16 | ". ... ......", 17 | ".. ... .....", 18 | "... ... ....", 19 | ".... ... ...", 20 | "..... ... ..", 21 | "...... ... .", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/right1.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *right1[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ".... ........", 11 | "..... .......", 12 | "...... ......", 13 | "....... .....", 14 | "........ ....", 15 | "......... ...", 16 | "......... ...", 17 | "........ ....", 18 | "....... .....", 19 | "...... ......", 20 | "..... .......", 21 | ".... ........", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/right1_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *right1_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ".... ........", 11 | "..... .......", 12 | "...... ......", 13 | "....... .....", 14 | "........ ....", 15 | "......... ...", 16 | "......... ...", 17 | "........ ....", 18 | "....... .....", 19 | "...... ......", 20 | "..... .......", 21 | ".... ........", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/right2.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *right2[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ". ... ......", 11 | ".. ... .....", 12 | "... ... ....", 13 | ".... ... ...", 14 | "..... ... ..", 15 | "...... ... .", 16 | "...... ... .", 17 | "..... ... ..", 18 | ".... ... ...", 19 | "... ... ....", 20 | ".. ... .....", 21 | ". ... ......", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/right2_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *right2_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ". ... ......", 11 | ".. ... .....", 12 | "... ... ....", 13 | ".... ... ...", 14 | "..... ... ..", 15 | "...... ... .", 16 | "...... ... .", 17 | "..... ... ..", 18 | ".... ... ...", 19 | "... ... ....", 20 | ".. ... .....", 21 | ". ... ......", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/right_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *right_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "................", 10 | ".... ..........", 11 | ".... .........", 12 | ".... ........", 13 | ".... .......", 14 | ".... ......", 15 | ".... .....", 16 | ".... .....", 17 | ".... ......", 18 | ".... .......", 19 | ".... ........", 20 | ".... .........", 21 | ".... ..........", 22 | "................", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/uparrow_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *uparrow_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "....... .......", 9 | "...... ......", 10 | "..... .....", 11 | ".... ....", 12 | "... ...", 13 | ".. ..", 14 | ". .", 15 | " ", 16 | " ", 17 | "...... ......", 18 | "...... ......", 19 | "...... ......", 20 | "...... ......", 21 | "...... ......", 22 | "...... ......", 23 | "................" 24 | }; 25 | -------------------------------------------------------------------------------- /help/compare_strings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | compare.strings 4 | 5 |

compare.strings

6 | Category

7 | Test commands / String commands

8 |

9 | Syntax

10 |

11 | if (compare.strings(s1,s2)) { .....

12 | Description

13 |

14 | Compares strings s1 and s2 and returns true if they are the same. The comparison is not case-sensitive, and some characters such as space and exclamation marks are ignored.

15 | See also

16 | 17 | -------------------------------------------------------------------------------- /help/controller.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | controller 4 | 5 |

controller

6 | Category

7 | Test commands / Menu/Key commands

8 |

9 | Syntax

10 |

11 | if (controller(cA)) { .....

12 | Description

13 |

14 | Returns true if the menu item or key assigned to controller cA has been selected or pressed during the current cycle.

15 | See also

16 | Setting up menus and keys

17 | 18 | -------------------------------------------------------------------------------- /help/load_logics.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | load.logics 4 | 5 |

load.logics

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | load.logics(A);

11 | Description

12 |

13 | Loads logic A is into memory. You should do this if you are going to call it a lot, to save the interpreter having to load it and unload it every time it calls it.

14 | See also

15 | load.logics.v

16 | call

17 | 18 | -------------------------------------------------------------------------------- /help/observe_objs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | observe.objs 4 | 5 |

observe.objs

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | observe.objs(oA);

11 | Description

12 |

13 | Object oA is prohibited from moving through other objects, i.e. its baseline is not allowed to touch another object's baseline.

14 | See also

15 | ignore.objs

16 | Controlling obstacles

17 | 18 | -------------------------------------------------------------------------------- /help/show_mouse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | show.mouse 4 | 5 |

show.mouse

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | show.mouse()

11 | Description

12 |

13 | is command makes the mouse cursor appear on the screen. 14 | Does not work with Sierra's PC version of the interpreter

15 | See also

16 | hide.mouse

17 | fence.mouse

18 | mouse.posn

19 | 20 | -------------------------------------------------------------------------------- /help/trace_on.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | trace.on 4 | 5 |

trace.on

6 | Category

7 | Debugging commands

8 | Syntax

9 |

10 | trace.on();

11 | Description

12 |

13 | Turns trace mode on. This does the same thing as the player pressing the SCROLL LOCK key.

14 | Trace mode must be enabled (by setting flag 10) before using this command.

15 | See also

16 | trace.info

17 | Trace mode

18 | 19 | -------------------------------------------------------------------------------- /src/resources/downarrow_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *downarrow_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "................", 9 | "...... ......", 10 | "...... ......", 11 | "...... ......", 12 | "...... ......", 13 | "...... ......", 14 | "...... ......", 15 | " ", 16 | " ", 17 | ". .", 18 | ".. ..", 19 | "... ...", 20 | ".... ....", 21 | "..... .....", 22 | "...... ......", 23 | "....... ......." 24 | }; 25 | -------------------------------------------------------------------------------- /src/resources/leftarrow_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *leftarrow_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "....... .......", 9 | "...... .......", 10 | "..... .......", 11 | ".... .......", 12 | "... .......", 13 | ".. .......", 14 | ". .", 15 | " .", 16 | " .", 17 | ". .", 18 | ".. .......", 19 | "... .......", 20 | ".... .......", 21 | "..... .......", 22 | "...... .......", 23 | "....... ......." 24 | }; 25 | -------------------------------------------------------------------------------- /help/force_update.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | force.update 4 | 5 |

force.update

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | force.update(oA);

11 | Description

12 |

13 | Object oA is redrawn immediately, without waiting till the start of the next interpreter cycle.

14 | See also

15 | start.update

16 | stop.update

17 | Cycling objects

18 | 19 | -------------------------------------------------------------------------------- /help/load_logics_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | load.logics.v 4 | 5 |

load.logics.v

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | load.logics.v(vA);

11 | Description

12 |

13 | Loads logic vA is into memory. You should do this if you are going to call it a lot, to save the interpreter having to load it and unload it every time it calls it.

14 | See also

15 | load.logics

16 | call

17 | 18 | -------------------------------------------------------------------------------- /help/object_on_anything.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | object.on.anything 4 | 5 |

object.on.anything

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | object.on.anything(oA);

11 | Description

12 |

13 | Object oA is allowed to be on land or water.

14 | See also

15 | object.on.water

16 | object.on.land

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /src/resources/rightarrow_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *rightarrow_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "....... .......", 9 | "....... ......", 10 | "....... .....", 11 | "....... ....", 12 | "....... ...", 13 | "....... ..", 14 | ". .", 15 | ". ", 16 | ". ", 17 | ". .", 18 | "....... ..", 19 | "....... ...", 20 | "....... ....", 21 | "....... .....", 22 | "....... ......", 23 | "....... ......." 24 | }; 25 | -------------------------------------------------------------------------------- /help/last_cel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | last.cel 4 | 5 |

last.cel

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | last.cel(oA,vB);

11 | Description

12 |

13 | vB is set to the number of the last cel of the current loop of object oA.

14 | See also

15 | current.cel

16 | set.cel

17 | set.cel.v

18 | number.of.loops

19 | 20 | -------------------------------------------------------------------------------- /help/close_window.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | close.window 4 | 5 |

close.window

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | close.window();

11 | Description

12 |

13 | If a window is left on the screen from a print command, it is removed.

14 | See also

15 | print

16 | print.v

17 | print.at

18 | print.at.v

19 | 20 | -------------------------------------------------------------------------------- /help/current_loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | current.loop 4 | 5 |

current.loop

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | current.loop(oA,vB);

11 | Description

12 |

13 | vB is set to the number of the current loop of object oA.

14 | See also

15 | number.of.loops

16 | set.loop

17 | set.loop.v

18 | current.cel

19 | 20 | -------------------------------------------------------------------------------- /help/status.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | status 4 | 5 |

status

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | status();

11 | Description

12 |

13 | Displays the inventory screen. This is a text mode screen with the text "You are carrying:" on the top line and a list of the items in the player's inventory (those with a room number of 255) below. If 14 | there are no items in the player's inventory, "nothing" is displayed. 15 |

16 | See also

17 | 18 | -------------------------------------------------------------------------------- /help/mouse_posn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | mouse.posn 4 | 5 |

mouse.posn

6 | Category

7 | Category

8 | Extra commands

9 |

10 | mouse.posn(x,y);

11 | Description

12 |

13 | This command stores position of the mouse pointer into variables x and y. 14 | Does not work with Sierra's PC version of the interpreter

15 | See also

16 | hide.mouse

17 | show.mouse

18 | fence.mouse

19 | 20 | -------------------------------------------------------------------------------- /src/resources/agistudio.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | ///////////////////////////////////////////////////////////////////////////// 5 | // English (U.S.) resources 6 | 7 | #ifdef _WIN32 8 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 9 | #pragma code_page(1252) 10 | #endif //_WIN32 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | // 14 | // Icon 15 | // 16 | 17 | // Icon with lowest ID value placed first to ensure application icon 18 | // remains consistent on all systems. 19 | IDI_ICON1 ICON DISCARDABLE "appicon.ico" 20 | -------------------------------------------------------------------------------- /help/object_on_land.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | object.on.land 4 | 5 |

object.on.land

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | object.on.land(oA);

11 | Description

12 |

13 | Object oA is not allowed to be on water (pixels with a priority of 3).

14 | See also

15 | object.on.water

16 | object.on.anything

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/object_on_water.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | object.on.water 4 | 5 |

object.on.water

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | object.on.water(oA);

11 | Description

12 |

13 | Object oA is only allowed to be on water (pixels with a priority of 3).

14 | See also

15 | object.on.land

16 | object.on.anything

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/end_of_loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | end.of.loop 4 | 5 |

end.of.loop

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | end.of.loop(oA,fB);

11 | Description

12 |

13 | Object oA is cycled in normal order until the last cel in the loop is reached. Flag fB is reset when the command is issued, and when the last cel is displayed fB is set.

14 | See also

15 | reverse.loop

16 | Cycling objects

17 | 18 | -------------------------------------------------------------------------------- /help/fence_mouse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | fence.mouse 4 | 5 |

fence.mouse

6 | Category

7 | Extra commands

8 | Syntax

9 |

10 | fence.mouse(A,B,C,D);

11 | Description

12 |

13 | This command sets up a fence out of which the mouse cursor can not go. 14 | Does not work with Sierra's PC version of the interpreter

15 |

16 | See also

17 | hide.mouse

18 | show.mouse

19 | mouse.posn

20 | 21 | -------------------------------------------------------------------------------- /help/about_help.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | About this help 4 | 5 |

About this help

6 | The QT AGI studio online help was converted from the original (Windows) AGI Studio online help. Therefore, "I" in this help almost everywhere refers to Peter Kelly - the author of the Windows AGI studio. 7 |

8 | The name "AGI studio" refers to the QT AGI Studio. There are a few differences between the QT port and the native Windows version, the relevant help text has been changed, but there is no list of the differences. 9 |

10 | Back to contents

11 | 12 | -------------------------------------------------------------------------------- /help/fix_loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | fix.loop 4 | 5 |

fix.loop

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | fix.loop(oA);

11 | Description

12 |

13 | This stops the interpreter from choosing the loop number for object oA based on its direction. You can turn this back on again using the release.loop command.

14 | See also

15 | release.loop

16 | Cycling objects

17 | 18 | -------------------------------------------------------------------------------- /help/number_of_loops.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | number.of.loops 4 | 5 |

number.of.loops

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | number.of.loops(oA,vB);

11 | Description

12 |

13 | vB is set to the number of loops in the view currently assigned to object oA.

14 | See also

15 | set.loop

16 | set.loop.v

17 | current.loop

18 | last.cel

19 | 20 | -------------------------------------------------------------------------------- /help/reverse_loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reverse.loop 4 | 5 |

reverse.loop

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | end.of.loop(oA,fB);

11 | Description

12 |

13 | Object oA is cycled in reverse order until the first cel in the loop is reached. Flag fB is reset when the command is issued, and when the first cel is displayed fB is set.

14 | See also

15 | end.of.loop

16 | Cycling objects

17 | 18 | -------------------------------------------------------------------------------- /help/set_menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.menu 4 | 5 |

set.menu

6 | Category

7 | Menu/Key commands

8 | Syntax

9 |

10 | set.menu(mNAME);

11 | Description

12 |

13 | Tells the interpreter to create a menu with the name mNAME. One or more set.menu.item commands should follow, which add items to that menu.

14 | See also

15 | set.menu.item

16 | Setting up menus and keys

17 | 18 | -------------------------------------------------------------------------------- /src/resources/home.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *home[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 4 1", 5 | " c black", 6 | ". c #C0C0C0C0C0C0", 7 | "X c gray100", 8 | "o c None", 9 | /* pixels */ 10 | "oooooooooooooooo", 11 | "ooooooo ooooooo", 12 | "oo ooo oooooo", 13 | "oo oo XX.. ooooo", 14 | "oo o XXXX.. oooo", 15 | "oo XXXXXX.. ooo", 16 | "oo XXXXXXXX.. oo", 17 | "o XXXXXXXXX... o", 18 | " XXXXXXXX.. ", 19 | "oo XXXXXXXX.. oo", 20 | "oo XXX XX.. oo", 21 | "oo XXX o XX.. oo", 22 | "oo XXX o XX.. oo", 23 | "oo XXX o XX.. oo", 24 | "oo XXX o XX.. oo", 25 | "oo o oo" 26 | }; 27 | -------------------------------------------------------------------------------- /help/distance.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | distance 4 | 5 |

distance

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | distance(oA,oB,vD);

11 | Description

12 |

13 | vD is set to the distance between objects oA and oB. The formula used for calculating the distance is abs(x1-x2) + abs(y1-y2) where x1,y1 and x2,y2 are the co-ordinates of the center of the baselines 14 | of oA and oB. 15 |

16 | If one or more of the objects is not on screen, the distance is 255.

17 | See also

18 | 19 | -------------------------------------------------------------------------------- /src/ui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(AGIStudio_UI 2 | ${CMAKE_CURRENT_SOURCE_DIR}/mainmenu.ui 3 | ${CMAKE_CURRENT_SOURCE_DIR}/objedit.ui 4 | ${CMAKE_CURRENT_SOURCE_DIR}/options.ui 5 | ${CMAKE_CURRENT_SOURCE_DIR}/picedit.ui 6 | ${CMAKE_CURRENT_SOURCE_DIR}/resources.ui 7 | ${CMAKE_CURRENT_SOURCE_DIR}/textedit.ui 8 | ${CMAKE_CURRENT_SOURCE_DIR}/viewedit.ui 9 | ${CMAKE_CURRENT_SOURCE_DIR}/wordsedit.ui 10 | ${CMAKE_CURRENT_SOURCE_DIR}/wordsfind.ui 11 | 12 | PARENT_SCOPE 13 | ) 14 | 15 | set(AGIStudio_UIRESOURCES 16 | ${CMAKE_CURRENT_SOURCE_DIR}/agistudio.qrc 17 | 18 | PARENT_SCOPE 19 | ) 20 | -------------------------------------------------------------------------------- /help/inventory_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Inventory item commands 4 | 5 |

Inventory item commands

6 | drop

7 | get.room.v

8 | get.v

9 | get

10 | put.v

11 | put

12 | show.obj.v

13 | show.obj

14 | status

15 | Test commands

16 | has

17 | obj.in.room

18 | 19 | -------------------------------------------------------------------------------- /help/clear_text_rect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | clear.text.rect 4 | 5 |

clear.text.rect

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | clear.text.rect(Y1,X1,Y2,X2,COLOUR);

11 | Description

12 |

13 | Clears the text rectangle with a top-left corner of X1,Y1 and a bottom-right corner of X2,Y2 with the colour COLOUR. I have found that it will only use black (if COLOUR is 0) or white (if COLOUR is 14 | greater than 0). 15 |

16 | See also

17 | clear.lines

18 | 19 | -------------------------------------------------------------------------------- /help/obj_in_box.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | obj.in.box 4 | 5 |

obj.in.box

6 | Category

7 | Test commands / Object/view commands

8 |

9 | Syntax

10 |

11 | if (obj.in.box(oA,X1,Y1,X2,Y2)) { .....

12 | Description

13 |

14 | Returns true if all of the bottom row of pixels of object oA are within the region (X1,Y1,X2,Y2).

15 | See also

16 | posn

17 | right.posn

18 | center.posn

19 | 20 | -------------------------------------------------------------------------------- /help/posn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | posn 4 | 5 |

posn

6 | Category

7 | Test commands / Object/view commands

8 |

9 | Syntax

10 |

11 | if (posn(oA,X1,Y1,X2,Y2)) { .....

12 | Description

13 |

14 | Returns true if the co-ordinates of the bottom-left pixel of object oA are within the region (X1,Y1,X2,Y2).

15 | See also

16 | right.posn

17 | center.posn

18 | obj.in.box

19 | 20 | -------------------------------------------------------------------------------- /help/release_priority.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | release.priority 4 | 5 |

release.priority

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | release.priority(oA);

11 | Description

12 |

13 | If object oAs priority was previously set, it is released which means that the priority now depends on the position of the object.

14 | See also

15 | set.priority

16 | set.priority.v

17 | Priorities

18 | 19 | -------------------------------------------------------------------------------- /help/restore_game.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | restore.game 4 | 5 |

restore.game

6 | Category

7 | System commands

8 | Syntax

9 |

10 | restore.game();

11 | Description

12 |

13 | Restores the game, which basically means reading information from a file (which was saved earlier) about the current status of everything in the game. The user is prompted for a saved game directory, 14 | and then chooses from up to 12 available saved games. 15 |

16 | See also

17 | save.game

18 | 19 | -------------------------------------------------------------------------------- /help/show_mem.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | show.mem 4 | 5 |

show.mem

6 | Category

7 | Debugging commands

8 | Syntax

9 |

10 | show.mem();

11 | Description

12 |

13 | Shows memory stats:

14 | heapsize: Amount of available memory

15 | now: Currently used memory

16 | max: Maximum amount of memory that has been used

17 | rm.0, etc: ?

18 | max script: maximum script size (click here for more info)

19 | See also

20 | 21 | -------------------------------------------------------------------------------- /help/step_size.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | step.size 4 | 5 |

step.size

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | step.size(oA,vB);

11 | Description

12 |

13 | The step size of oA (the number of pixels it moves each step) is set to vB.

14 | See also

15 | step.time

16 | move.obj

17 | move.obj.v

18 | follow.ego

19 | Moving objects

20 | 21 | -------------------------------------------------------------------------------- /packaging/debian/control: -------------------------------------------------------------------------------- 1 | Source: agistudio 2 | Section: x11 3 | Priority: optional 4 | Maintainer: Debian QA Group 5 | Build-Depends: debhelper (>= 4.0.0), tmake, libqt4-dev, libqt4-qt3support 6 | Standards-Version: 3.6.1.1 7 | 8 | Package: agistudio 9 | Architecture: any 10 | Depends: ${shlibs:Depends} 11 | Recommends: scummvm|nagi|sarien 12 | Description: IDE for creating early Sierra style AGI games 13 | AGI (Adventure Game Interpreter) is the adventure game engine used by 14 | Sierra On-Line(tm) to create some of their early games. QT AGI Studio 15 | is a program which allows you to view, create and edit AGI games. 16 | -------------------------------------------------------------------------------- /src/resources/back.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *back[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 5 1", 5 | " c black", 6 | ". c #808080808080", 7 | "X c #C0C0C0C0C0C0", 8 | "o c gray100", 9 | "O c None", 10 | /* pixels */ 11 | "OOOOOOOOOOOOOOOO", 12 | "OOOOOOO OOOOOOOO", 13 | "OOOOOO OOOOOOOO", 14 | "OOOOO o OOOOOOOO", 15 | "OOOO oo O", 16 | "OOO ooXooooooo O", 17 | "OO ooXXXXXXXXX O", 18 | "OOO oXXXXXXXXX O", 19 | "OOO. oX O", 20 | "OOOO. o .......O", 21 | "OOOOO. .OOOOOOO", 22 | "OOOOOO. .OOOOOOO", 23 | "OOOOOOO..OOOOOOO", 24 | "OOOOOOOO.OOOOOOO", 25 | "OOOOOOOOOOOOOOOO", 26 | "OOOOOOOOOOOOOOOO" 27 | }; 28 | -------------------------------------------------------------------------------- /help/stop_motion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | stop.motion 4 | 5 |

stop.motion

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | stop.motion(oA);

11 | Description

12 |

13 | Object oA stops moving. If the object is ego (object 0), the program.control command is issued by the interpreter.

14 | See also

15 | start.motion

16 | program.control

17 | Moving objects

18 | 19 | -------------------------------------------------------------------------------- /src/resources/forward.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *forward[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "16 16 5 1", 5 | " c black", 6 | ". c #808080808080", 7 | "X c #C0C0C0C0C0C0", 8 | "o c gray100", 9 | "O c None", 10 | /* pixels */ 11 | "OOOOOOOOOOOOOOOO", 12 | "OOOOOOOOOOOOOOOO", 13 | "OOOOOOOOO OOOOOO", 14 | "OOOOOOOOO OOOOO", 15 | "OOOOOOOOO o OOOO", 16 | "OO oo OOO", 17 | "OO oooooooXoo OO", 18 | "OO XXXXXXXXXoo O", 19 | "OO XXXXXXXXXo OO", 20 | "OO Xo .OO", 21 | "OO....... o .OOO", 22 | "OOOOOOOO. .OOOO", 23 | "OOOOOOOO. .OOOOO", 24 | "OOOOOOOO..OOOOOO", 25 | "OOOOOOOO.OOOOOOO", 26 | "OOOOOOOOOOOOOOOO" 27 | }; 28 | -------------------------------------------------------------------------------- /help/center_posn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | center.posn 4 | 5 |

center.posn

6 | Category

7 | Test commands / Object/view commands

8 |

9 | Syntax

10 |

11 | if (center.posn(oA,X1,Y1,X2,Y2)) { .....

12 | Description

13 |

14 | Returns true if the co-ordinates of the bottom-middle pixel of object oA are within the region (X1,Y1,X2,Y2).

15 | See also

16 | posn

17 | right.posn

18 | obj.in.box

19 | 20 | -------------------------------------------------------------------------------- /help/right_posn.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | right.posn 4 | 5 |

right.posn

6 | Category

7 | Test commands / Object/view commands

8 |

9 | Syntax

10 |

11 | if (right.posn(oA,X1,Y1,X2,Y2)) { .....

12 | Description

13 |

14 | Returns true if the co-ordinates of the bottom-right pixel of object oA are within the region (X1,Y1,X2,Y2).

15 | See also

16 | posn

17 | center.posn

18 | obj.in.box

19 | 20 | -------------------------------------------------------------------------------- /help/opening_games.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Opening games 4 | 5 |

Opening games

6 | Before you can work on a game, you must open it. To do this, select 'Open' from the 'File' menu and then select directory containing the game you want to edit. This directory must contain a valid AGI 7 | version 2 or version 3 game. 8 |

9 | Any changes you make to the game will be written to disk whenever you perform an operation such as adding or deleting a resource. In the built-in editors, the game is updated when you save or compile 10 | the resource. 11 |

12 | Back to contents

13 | 14 | -------------------------------------------------------------------------------- /help/set_view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.view 4 | 5 |

set.view

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.view(oA,B);

11 | Description

12 |

13 | View B is assigned to object oA. The view must be loaded in order to do this. If you wish, you can have one view assigned to several objects.

14 | See also

15 | set.view.v

16 | load.view

17 | load.view.v

18 | current.view

19 | 20 | -------------------------------------------------------------------------------- /help/disable_item.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | disable.item 4 | 5 |

disable.item

6 | Category

7 | Menu/Key commands

8 | Syntax

9 |

10 | disable.item(cA);

11 | Description

12 |

13 | Disables the menu item that is assigned to controller cA.

14 | All menu items are enabled again when the game is restarted, so if there are any items that need to be disabled permanently (such as separators) then they should be disabled again when the game is 15 | restarted. 16 |

17 | See also

18 | enable.item

19 | 20 | -------------------------------------------------------------------------------- /help/set_view_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.view.v 4 | 5 |

set.view.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.view.v(oA,vB);

11 | Description

12 |

13 | View vB is assigned to object oA. The view must be loaded in order to do this. If you wish, you can have one view assigned to several objects.

14 | See also

15 | set.view

16 | load.view

17 | load.view.v

18 | current.view

19 | 20 | -------------------------------------------------------------------------------- /help/menu_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Menu/Key commands 4 | 5 |

Menu/Key commands

6 | For information on setting up menu items and keys, click here.

7 | disable.item

8 | enable.item

9 | menu.input

10 | set.key

11 | set.menu.item

12 | set.menu

13 | submit.menu

14 | Test commands

15 | controller

16 | 17 | -------------------------------------------------------------------------------- /help/save_game.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | save.game 4 | 5 |

save.game

6 | Category

7 | System commands

8 | Syntax

9 |

10 | save.game();

11 | Description

12 |

13 | Saves the game, which basically means writing all the information about the current status of everything in the game to a file so that it can be restored later. The user is prompted for a saved game 14 | directory, and then is asked to choose from one of 12 save game slots to save the game in. 15 |

16 | See also

17 | restore.game

18 | 19 | -------------------------------------------------------------------------------- /help/discard_view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | discard.view 4 | 5 |

discard.view

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | discard.view(VIEWNUM);

11 | Description

12 |

13 | View VIEWNUM is discarded from memory. If the view is not already loaded, the interpreter generates an error. Make sure you do not have the view assigned to any objects before you discard it.

14 | See also

15 | discard.view.v

16 | load.view

17 | load.view.v

18 | 19 | -------------------------------------------------------------------------------- /help/follow_ego.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | follow.ego 4 | 5 |

follow.ego

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | follow.ego(oA,STEPSIZE,fDONEFLAG);

11 | Description

12 |

13 | Object oA moves towards ego (object 0) by STEPSIZE pixels every step. When the object is within STEPSIZE pixels of ego, it stops moving and flag fDONEFLAG is set. If STEPSIZE is 0, the current step 14 | size of object oA is used. 15 |

16 | See also

17 | step.size

18 | Moving objects

19 | 20 | -------------------------------------------------------------------------------- /help/ignore_blocks.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | ignore.blocks 4 | 5 |

ignore.blocks

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | ignore.blocks(oA);

11 | Description

12 |

13 | Object oA is allowed to cross over conditional barriers (pixels set to colour 1 on the priority screen) and borders of blocks set up with the block command.

14 | See also

15 | observe.blocks

16 | block

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/trace_info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | trace.info 4 | 5 |

trace.info

6 | Category

7 | Debugging commands

8 | Syntax

9 |

10 | trace.info(LOGNUM,TOP,HEIGHT);

11 | Description

12 |

13 | Sets up trace mode. LOGNUM is the number of the logic containing trace commands. TOP and HEIGHT are the top line number of the trace window and the number of lines it takes up.

14 | This command should be used before trace mode is enabled or turned on.

15 | See also

16 | trace.on

17 | Trace mode

18 | 19 | -------------------------------------------------------------------------------- /help/close_dialogue.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | close.dialogue 4 | 5 |

close.dialogue

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | close.dialogue();

11 | Description

12 |

13 | This command supposedly disables the get.string and get.num commands when the prevent.input command has been used, but it does not seem to do this so I am 14 | not sure what the command actually does. 15 |

16 | See also

17 | open.dialogue

18 | 19 | -------------------------------------------------------------------------------- /help/discard_view_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | discard.view.v 4 | 5 |

discard.view.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | discard.view.v(vVIEWNUM);

11 | Description

12 |

13 | View vVIEWNUM is discarded from memory. If the view is not already loaded, the interpreter generates an error. Make sure you do not have the view assigned to any objects before you discard it.

14 | See also

15 | discard.view

16 | load.view

17 | load.view.v

18 | 19 | -------------------------------------------------------------------------------- /help/logic_contents.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | AGI Logic help 4 | 5 |

AGI Logic help

6 | Getting started

7 | General topics

8 | Logic syntax

9 | Types

10 | Objects

11 | Special variable

12 | Special flags

13 | Command reference

14 | Commands by name

15 | Commands by category

16 |


17 | Back to contents

18 | 19 | -------------------------------------------------------------------------------- /help/open_dialogue.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | open.dialogue 4 | 5 |

open.dialogue

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | open.dialogue();

11 | Description

12 |

13 | This command supposedly enables the get.string and get.num commands when the prevent.input command has been used, but they seem to be enabled anyway so I am 14 | not sure what the command actually does. 15 |

16 | See also

17 | close.dialogue

18 | 19 | -------------------------------------------------------------------------------- /help/observe_blocks.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | observe.blocks 4 | 5 |

observe.blocks

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | observe.blocks(oA);

11 | Description

12 |

13 | Object oA is prevented from crossing over conditional barriers (pixels set to colour 1 on the priority screen) and borders of blocks set up with the block command.

14 | See also

15 | ignore.blocks

16 | block

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/status_line_on.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | status.line.on 4 | 5 |

status.line.on

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | status.line.on();

11 | Description

12 |

13 | Turns the status line on. The status line is usually on the top line of the screen (although this can be changed with configure.screen), and displays the current score and sound 14 | on/off status. 15 |

16 | See also

17 | status.line.off

18 | configure.screen

19 | 20 | -------------------------------------------------------------------------------- /help/stop_cycling.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | stop.cycling 4 | 5 |

stop.cycling

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | stop.cycling(oA);

11 | Description

12 |

13 | This tells the interpreter to stop cycling object oA. To turn cycling back on, use the start.cycling command.

14 | See also

15 | start.cycling

16 | normal.cycle

17 | reverse.cycle

18 | Cycling objects

19 | 20 | -------------------------------------------------------------------------------- /help/cycle_time.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | cycle.time 4 | 5 |

cycle.time

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | cycle.time(oA,vB);

11 | Description

12 |

13 | The delay (in interpreter cycles) between cel changes of object oA (when it is cycling) is set to vB. If vB is equal to 0, the cels do not change (even when the object is cycling). Note that an 14 | object's cycle time is separate to it's step time. 15 |

16 | See also

17 | step.time

18 | Cycling objects

19 | 20 | -------------------------------------------------------------------------------- /help/sound.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | sound 4 | 5 |

sound

6 | Category

7 | Sound commands

8 | Syntax

9 |

10 | sound(SOUNDNO,fDONEFLAG);

11 | Description

12 |

13 | Sound SOUNDNO is played. fDONEFLAG is reset when the command is issued, and set when the sound finishes playing or is stopped with the stop.sound command.

14 | The sound must be loaded before it is played. This can be done with the load.sound command.

15 | See also

16 | load.sound

17 | stop.sound

18 | 19 | -------------------------------------------------------------------------------- /help/draw_pic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | draw.pic 4 | 5 |

draw.pic

6 | Category

7 | Picture commands

8 | Syntax

9 |

10 | draw.pic(vA);

11 | Description

12 |

13 | Picture vA is drawn. Only the visual and priority screens in memory updated - not the actual screen itself. To update the screen, use the show.pic command. Make sure the picture is loaded 14 | into memory before drawing it. 15 |

16 | See also

17 | overlay.pic

18 | load.pic

19 | Drawing pictures

20 | 21 | -------------------------------------------------------------------------------- /help/set_menu_item.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.menu.item 4 | 5 |

set.menu.item

6 | Category

7 | Menu/Key commands

8 | Syntax

9 |

10 | set.menu.item(mNAME,cA);

11 | Description

12 |

13 | Adds an item with the name mNAME to the menu previously created using the set.menu command. The item is assigned to controller cA, so when the user selects it from the menu the test 14 | command controller(cA) will be true. 15 |

16 | See also

17 | set.menu.item

18 | Setting up menus and keys

19 | 20 | -------------------------------------------------------------------------------- /template/src/logic1.txt: -------------------------------------------------------------------------------- 1 | // **************************************************************************** 2 | // 3 | // Logic 1: Opening/intro 4 | // 5 | // **************************************************************************** 6 | 7 | #include "defines.txt" 8 | 9 | if (new_room) { 10 | load.pic(room_no); 11 | draw.pic(room_no); 12 | discard.pic(room_no); 13 | set.horizon(50); 14 | status.line.off(); 15 | prevent.input(); 16 | program.control(); 17 | show.pic(); 18 | display(23,1," Intro/Opening screen"); 19 | } 20 | 21 | if (have.key()) { 22 | set(menu_enabled); 23 | clear.lines(22, 24, 0); 24 | stop.motion(ego); 25 | reset(disable_game_functions); 26 | new.room(2); 27 | } 28 | 29 | return(); 30 | 31 | -------------------------------------------------------------------------------- /help/normal_cycle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | normal.cycle 4 | 5 |

normal.cycle

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | normal.cycle(oA);

11 | Description

12 |

13 | This tells the interpeter to cycle object oA in normal order, so the cels are shown from first to last. To turn cycling off, use the stop.cycling command.

14 | See also

15 | reverse.cycle

16 | stop.cycling

17 | start.cycling

18 | Cycling objects

19 | 20 | -------------------------------------------------------------------------------- /help/positioning_objects.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Positioning objects 4 | 5 |

Positioning objects

6 | There are five commands which allow you to position objects on screen:

7 | position

8 | position.v

9 | reposition

10 | reposition.to.v

11 | reposition

12 | Also, the get.posn command will store an objects position in two variables.

13 | Note: The position of an object is always taken from its bottom-left corner.

14 | See also

15 |

16 | Objects

17 | 18 | -------------------------------------------------------------------------------- /help/reverse_cycle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reverse.cycle 4 | 5 |

reverse.cycle

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | reverse.cycle(oA);

11 | Description

12 |

13 | This tells the interpeter to cycle object oA in reverse order, so the cels are shown from last to first. To turn cycling off, use the stop.cycling command.

14 | See also

15 | normal.cycle

16 | stop.cycling

17 | start.cycling

18 | Cycling objects

19 | 20 | -------------------------------------------------------------------------------- /help/status_line_off.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | status.line.off 4 | 5 |

status.line.off

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | status.line.off();

11 | Description

12 |

13 | Turns the status line off. The status line is usually on the top line of the screen (although this can be changed with configure.screen), and displays the current score and sound 14 | on/off status. When it is turned off, the line is blank. 15 |

16 | See also

17 | status.line.on

18 | configure.screen

19 | 20 | -------------------------------------------------------------------------------- /help/normal_motion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | normal.motion 4 | 5 |

normal.motion

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | normal.motion(oA);

11 | Description

12 |

13 | Object oA moves normally. That is, if the object was wandering or following ego, or it was moving to a location specified by a move.obj command, it continues in the direction it was 14 | travelling, until it is told to stop, move in another direction or runs into an obstacle. 15 |

16 | See also

17 | move.obj

18 | Moving objects

19 | 20 | -------------------------------------------------------------------------------- /help/ignore_objs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | ignore.objs 4 | 5 |

ignore.objs

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | ignore.objs(oA);

11 | Description

12 |

13 | Object oA is allowed to move through other objects, i.e. it's baseline is allowed to touch another object's baseline.

14 | If oA stops because it runs into another object, it will keep going once that object moves out of the way (provided it is not stopped or it's direction changed before then).

15 | See also

16 | observe.objs

17 | Controlling obstacles

18 | 19 | -------------------------------------------------------------------------------- /help/submit_menu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | submit.menu 4 | 5 |

submit.menu

6 | Category

7 | Menu/Key commands

8 | Syntax

9 |

10 | submit.menu();

11 | Description

12 |

13 | Initializes the menus set up with the set.menu and set.menu.item commands, allowing them to be used. This command can only be used once, and after that the menus can not 14 | be changed. 15 |

16 | See also

17 | set.menu

18 | set.menu.item

19 | Setting up menus and keys

20 | 21 | -------------------------------------------------------------------------------- /help/step_time.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | step.time 4 | 5 |

step.time

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | step.time(oA,vB);

11 | Description

12 |

13 | The delay (in interpreter cycles) between steps (movements) of object oA is set to vB. For example, if the step time is set to 2, the object will only move every second cycle. Note that an object's 14 | step time is independent from its cycle time. 15 |

16 | See also

17 | step.size

18 | cycle.time

19 | Moving objects

20 | 21 | -------------------------------------------------------------------------------- /help/load_view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | load.view 4 | 5 |

load.view

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | load.view(VIEWNUM);

11 | Description

12 |

13 | View VIEWNUM is loaded into memory. This is required before the view is assigned to any objects or used anywhere. It is not needed, however, for the show.obj command.

14 | See also

15 | load.view.v

16 | discard.view

17 | discard.view.v

18 | set.view

19 | set.view.v

20 | 21 | -------------------------------------------------------------------------------- /help/print.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | print 4 | 5 |

print

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | print(mA);

11 | Description

12 |

13 | Message A is displayed in a window. If f15 is not set, then the window remains for 1/2 * v21 seconds (provided v21 is greater than 0) or until a key is pressed. If f15 is set, then the window remains 14 | until a close.window command is issued. 15 |

16 | See also

17 | print.v

18 | print.at

19 | print.at.v

20 | close.window

21 | 22 | -------------------------------------------------------------------------------- /help/load_view_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | load.view.v 4 | 5 |

load.view.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | load.view(vVIEWNUM);

11 | Description

12 |

13 | View vVIEWNUM is loaded into memory. This is required before the view is assigned to any objects or used anywhere. It is not needed, however, for the show.obj command.

14 | See also

15 | load.view

16 | discard.view

17 | discard.view.v

18 | set.view

19 | set.view.v

20 | 21 | -------------------------------------------------------------------------------- /help/print_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | print.v 4 | 5 |

print.v

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | print.v(vA);

11 | Description

12 |

13 | Message number vA is displayed in a window. If f15 is not set, then the window remains for 1/2 * v21 seconds (provided v21 is greater than 0) or until a key is pressed. If f15 is set, then the window 14 | remains until a close.window command is issued. 15 |

16 | See also

17 | print

18 | print.at

19 | print.at.v

20 | close.window

21 | 22 | -------------------------------------------------------------------------------- /help/print_at.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | print.at 4 | 5 |

print.at

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | print.at(mA,X,Y,W);

11 | Description

12 |

13 | Message A is displayed in a window with top left coordinates of X,Y and width W. If f15 is not set, then the window remains for 1/2 * v21 seconds (provided v21 is greater than 0) or until a key is 14 | pressed. If f15 is set, then the window remains until a close.window command is issued. 15 |

16 | See also

17 | print

18 | print.v

19 | print.at.v

20 | close.window

21 | 22 | -------------------------------------------------------------------------------- /help/set_text_attribute.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.text.attribute 4 | 5 |

set.text.attribute

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | set.text.attribute(FG,BG);

11 | Description

12 |

13 | Sets the foreground and background colours for display and display.v. The background colour can only be black (if BG is 0) or white (if BG is greater than 0). If the 14 | background is white, all text will be displayed with a black foreground. Otherwise, the text will be displayed with the foreground specified by FG (0-15). 15 |

16 | See also

17 | display

18 | display.v

19 | 20 | -------------------------------------------------------------------------------- /cmake/GitVersion.cmake: -------------------------------------------------------------------------------- 1 | include(GetGitRevisionDescription) 2 | git_describe(GIT_VERSION --tags --dirty=-d) 3 | 4 | if (NOT ${GIT_VERSION} MATCHES "NOTFOUND") 5 | string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" PROJECT_VERSION_MAJOR "${GIT_VERSION}") 6 | string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" PROJECT_VERSION_MINOR "${GIT_VERSION}") 7 | string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" PROJECT_VERSION_PATCH "${GIT_VERSION}") 8 | string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" GIT_VERSION_SHA1 "${GIT_VERSION}") 9 | else () 10 | set(PROJECT_VERSION_MAJOR "1") 11 | set(PROJECT_VERSION_MINOR "3") 12 | set(PROJECT_VERSION_PATCH "0") 13 | set(GIT_VERSION_SHA1 "+unversioned") 14 | endif () 15 | 16 | set(PROJECT_VERSION_FULL ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${GIT_VERSION_SHA1}) -------------------------------------------------------------------------------- /help/program_control.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | program.control 4 | 5 |

program.control

6 | Category

7 | System commands

8 | Syntax

9 |

10 | program.control();

11 | Description

12 |

13 | Prevents the player from moving ego (object 0) around with the arrow keys. After this command has been executed, ego can only be moved by using the various object movement commands that are available 14 | such as move.obj. If ego is already moving, it continues in its current direction. 15 |

16 | The player can be given control of ego again by using the player.control command.

17 | See also

18 | player.control

19 | 20 | -------------------------------------------------------------------------------- /help/project_status.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Project status 4 | 5 |

Project Status

6 | Since February 1998, Peter Kelly has not done any work on AGI Studio after losing interest in AGI. However in April 1999 Kelly discovered there was a group of people who were interested in further developing the program, to add features to it that were not in existing versions. Therefore, it was decided to release the source code for the program. 7 |

8 | This release, version 1.4.00, is available at https://github.com/Deledrius/agistudio with the accompanying source code. See the file README.md for more information about the source code. 9 |

10 | This program may be distributed under the terms of the GNU General Public License. For details, see the file LICENSE that comes with the program. 11 | 12 | -------------------------------------------------------------------------------- /help/set_dir.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.dir 4 | 5 |

set.dir

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.dir(oA,vDIR);

11 | Description

12 |

13 | The direction of object oA is changed ot vDIR. vDIR must be between 0 and 8:

14 |

15 | You can not set the direction of ego (object 0). Instead, change the value of v6 to the direction you want.

16 | To find out what direction an object is currently travelling in, use the get.dir command.

17 | See also

18 | get.dir

19 | start.motion

20 | Moving objects

21 | 22 | -------------------------------------------------------------------------------- /help/print_at_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | print.at.v 4 | 5 |

print.at.v

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | print.at.v(vA,vX,vY,vW);

11 | Description

12 |

13 | Message number vA is displayed in a window with top left coordinates of vX,vY and width vW. If f15 is not set, then the window remains for 1/2 * v21 seconds (provided v21 is greater than 0) or until 14 | a key is pressed. If f15 is set, then the window remains until a close.window command is issued. 15 |

16 | See also

17 | print

18 | print.v

19 | print.at

20 | close.window

21 | 22 | -------------------------------------------------------------------------------- /help/extra_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Extra commands 4 | 5 |

Extra commands

6 |

These miscellaneous extra commands where 7 | 'unknown170'-'unknown181' in previous versions 8 | of AGI Studio.

9 | 10 | set.simple

11 | push.script

12 | pop.scrip

13 | hold.key

14 | set.pri.base

15 | discard.sound

16 | hide.mouse

17 | allow.menu

18 | show.mouse

19 | fence.mouse

20 | mouse.posn

21 | release.key

22 | 23 | -------------------------------------------------------------------------------- /help/extracting_resources.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Extracting resources 4 | 5 |

Extracting resources

6 | To extract a resource, click on the resource you wish to extract and select 'Extract' from the 'Resource' menu.

7 | When the resource is extracted, it is saved to disk in its raw format (i.e. not converted to another format such as BMP or midi), except for the LOGIC resource. You can choose in the 'Settings' menu if you want to extract the LOGIC resources as text (i.e. the same way as you see them in the Logic editor) or raw. (the default is text). The 5 byte or 7 byte resource header used in the VOL files is not 8 | saved as this is not part of the resource. In version 3 games, the resource is uncompressed before saving to disk. 9 |

10 | Back to contents

11 | 12 | -------------------------------------------------------------------------------- /help/set_cel.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.cel 4 | 5 |

set.cel

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.cel(oA,B);

11 | Description

12 |

13 | The current cel of object oA is set to B. If an invalid cel number is given, the interpreter will generates an error (the number of the last cel in a loop can be determined using the 14 | last.cel command). 15 |

16 | See also

17 | set.cel.v

18 | current.cel

19 | last.cel

20 | set.loop

21 | set.loop.v

22 | Cycling objects

23 | 24 | -------------------------------------------------------------------------------- /help/sound_descr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Sound resources 4 | 5 |

Sound resources

6 | Sound resources contain all the sound effects and music used in a game. They consist of three musical voices plus one sound effect voice. The format is based on the sound capabilities of the 7 | IBM PC Junior, for which the interpreter was originally written. On standard PCs only the first music voice is played, because the only sound device available to the PC at the time was the internal 8 | speaker. There is no sound card support in the original PC version of the interpreter, but hopefully any new interpreters that are written will support this. 9 |

10 | Other systems such as Macintosh and Amiga supported the other voices as well.

11 | Back to data used by AGI

12 | 13 | -------------------------------------------------------------------------------- /help/set_cel_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.cel.v 4 | 5 |

set.cel.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.cel.v(oA,vB);

11 | Description

12 |

13 | The current cel of object oA is set to vB. If an invalid cel number is given, the interpreter will generates an error (the number of the last cel in a loop can be determined using the 14 | last.cel command). 15 |

16 | See also

17 | set.cel

18 | current.cel

19 | last.cel

20 | set.loop

21 | set.loop.v

22 | Cycling objects

23 | 24 | -------------------------------------------------------------------------------- /help/set_loop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.loop 4 | 5 |

set.loop

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.loop(oA,B);

11 | Description

12 |

13 | The current loop of object oA is set to B. If an invalid loop number is given, the interpreter generates an error. If the current cel of the object is greater than the last cel in loop B, then the 14 | current cel is set to 0. 15 |

16 | See also

17 | set.loop.v

18 | current.loop

19 | number.of.loops

20 | set.cel

21 | set.cel.v

22 | Cycling objects

23 | 24 | -------------------------------------------------------------------------------- /help/text_screen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | text.screen 4 | 5 |

text.screen

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | text.screen();

11 | Description

12 |

13 | Switches the interpreter to text mode (40x25). This should only be used to display text on screen, and not to use menus, print statements, receive commands from the player or manipulate graphics as 14 | it does not have proper support for these things. It is handy for displaying text on a blank screen because you do not lose the graphics screen when you use it. 15 |

16 | Once you have finished in text mode, you should use the graphics command to switch back.

17 | See also

18 | graphics

19 | 20 | -------------------------------------------------------------------------------- /help/set_loop_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.loop.v 4 | 5 |

set.loop.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.loop.v(oA,vB);

11 | Description

12 |

13 | The current loop of object oA is set to vB. If an invalid loop number is given, the interpreter generates an error. If the current cel of the object is greater than the last cel in loop vB, then the 14 | current cel is set to 0. 15 |

16 | See also

17 | set.loop

18 | current.loop

19 | number.of.loops

20 | set.cel

21 | set.cel.v

22 | Cycling objects

23 | 24 | -------------------------------------------------------------------------------- /help/start_cycling.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | start.cycling 4 | 5 |

start.cycling

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | start.cycling(oA);

11 | Description

12 |

13 | This tells the interpreter to start cycling object oA. If the object was previously cycling in reverse order before it was stopped, then it will continue to cycle in reverse order. Otherwise, it will 14 | cycle in normal order. To turn cycling off, use the stop.cycling command. 15 |

16 | See also

17 | stop.cycling

18 | normal.cycle

19 | reverse.cycle

20 | Cycling objects

21 | 22 | -------------------------------------------------------------------------------- /help/set_horizon.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.horizon 4 | 5 |

set.horizon

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.horizon(Y);

11 | Description

12 |

13 | The horizon's vertical position is set to Y. The horizon is an invisible horizontal line, usually near the top of the screen. The default value for the horizon (when the new.room command 14 | is used) is 36. Objects are not allowed above the horizon, unless you use the ignore.horizon command. 15 |

16 | See also

17 | ignore.horizon

18 | observe.horizon

19 | Controlling obstacles

20 | 21 | -------------------------------------------------------------------------------- /help/reposition_to.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reposition.to 4 | 5 |

reposition.to

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | reposition.to(oA,X,Y);

11 | Description

12 |

13 | The position on the screen of object oA is changed to X,Y. The reposition.to command should be used for objects that are currently on the screen. reposition.to does the same job as 14 | position, but it erases the object before moving it and draws it again afterwards. 15 |

16 | See also

17 | reposition.to.v

18 | reposition

19 | position

20 | position.v

21 | Positioning objects

22 | 23 | -------------------------------------------------------------------------------- /help/test_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Test commands 4 | 5 |

Test commands

6 | equaln

7 | equalv

8 | lessn

9 | lessv

10 | greatern

11 | greaterv

12 | isset

13 | issetv

14 | has

15 | obj.in.room

16 | posn

17 | controller

18 | have.key

19 | said

20 | compare.strings

21 | obj.in.box

22 | center.posn

23 | right.posn

24 | 25 | -------------------------------------------------------------------------------- /help/start_motion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | start.motion 4 | 5 |

start.motion

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | start.motion(oA);

11 | Description

12 |

13 | I am not quite sure what this command does. The name implies that object oA starts to move, but this does not seem to work (instead you have to use set.dir to set the direction of the 14 | object to something other than 0). 15 |

16 | If oA is ego (object 0), the player.control command is issued by the interpreter.

17 | See also

18 | stop.motion

19 | set.dir

20 | player.control

21 | Moving objects

22 | 23 | -------------------------------------------------------------------------------- /help/position.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | position 4 | 5 |

position

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | position(oA,X,Y);

11 | Description

12 |

13 | The position on the screen of object oA is changed to X,Y. The position command should only be used if the object is not on screen (either it has not been drawn yet, or it has been erased). To change 14 | the position of an object that is already on screen, use the reposition.to command. 15 |

16 | See also

17 | position.v

18 | reposition.to

19 | reposition.to.v

20 | reposition

21 | Positioning objects

22 | 23 | -------------------------------------------------------------------------------- /help/reposition_to_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reposition.to.v 4 | 5 |

reposition.to.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | reposition.to.v(oA,vX,vY);

11 | Description

12 |

13 | The position on the screen of object oA is changed to vX,vY. The reposition.to command should be used for objects that are currently on the screen. reposition.to.v does the same job as 14 | position.v, but it erases the object before moving it and draws it again afterwards. 15 |

16 | See also

17 | reposition.to

18 | reposition

19 | position

20 | position.v

21 | Positioning objects

22 | 23 | -------------------------------------------------------------------------------- /help/system_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | System commands 4 | 5 |

System commands

6 | accept.input

7 | cancel.line

8 | echo.line

9 | init.disk

10 | init.joy

11 | pause

12 | player.control

13 | prevent.input

14 | program.control

15 | quit

16 | restart.game

17 | restore.game

18 | save.game

19 | script.size

20 | set.game.id

21 | toggle.monitor

22 | 23 | -------------------------------------------------------------------------------- /help/displaying_text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Displaying text on screen 4 | 5 |

Displaying text on screen

6 | For text display purposes, the AGI screen consists of 25 lines (numbered 0-24) and 40 columns (numbered 0-39). Each text character is 8 screen pixels (4 AGI pixels) wide and 8 screen pixels high. 7 | Note that this gives a total screen resolution of 320x200, even though the area that pictures are displayed in and objects are placed is only 168 pixels high. The top line of the screen is normally 8 | reserved for the status line and menu, and the bottom three lines are normally reserved for player input and other text display (in some early versions of the interpreter, text from commands like 9 | print was displayed down here instead of in windows). 10 |

11 | See also

12 | Display commands

13 | 14 | -------------------------------------------------------------------------------- /help/position_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | position.v 4 | 5 |

position.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | position.v(oA,vX,vY);

11 | Description

12 |

13 | The position on the screen of object oA is changed to vX,vY. The position command should only be used if the object is not on screen (either it has not been drawn yet, or it has been erased). To 14 | change the position of an object that is already on screen, use the reposition.to.v command. 15 |

16 | See also

17 | position

18 | reposition.to

19 | reposition.to.v

20 | reposition

21 | Positioning objects

22 | 23 | -------------------------------------------------------------------------------- /agistudio.1: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .TH AGISTUDIO 1 "August 25, 2012" "agistudio" "QT AGI Studio 1.4.0" 3 | .SH NAME 4 | QT AGI Studio \- an AGI adventure game development environment 5 | .SH SYNOPSIS 6 | .B agistudio 7 | .RI [ options ] 8 | .br 9 | .SH DESCRIPTION 10 | AGI (Adventure Game Interpreter) is the adventure game engine used by 11 | Sierra On-Line(tm) to create some of their early games. \fBQT AGI Studio\fP 12 | is a program that allows you to view, create and edit AGI games with 13 | a friendly GUI. 14 | .PP 15 | .nf 16 | The user interface is documented in HTML format, see 17 | .fi 18 | .nh 19 | .IR /usr/share/agistudio/help 20 | .hy 21 | .SH OPTIONS 22 | .TP 23 | .B \-help 24 | .br 25 | Show of options. 26 | .TP 27 | .B \-dir GAMEDIR 28 | .br 29 | Open an existing game in GAMEDIR. 30 | .SH SEE ALSO 31 | .BR nagi(6),sarien(6),scummvm(6) 32 | .IR 33 | .SH AUTHOR 34 | (C) 2003-2012 by Jarno Elonen 35 | -------------------------------------------------------------------------------- /help/data_used.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data used by AGI 4 | 5 |

Data used by AGI

6 | Most data used by AGI is stored in resources. There are four types of resources, each storing a different type of data. Each AGI game can contain up to 256 resources of each type.

7 | VIEW resources - animations and sprites

8 | PICTURE resources - background pictures

9 | SOUND resources - sound effects and music

10 | LOGIC resources - scripts that determine what happens in the game

11 | Other data:

12 | The OBJECT file - list of inventory objects the player can get

13 | The WORDS.TOK file - list of words accepted by the game

14 | Files used by AGI

15 | Back to contents

16 | 17 | -------------------------------------------------------------------------------- /help/menu_input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | menu.input 4 | 5 |

menu.input

6 | Category

7 | Menu/Key commands

8 | Syntax

9 |

10 | menu.input();

11 | Description

12 |

13 | This brings up the menu at the end of the current interpreter cycle. The next cycle does not start until the user has selected an item from the menu, or pressed ESC to exit the menu.

14 | Flag 14 (or menu_enabled in the template game) must be set for this command to work.

15 | ESC is usually the key that activates the menu, but this is not built in to the interpreter so to do this you need assign the ESC key to a controller using set.key, and then test for that 16 | controller to activate the menu (this is already done in the template game). 17 |

18 | See also

19 | Settings up menus and keys

20 | 21 | -------------------------------------------------------------------------------- /help/add_to_pic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | add.to.pic 4 | 5 |

add.to.pic

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | add.to.pic(VIEWNO,LOOPNO,CELNO,X,Y,PRI,MARGIN);

11 | Description

12 |

13 | This command allows you to add a view to the visual picture screen in memory. Cel CELNO of loop LOOPNO of view VIEWNO is drawn on the picture at X,Y with a priority of PRI. If MARGIN is 0, 1, 2 or 3, 14 | the base line of the object (the bottom row of pixels of the cel) is given a priority of MARGIN. Since priority is taken into account, so you can use add.to.pic to add views behind other parts of the 15 | picture. 16 |

17 | Note that the view must be loaded before you use it with add.to.pic. This can be done with the load.view command.

18 | See also

19 | add.to.pic.v

20 | 21 | -------------------------------------------------------------------------------- /help/commands_by_category.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Commands by category 4 | 5 |

Commands by category

6 | Test commands

7 | Mathematical commands

8 | Flag commads

9 | Control flow commands

10 | Picture commands

11 | Debugging commands

12 | Object/view commands

13 | Inventory item commands

14 | Sound commands

15 | Display commands

16 | Menu/Key commands

17 | System commands

18 | String commands

19 | Extra commands

20 | 21 | -------------------------------------------------------------------------------- /help/reposition.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | reposition 4 | 5 |

reposition

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | reposition(oA,vDX,vDY);

11 | Description

12 |

13 | Object oA is repositioned relative to its current co-ordinates. Its new co-ordinates are X+vDX,Y+vDY where X,Y is its current position. If vDX or vDY are greater than 127, they are treated as a 14 | negative number (vDX-256 or vDY-256). 15 |

16 | For example:

17 | v254 = 5;

18 | v255 = 252;

19 | reposition(o1,v254,v255)

20 | would reposition object 1 to X+5,Y-4.

21 | See also

22 | reposition.to

23 | reposition.to.v

24 | position

25 | position.v

26 | Positioning objects

27 | 28 | -------------------------------------------------------------------------------- /src/midi.h: -------------------------------------------------------------------------------- 1 | /* 2 | * QT AGI Studio :: Copyright (C) 2000 Helen Zommer 3 | * 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 | * 19 | */ 20 | 21 | #ifndef MIDI_H 22 | #define MIDI_H 23 | 24 | class QWidget; 25 | void showSaveAsMidi(QWidget *parent, const byte *snd); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /help/add_to_pic_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | add.to.pic.v 4 | 5 |

add.to.pic.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | add.to.pic.v(vVIEWNO,vLOOPNO,vCELNO,vX,vY,vPRI,vMARGIN);

11 | Description

12 |

13 | This command allows you to add a view to the visual picture screen in memory. Cel vCELNO of loop vLOOPNO of view vVIEWNO is drawn on the picture at vX,vY with a priority of vPRI. If vMARGIN is 0, 1, 14 | 2 or 3, the base line of the object (the bottom row of pixels of the cel) is given a priority of vMARGIN. Since priority is taken into account, so you can use add.to.pic.v to add views behind other 15 | parts of the picture. 16 |

17 | Note that the view must be loaded before you use it with add.to.pic.v. This can be done with the load.view command.

18 | See also

19 | add.to.pic

20 | 21 | -------------------------------------------------------------------------------- /help/text_editor_main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Text editor 4 | 5 |

Text editor

6 | The text editor is included so you can edit text files without having to switch to another application such as notepad. This is especially handy when you are doing logic programming and you need to 7 | edit a file which is included in your logic using the #include command. It is also integrated with the logic editor - if a text file is used in a logic with the #include command and it contains an 8 | error, the compiler will bring up the text editor with the appropriate file and hilight the appropriate line so you can fix the error. Note that when you compile a logic, all open text files that are 9 | referred to by that logic are automatically saved. 10 |

11 | Usage of the text editor is pretty self explanatory - it is very similar in operation to programs like notepad. You can open it from the Tools menu or the toolbar.

12 | Back to contents

13 | 14 | -------------------------------------------------------------------------------- /help/configure_screen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | configure.screen 4 | 5 |

configure.screen

6 | Category

7 | Display commands

8 | Syntax

9 |

10 | configure.screen(PLAYTOP,INPUTLINE,STATUSLINE);

11 | Description

12 |

13 | Sets the location of certain items on screen:

14 | PLAYTOP is the top line of the playing area. This is normally set to 1. It should always be set to something between 0 and 3, since the playing area is 168 pixels high (21 lines) and should not go 15 | off the screen. 16 |

17 | INPUTLINE is the line on which the player is prompted for input. This is normally set to 22.

18 | STATUSLINE is the line on which the current score and sound on/off status are displayed. This is normally set to 0.

19 | Note that the menu always appears on line 0.

20 | See also

21 | status.line.on

22 | status.line.off

23 | 24 | -------------------------------------------------------------------------------- /help/show_obj.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | show.obj 4 | 5 |

show.obj

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | show.obj(VIEWNO);

11 | Description

12 |

13 | Cel 0 of loop 0 of view VIEWNO is shown at the bottom of the screen, with the view's description displayed above. Both dissapear when a key is pressed. The view does not need to be loaded in order to 14 | use this command. 15 |

16 | The command does not actually have anything to do with screen objects (which are normally referred to as just "objects"). It is meant for when the player examines an inventory item - each item should 17 | have a view with a picture of it and a description, which is displayed using show.obj when the player examines it. Inventory items were sometimes called "objects", which is why the command was called 18 | show.obj. 19 |

20 | See also

21 | show.obj.v

22 | 23 | -------------------------------------------------------------------------------- /help/block.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | block 4 | 5 |

block

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | block(X1,Y1,X2,Y2);

11 | Description

12 |

13 | This sets up an invisible rectangular block on the screen with top-left co-ordinates X1,Y1 and bottom-right co-ordinates X2,Y2. Objects are not allowed to cross the borders of this block (unless they 14 | are told to ignore blocks). The block can be removed using the unblock command. 15 |

16 | Note: You can only have one block on the screen at a time. If a block already exists, and you use the block command again, the new block will be there but the old one will be gone.

17 | See also

18 | unblock

19 | ignore.blocks

20 | observe.blocks

21 | Controlling obstacles

22 | 23 | -------------------------------------------------------------------------------- /help/show_obj_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | show.obj.v 4 | 5 |

show.obj.v

6 | Category

7 | Inventory item commands

8 | Syntax

9 |

10 | show.obj.v(vVIEWNO);

11 | Description

12 |

13 | Cel 0 of loop 0 of view vVIEWNO is shown at the bottom of the screen, with the view's description displayed above. Both dissapear when a key is pressed. The view does not need to be loaded in order to 14 | use this command. 15 |

16 | The command does not actually have anything to do with screen objects (which are normally referred to as just "objects"). It is meant for when the player examines an inventory item - each item should 17 | have a view with a picture of it and a description, which is displayed using show.obj when the player examines it. Inventory items were sometimes called "objects", which is why the command was called 18 | show.obj. 19 |

20 | See also

21 | show.obj

22 | 23 | -------------------------------------------------------------------------------- /help/viewing_resources.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Viewing resources 4 | 5 |

Viewing resources

6 | To view a resource, just select it from the list in the resources window. You will see the resource in the preview window. At present this can only be done for view resources and 7 | picture resources. 8 |

9 | When you click on a view resource, you will see the something like this:

10 |

11 | To change loops or cels, just click on the apprioriate left/right buttons. 12 |

13 | When you click on a picture resource, you will see the something like this:

14 |

15 | To view the visual or priority screen, select the appropriate radio button.

16 | 17 | The picture viewer also allows you to save the currently displayed screen as a BMP file or any other image format supported by QT library.

18 | Back to contents

19 | 20 | -------------------------------------------------------------------------------- /packaging/debian/agistudio.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * agistudio_xpm[] = { 3 | "24 24 10 1", 4 | " c None", 5 | ". c #7F0000", 6 | "+ c #00FFFF", 7 | "@ c #999999", 8 | "# c #4C4C4C", 9 | "$ c #FFFF00", 10 | "% c #000000", 11 | "& c #FF0000", 12 | "* c #7F007F", 13 | "= c #191919", 14 | " ", 15 | " .. ", 16 | " .... ", 17 | " ++..@ ", 18 | " ++++++ ", 19 | " ++++++++ ", 20 | " ######$$ ", 21 | " ####$$$$$$ ", 22 | " ####$$$$@@ ", 23 | " ##$$$%%%% ", 24 | " @$$$%$$$% ", 25 | " &&&%$$%*% ", 26 | " &&&&&%$%&**% ", 27 | " &&&&&&%&&&**% ", 28 | " &&$$&&&%&&&**% ", 29 | " &&$$&&& %&&&**% ", 30 | " &&$$&&& %&&&**= ", 31 | " &&$$&&& %&&&*% ", 32 | " &&$$$$& =&&&% ", 33 | " &&..$$$$ %%% ", 34 | " ......$$ ", 35 | " ++++++@@ ", 36 | " ++++++@ ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /help/objects.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Objects 4 | 5 |

Objects

6 | Objects (sometimes as referred to as "screen objects", and not to be confused with "inventory objects") are what provide the animation in AGI games. They can represent various things such as characters, 7 | background animations or still props. Each object has a view assigned to it, and can be placed anywhere on screen and moved around. 8 |

9 | Object 0, commonly referred to as "ego", is special. This is the object that the player moves around using the arrow keys.

10 | Topics

11 | Initializing objects

12 | Cycling objects

13 | Positioning objects

14 | Moving objects

15 | Controlling obstacles

16 | Priorities

17 | See also

18 | Object/view commands

19 | 20 | -------------------------------------------------------------------------------- /help/getting_started.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Getting started 4 | 5 |

Getting started

6 | The best way to get started with the AGI logic language is by looking at the code of existing games. At the moment, there is no complete tutorial available, so this is the best way to get a feel for the 7 | language and how certain things are done. This help file is designed mainly as a reference, although it does contain a few general introductory topics. You should start by reading these, which will 8 | hopefully give you an idea about what the main features of the system are. Also, there is some useful information in the readme.txt for the template game. 9 |

10 | Partial AGI logic tutorials can be found at the following sites 11 | (note that these links may become unavailable in the future): 12 |

13 |

http://weremoose.tripod.com/Tutorials.html 14 |

http://members.xoom.com/agi_filedump/ 15 | 16 |

17 | 18 | -------------------------------------------------------------------------------- /template/src/newroom.txt: -------------------------------------------------------------------------------- 1 | // **************************************************************************** 2 | // 3 | // Logic *: new room 4 | // 5 | // **************************************************************************** 6 | #include "defines.txt" 7 | if (new_room) { 8 | load.pic(room_no); 9 | draw.pic(room_no); 10 | discard.pic(room_no); 11 | set.horizon(50); 12 | // Check what room the player came from and position them on the 13 | // screen accordingly here, e.g: 14 | // if (prev_room_no == 5) { 15 | // position(ego,12,140); 16 | // } 17 | draw(ego); 18 | show.pic(); 19 | } 20 | if (said("look")) { 21 | print("This is an empty room."); 22 | } 23 | if (ego_edge_code == horizon_edge) { // ego touching horizon 24 | new.room(2); 25 | } 26 | if (ego_edge_code == right_edge) { // ego touching right edge of screen 27 | new.room(2); 28 | } 29 | if (ego_edge_code == bottom_edge) { // ego touching bottom edge of screen 30 | new.room(2); 31 | } 32 | if (ego_edge_code == left_edge) { // ego touching left edge of screen 33 | new.room(2); 34 | } 35 | return(); 36 | -------------------------------------------------------------------------------- /help/logic_descr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Logic resources 4 | 5 |

Logic resources

6 | Logic resources are the guts of an AGI game. They are scripts that contain all the commands necessary to control the view, picture and sound resources and to receive and act on input from 7 | the player, thus determining everything that happens in the game. Each room generally has its own logic which determines what happens in that room, and the game also has a few other logics to look 8 | after things like initialization and error handling. 9 |

10 | Games are programmed in a special language specific to AGI and compiled into logic resources. The logic programming language is similar to standard programming languages like C, but a lot less 11 | powerful as it is designed for specific purpose. For more information on logic programming, click here. 12 |

13 | You can edit logics with the Logic editor.

14 | Back to data used by AGI

15 | 16 | -------------------------------------------------------------------------------- /help/overlay_pic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | overlay.pic 4 | 5 |

overlay.pic

6 | Category

7 | Picture commands

8 | Syntax

9 |

10 | overlay.pic(vA);

11 | Description

12 |

13 | overlay.pic does the same thing as draw.pic, except that the visual and priority screens are not cleared. This means that picture vA is drawn on top of the existing picture. Note that 14 | because fills only work on white surfaces, fills in picture vA which are not on a white part of the existing picture wont work. It's generally best not to use fills in pictures that you intend to 15 | overlay. 16 |

17 | Remember to use show.pic to update the screen once the picture has been overlayed.

18 | Make sure the picture is loaded into memory before overlaying it.

19 | See also

20 | draw.pic

21 | load.pic

22 | Drawing pictures

23 | 24 | -------------------------------------------------------------------------------- /help/trace_mode.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Trace mode 4 | 5 |

Trace mode

6 | The AGI Interpreter has a built in trace mode, which is useful for examining the operation of logics and tracking down problems. When it is turned on (either by the game issuing the 7 | trace.on command or by the player pressing the SCROLL LOCK key), a window is displayed on the screen showing commands and their parameters as they are executed. 8 |

9 | Before trace mode is used, the trace.info command must be used to initialize trace mode. It is not necessary to use this, but if it is not used then the command names will not be 10 | displayed in the trace window (only the command numbers). Flag 10 must be set in order to enable trace mode. 11 |

12 | The user can then activate trace mode by using the SCROLL LOCK key. Pressing this key while trace mode is on will turn it off.

13 | See also

14 |

15 | trace.info

16 | trace.on

17 | 18 | -------------------------------------------------------------------------------- /help/math_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Mathematical commands 4 | 5 |

Mathematical commands

6 | addn

7 | addv

8 | assignn

9 | assignv

10 | decrement

11 | div.n

12 | div.v

13 | get.num

14 | increment

15 | lindirectn

16 | lindirectv

17 | mul.n

18 | mul.v

19 | random

20 | rindirect

21 | subn

22 | subv

23 | Test commands

24 | equaln

25 | equalv

26 | lessn

27 | lessv

28 | greatern

29 | greaterv

30 | 31 | -------------------------------------------------------------------------------- /help/set_simple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.simple 4 | 5 |

set.simple

6 | Category

7 | Extra commands

8 | Syntax

9 | set.simple(A);

10 | 11 | Description

12 |

13 | This command modifies the behavior of the commands restore.game() and save.game().

14 | 15 | After calling set.simple(n), where n is a string number (ie: if n == 2 then s2) restore.game() will automatically (without any prompt) restore a savegame with the name stored in string number n and save.game() will automatically save a savegame with the name of string number n.

16 | 17 | Note: make sure that at least one savegame is present when you call restore.game() or save.game() (that is, when saving a game too).

18 | 19 | Example:

20 | 21 | 22 | set.string(s1,"test");
23 | set.simple(1); 24 |

25 | 26 | This will automatically load the savegame named "test".

27 | 28 | See also

29 | restore.game

30 | save.game

31 | 32 | 33 | -------------------------------------------------------------------------------- /src/logic.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * QT AGI Studio :: Copyright (C) 2000 Helen Zommer 3 | * 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 | * 19 | */ 20 | 21 | 22 | #include "logic.h" 23 | 24 | 25 | Logic::Logic() : 26 | wordlist(new WordList()), objlist(new ObjList()) 27 | { } 28 | 29 | Logic::~Logic() 30 | { 31 | if (wordlist) 32 | delete wordlist; 33 | 34 | if (objlist) 35 | delete objlist; 36 | } 37 | -------------------------------------------------------------------------------- /help/set_priority.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.priority 4 | 5 |

set.priority

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.priority(oA,PRI);

11 | Description

12 |

13 | Object oA's priority is set to PRI. The object keeps this priority wherever it goes on the screen.

14 | To change it back so the priority is dependent on the object's position, use the release.priority command.

15 | Note: If the object's priority is 15, it ignores all control lines and blocks, and thus can move anywhere on the screen below the horizon. If the object is ego (object 0), then flags 0 and 3 are no 16 | longer set according to whether ego is on a control line of colour 3 or 2. After this, if the object's priority is released or set to something lower than 15, it returns to it's normal behaviour. 17 |

18 | See also

19 | set.priority.v

20 | release.priority

21 | Priorities

22 | 23 | -------------------------------------------------------------------------------- /help/set_game_id.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.game.id 4 | 5 |

set.game.id

6 | Category

7 | System commands

8 | Syntax

9 |

10 | set.game.id(mID);

11 | Description

12 |

13 | Sets the game ID to mID. This is a short name, up to 6 characters, that identifies the game, such as KQ2, SQ2, GR, MG etc. When the game ID is set like this, the interpreter checks it agains it's own 14 | internal game ID and if they don't match, it quits. This was to make sure games weren't run with the wrong interpreter. Once the game ID is set, saved games include it in their filenames (e.g. SQSG.1). 15 |

16 | There is a simple way around the game ID checking problem - simply don't use this command, and the interpreter won't find the wrong one and quit. This is especially important with new games, so that 17 | they can be run using interpreters from different games, which of course will have different IDs (although they must be the right interpreter version). Saved games will just be called SG.1, SG.2 etc. 18 | but that is not a real problem. 19 |

20 | 21 | -------------------------------------------------------------------------------- /help/set_priority_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | set.priority.v 4 | 5 |

set.priority.v

6 | Category

7 | Object/view commands

8 | Syntax

9 |

10 | set.priority.v(oA,vPRI);

11 | Description

12 |

13 | Object oA's priority is set to vPRI. The object keeps this priority wherever it goes on the screen.

14 | To change it back so the priority is dependent on the object's position, use the release.priority command.

15 | Note: If the object's priority is 15, it ignores all control lines and blocks, and thus can move anywhere on the screen below the horizon. If the object is ego (object 0), then flags 0 and 3 are no 16 | longer set according to whether ego is on a control line of colour 3 or 2. After this, if the object's priority is released or set to something lower than 15, it returns to its normal behaviour. 17 |

18 | See also

19 | set.priority

20 | release.priority

21 | Priorities

22 | 23 | -------------------------------------------------------------------------------- /help/rebuilding_vol_files.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Rebuilding the VOL files 4 | 5 |

Rebuilding the VOL files

6 | This is the process of taking all the resources in a game and putting them in new VOL files. The time it takes depends on the size of the game, whether or not the resources are compressed, and the 7 | speed of your computer. Usually its between 1 and 20 seconds. 8 |

9 | Note that the original AGI games were designed to be able to run from 360k floppy disks, where each VOL file went on a different disk. Because of this, each resource was carefully put on the right 10 | disk to minimise disk-swapping. When AGI Studio rebuilds the VOL files, it does not take any of this into account. This will not be a problem unless you then want to go and run the game off 360k 11 | floppies (the rebuilt files will may be too big to fit anyway). 12 |

13 | In version 3 games, the resources are not compressed when the VOL files are rebuilt so the game will be a bit bigger if it was previously compressed.

14 | To rebuild the VOL files, select 'Rebuild VOL files' from the 'Resource' menu.

15 | Back to contents

16 | 17 | -------------------------------------------------------------------------------- /help/toggle_monitor.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | toggle.monitor 4 | 5 |

toggle.monitor

6 | Category

7 | System commands

8 | Syntax

9 |

10 | toggle.monitor();

11 | Description

12 |

13 | Switched between CGA and RGB graphics modes. This is only useful when the interpreter is running in one of these modes (either it is running on a computer with a CGA graphics adapter or the 14 | interpreter has been loaded with the -C or -R parameters). Note that although Sierra's DOS interpreter will run in these modes, newer interpreters may not. 15 |

16 | This command does not really have any practical use. It was available from a menu item in Sierra's AGI games (the menu item was only present when running in these modes). The template game does not 17 | include this menu item, however. If you do want to run the game in these modes, just type sierra -c or sierra -r at the DOS prompt (assuming you are using Sierra's interpreter). CGA mode uses the 18 | black-cyan-magenta-white CGA colour palette while RGB mode uses the blue-yellow-red-green CGA palette. 19 |

20 | See also

21 | 22 | -------------------------------------------------------------------------------- /src/resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | AGIStudio 9 | CFBundleGetInfoString 10 | AGI Studio 1.4.0 11 | CFBundleIconFile 12 | AGIStudio.icns 13 | CFBundleIdentifier 14 | com.zero-factorial.agistudio 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleLongVersionString 18 | 1.4.0 19 | CFBundleName 20 | AGI Studio 21 | CFBundlePackageType 22 | APPL 23 | CFBundleShortVersionString 24 | 1.4.0 25 | CFBundleSignature 26 | ???? 27 | CFBundleVersion 28 | 1.4.0 29 | CSResourcesFileMapped 30 | 31 | NSHumanReadableCopyright 32 | Copyright © 2024. 33 | 34 | 35 | -------------------------------------------------------------------------------- /help/display_commands.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Display commands 4 | 5 |

Display commands

6 | For more information on displaying text, click here.

7 | clear.lines

8 | clear.text.rect

9 | close.dialogue

10 | close.window

11 | configure.screen

12 | display.v

13 | display

14 | graphics

15 | open.dialogue

16 | print.at.v

17 | print.at

18 | print.v

19 | print

20 | set.cursor.char

21 | set.text.attribute

22 | shake.screen

23 | status.line.off

24 | status.line.on

25 | text.screen

26 | 27 | -------------------------------------------------------------------------------- /template/src/logic92.txt: -------------------------------------------------------------------------------- 1 | // **************************************************************************** 2 | // 3 | // Logic 92: Help screen 4 | // 5 | // **************************************************************************** 6 | 7 | #include "defines.txt" 8 | 9 | prevent.input(); 10 | status.line.off(); 11 | text.screen(); 12 | key_pressed = 0; 13 | reset(input_parsed); 14 | display(3, 0, " AGI Help"); 15 | 16 | display(6, 0," F1 displays this message."); 17 | display(7, 0," F2 turns the sound off and on."); 18 | display(8, 0," F3 retypes the last line typed."); 19 | display(9, 0," F5 saves your current game."); 20 | display(10,0," F7 restores a saved game."); 21 | display(11,0," F9 restarts the game."); 22 | display(12,0," ALT-Z quits the game."); 23 | display(13,0," TAB shows the inventory screen."); 24 | display(14,0," ESC pops up menus."); 25 | display(15,0," Ctrl-J sets up your joystick."); 26 | display(16,0," + Increases volume."); 27 | display(17,0," - Decreases volume."); 28 | 29 | WaitForKey: 30 | if (!have.key()) { 31 | goto(WaitForKey); 32 | } 33 | 34 | accept.input(); 35 | status.line.on(); 36 | graphics(); 37 | set(input_parsed); 38 | return(); -------------------------------------------------------------------------------- /help/files_used.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Files used by AGI 4 | 5 |

Files used by AGI

6 | These are the files that contain the actual data for the game.

7 | Vol files (VOL.*): These files contain the resources. They are stored one after the other in the file, with a small header at the start of each resource identifying its size.

8 | Directory files (LOGDIR, PICDIR, VIEWDIR, SNDDIR): These store the locations of each resource in the VOL files.

9 | OBJECT and WORDS.TOK: See data used by AGI section

10 | In version 3, the VOL files have the game ID in front of them (e.g. KQ4VOL.0) and all the directory files are combined into one file (e.g. KQ4DIR)

11 | If you want to know the format of these files, check out AGI Specs.

12 | These are the files used by Sierra's original DOS interpreter. Other interpreters will use different files.

13 |

19 | Back to data used by AGI

20 | 21 | -------------------------------------------------------------------------------- /packaging/debian/copyright: -------------------------------------------------------------------------------- 1 | QT AGI Studio was debianized by Jarno Elonen in 2003 2 | from source files available at 3 | 4 | http://agistudio.sourceforge.net/ 5 | 6 | Upstream authors: 7 | Helen Zommer 8 | Jarno Elonen 9 | Claudio Matsuoka 10 | Peter Kelly (orig. Agistudio in Pascal) 11 | Lance Ewing (the DOS Picedit) 12 | Nat Budin (Win32 fixes) 13 | 14 | Upstream copyright: 15 | 2000, 2002, 2003 Helen Zommer 16 | 2003 Jarno Elonen 17 | 1999 Claudio Matsuoka 18 | 2000 Nat Budin 19 | 20 | (Peter Kelly and Lance Ewing are not included in this 21 | list since while a great part of the logic and ideas 22 | are based on their work, QT Agistudio has been 23 | rewritten in C++.) 24 | 25 | QT AGI Studio is distributed under the terms of the 26 | GNU General Public License. 27 | 28 | On Debian GNU/Linux system you can find a copy of GPL in 29 | /usr/share/common-licenses/GPL' 30 | 31 | 32 | The packager has placed his own packaging works into the Public 33 | Domain and licenses those works that are modifications to existing 34 | copyrighted works (some packaging scripts, modified upstream 35 | sources etc.) under the same license as the original ones. 36 | -------------------------------------------------------------------------------- /src/bmp2agipic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Bitmap to (Sierra) AGI picture resource converter 3 | * Copyright (C) 2012 Jarno Elonen 4 | * 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | * 20 | */ 21 | 22 | #ifndef bmp2agipic_h 23 | #define bmp2agipic_h 24 | 25 | 26 | class QByteArray; 27 | class QImage; 28 | 29 | // Converts bitmaps (pic and pri) into an AGI "picture" resource. 30 | // Returns NULL if success, or error message otherwise. 31 | // Pri image may be null (QImage.isNull(). 32 | const char *bitmapToAGIPicture(const QImage &pic, const QImage &pri, QByteArray *res); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/resources/zoom_minus.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *zoom_minus[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "30 30 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "..............................", 9 | "..............................", 10 | "..............................", 11 | "..............................", 12 | "................. ........", 13 | "............... ..... ......", 14 | ".............. ......... .....", 15 | "............. ........... ....", 16 | "............ ............. ...", 17 | "............ ............. ...", 18 | "........... ............... ..", 19 | "........... ... .. ..", 20 | "........... ... .. ..", 21 | "........... ............... ..", 22 | "........... ............... ..", 23 | "............ ............. ...", 24 | "............ ............. ...", 25 | "............. ........... ....", 26 | "............ ......... .....", 27 | "........... .. ..... ......", 28 | ".......... .. ... ........", 29 | "......... .. .................", 30 | "........ .. ..................", 31 | "....... .. ...................", 32 | "...... .. ....................", 33 | "..... .. .....................", 34 | ".... .. ......................", 35 | "... .. .......................", 36 | ".. ........................", 37 | ".............................." 38 | }; 39 | -------------------------------------------------------------------------------- /src/resources/zoom_plus.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *zoom_plus[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "30 30 2 1", 5 | " c black", 6 | ". c gray100", 7 | /* pixels */ 8 | "..............................", 9 | "..............................", 10 | "..............................", 11 | "..............................", 12 | "................. ........", 13 | "............... ..... ......", 14 | ".............. ......... .....", 15 | "............. ..... .... ....", 16 | "............ ...... ..... ...", 17 | "............ ...... ..... ...", 18 | "........... ....... ...... ..", 19 | "........... ... .. ..", 20 | "........... ... .. ..", 21 | "........... ....... ...... ..", 22 | "........... ....... ...... ..", 23 | "............ ...... ..... ...", 24 | "............ ...... ..... ...", 25 | "............. ........... ....", 26 | "............ ......... .....", 27 | "........... .. ..... ......", 28 | ".......... .. ... ........", 29 | "......... .. .................", 30 | "........ .. ..................", 31 | "....... .. ...................", 32 | "...... .. ....................", 33 | "..... .. .....................", 34 | ".... .. ......................", 35 | "... .. .......................", 36 | ".. ........................", 37 | ".............................." 38 | }; 39 | -------------------------------------------------------------------------------- /src/resources/zoom_plus_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *zoom_plus_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "30 30 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "..............................", 9 | "..............................", 10 | "..............................", 11 | "..............................", 12 | "................. ........", 13 | "............... ..... ......", 14 | ".............. ......... .....", 15 | "............. ..... .... ....", 16 | "............ ...... ..... ...", 17 | "............ ...... ..... ...", 18 | "........... ....... ...... ..", 19 | "........... ... .. ..", 20 | "........... ... .. ..", 21 | "........... ....... ...... ..", 22 | "........... ....... ...... ..", 23 | "............ ...... ..... ...", 24 | "............ ...... ..... ...", 25 | "............. ........... ....", 26 | "............ ......... .....", 27 | "........... .. ..... ......", 28 | ".......... .. ... ........", 29 | "......... .. .................", 30 | "........ .. ..................", 31 | "....... .. ...................", 32 | "...... .. ....................", 33 | "..... .. .....................", 34 | ".... .. ......................", 35 | "... .. .......................", 36 | ".. ........................", 37 | ".............................." 38 | }; 39 | -------------------------------------------------------------------------------- /src/resources/zoom_minus_x.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *zoom_minus_x[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "30 30 2 1", 5 | " c black", 6 | ". c None", 7 | /* pixels */ 8 | "..............................", 9 | "..............................", 10 | "..............................", 11 | "..............................", 12 | "................. ........", 13 | "............... ..... ......", 14 | ".............. ......... .....", 15 | "............. ........... ....", 16 | "............ ............. ...", 17 | "............ ............. ...", 18 | "........... ............... ..", 19 | "........... ... .. ..", 20 | "........... ... .. ..", 21 | "........... ............... ..", 22 | "........... ............... ..", 23 | "............ ............. ...", 24 | "............ ............. ...", 25 | "............. ........... ....", 26 | "............ ......... .....", 27 | "........... .. ..... ......", 28 | ".......... .. ... ........", 29 | "......... .. .................", 30 | "........ .. ..................", 31 | "....... .. ...................", 32 | "...... .. ....................", 33 | "..... .. .....................", 34 | ".... .. ......................", 35 | "... .. .......................", 36 | ".. ........................", 37 | ".............................." 38 | }; 39 | -------------------------------------------------------------------------------- /template/src/logic98.txt: -------------------------------------------------------------------------------- 1 | print.v(v17); 2 | quit(1); 3 | return(); 4 | 5 | // Messages (all messages are here) 6 | #message 1 "discard.view(%v18):%m30" 7 | #message 2 "set.view(%v18,_):%m26" 8 | #message 3 "set.view(_,%v18):%m30" 9 | #message 4 "set.loop(%v18,_):%m26" 10 | #message 5 "set.loop(%v18,_):\nBad loop #.%m25" 11 | #message 6 "set.loop(%v18,_):%m31" 12 | #message 7 "set.cel(%v18,_):%m26" 13 | #message 8 "set.cel(%v18,_):\nBad cel #.%m25" 14 | #message 9 "sound(%v18):\nSound not loaded.%m25" 15 | #message 10 "set.cel(%v18,_):%m31" 16 | #message 11 "Script buffer overflow.\nMaximum size = %v18%m25" 17 | #message 12 "erase(%v18):%m26" 18 | #message 13 "animate.obj(%v18):%m26" 19 | #message 14 "stop.update(%v18):%m28" 20 | #message 15 "Bad test: %v18%m25" 21 | #message 16 "Bad action: %v18%m25" 22 | #message 17 "start.update(%v18):%m28" 23 | #message 18 "draw.pic(%v18):%m32" 24 | #message 19 "draw(%v18):%m26" 25 | #message 20 "draw(%v18):%m31" 26 | #message 21 "discard.pic(%v18):%m32" 27 | #message 22 "" 28 | #message 23 "get(%v18) or put(%v18):%m26" 29 | #message 25 "\nPress ESC to quit." 30 | #message 26 "%m27.%m25" 31 | #message 27 "\nBad object number" 32 | #message 28 "%m27 or object not drawn.%m25" 33 | #message 29 "\nView not " 34 | #message 30 "%m29loaded.%m25" 35 | #message 31 "%m29set.%m25" 36 | #message 32 "Picture not loaded.%m25" 37 | -------------------------------------------------------------------------------- /relnotes: -------------------------------------------------------------------------------- 1 | Release notes for QT AGI Studio version 1.3.0 (2012-08-25) 2 | 3 | - new features: 4 | * ported to QT4 5 | * bitmap import for picture resources (vectorization) 6 | * replaced old game open dialog with QT4 native 7 | * more useful/complete template game (more like an example now) 8 | * monospace font in logic editor 9 | 10 | - bug fixes: 11 | * fixed a long-standing random startup crash 12 | * wider position text area in picture editor 13 | 14 | - cleaner compilation, again 15 | 16 | Release notes for QT AGI Studio version 1.2.4 (2009-04-09) 17 | 18 | - cleaner compilation ("const char*" fixes etc.) 19 | 20 | Release notes for QT AGI Studio version 1.2.3 (2007-03-18) 21 | 22 | - new features: 23 | * bitmap export for views (sprites) 24 | 25 | Release notes for QT AGI Studio version 1.2.1 (2003-08-08) 26 | 27 | - new features: 28 | * midi export 29 | 30 | Release notes for QT AGI Studio version 1.2 (2003-05-17) 31 | 32 | - new features: 33 | * logic editor: show line numbers 34 | * documented the previously unknown commands 35 | 36 | - bug fixes: 37 | * compiler: support for new AGI commands and empty blocks 38 | to make LSL1 decompilable (thanks to Andreas J. Bathe 39 | for reporting this) 40 | * logic editor: fixed occasional crash with decompiled logics 41 | 42 | - other: 43 | * Included a printable picture template for drafting AGI 44 | pictures with a pencil 45 | -------------------------------------------------------------------------------- /packaging/rpm/agistudio.spec: -------------------------------------------------------------------------------- 1 | Summary: AGI integrated development environment 2 | Name: agistudio 3 | Version: 1.3.0 4 | Release: 0 5 | Copyright: GPL 6 | Group: Development/Tools 7 | Source: agistudio-1.3.0.tar.gz 8 | URL: http://agistudio.sourceforge.net/ 9 | %description 10 | AGI (Adventure Game Interpreter) is the adventure game engine used by 11 | Sierra On-Line(tm) to create some of their early games. QT AGI Studio 12 | is a program which allows you to view, create and edit AGI games. 13 | %prep 14 | %setup 15 | %build 16 | cd src 17 | qmake-qt4 agistudio.pro -o Makefile 18 | make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" 19 | 20 | %install 21 | mkdir -p /usr/local/agistudio/bin 22 | mkdir -p /usr/local/bin 23 | install -m 755 -o 0 -g 0 src/agistudio /usr/local/agistudio//bin/agistudio 24 | ln -fs /usr/local/agistudio/bin/agistudio /usr/local/bin/agistudio 25 | install -m 755 -d -o 0 -g 0 template /usr/local/agistudio/template 26 | install -m 755 -d -o 0 -g 0 help /usr/local/agistudio/help 27 | install -m 755 -o 0 -g 0 README /usr/local/agistudio/README 28 | install -m 755 -o 0 -g 0 relnotes /usr/local/agistudio/relnotes 29 | cp help/* /usr/local/agistudio/help 30 | cp -r template/* /usr/local/agistudio/template 31 | 32 | %files 33 | /usr/local/agistudio/bin/agistudio 34 | /usr/local/bin/agistudio 35 | /usr/local/agistudio/template 36 | /usr/local/agistudio/help 37 | /usr/local/agistudio/relnotes 38 | /usr/local/agistudio/README 39 | 40 | -------------------------------------------------------------------------------- /help/new_room.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | new.room 4 | 5 |

new.room

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | new.room(ROOMNO);

11 | Description

12 |

13 | Switches to a new room, ROOMNO.

14 | The following things automatically happen when this command is used:

15 |

29 | See also

30 | new.room.v

31 | player.control

32 | unblock

33 | set.horizon

34 | Special variables

35 | Special flags

36 | 37 | -------------------------------------------------------------------------------- /help/new_room_v.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | new.room.v 4 | 5 |

new.room.v

6 | Category

7 | Control flow commands

8 | Syntax

9 |

10 | new.room(vROOMNO);

11 | Description

12 |

13 | Switches to a new room, vROOMNO.

14 | The following things automatically happen when this command is used:

15 |

29 | See also

30 | new.room

31 | player.control

32 | unblock

33 | set.horizon

34 | Special variables

35 | Special flags

36 | 37 | --------------------------------------------------------------------------------