├── 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 |7 | sound
8 | stop.sound
9 | 10 | -------------------------------------------------------------------------------- /help/renumbering_resources.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |7 | Back to contents
8 | 9 | -------------------------------------------------------------------------------- /help/set.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |8 | Syntax
9 |
10 | version();
11 | Description
12 |
13 | Displays the interpreter version.
14 | See also
15 | 16 | -------------------------------------------------------------------------------- /help/parse.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |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 |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 |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 |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 |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 |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 |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 |7 | draw.pic
8 | load.pic
9 | overlay.pic
10 | show.pic
11 | 12 | -------------------------------------------------------------------------------- /help/set_v.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |7 | parse
8 | set.string
9 | word.to.string
10 | Test commands
11 | compare.strings
12 | 13 | -------------------------------------------------------------------------------- /help/wander.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |9 | Back to contents
10 | 11 | -------------------------------------------------------------------------------- /help/discard_sound.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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
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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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 |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
18 | 19 | -------------------------------------------------------------------------------- /help/current_cel.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |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 |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 |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
18 | 19 | -------------------------------------------------------------------------------- /help/player_control.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |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 |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 |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 |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 |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
17 | 18 | -------------------------------------------------------------------------------- /help/show_mouse.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |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 |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 |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 |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 |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
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 |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 |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 |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 |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 |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
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
18 |
19 |
--------------------------------------------------------------------------------
/help/object_on_water.html:
--------------------------------------------------------------------------------
1 |
2 |
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
18 |
19 |
--------------------------------------------------------------------------------
/help/end_of_loop.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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
18 |
19 |
--------------------------------------------------------------------------------
/help/trace_info.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
18 |
19 |
--------------------------------------------------------------------------------
/help/open_dialogue.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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
18 |
19 |
--------------------------------------------------------------------------------
/help/status_line_on.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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
18 |
19 |
--------------------------------------------------------------------------------
/help/submit_menu.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 | These miscellaneous extra commands where
7 | 'unknown170'-'unknown181' in previous versions
8 | of AGI Studio.
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 |
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 |
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 |
10 | Other systems such as Macintosh and Amiga supported the other voices as well.
12 |
13 |
--------------------------------------------------------------------------------
/help/set_cel_v.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
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 |
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
20 |
21 |
--------------------------------------------------------------------------------
/help/reposition_to.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
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 |
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 |
11 | See also
12 | Display commands
13 |
14 |
--------------------------------------------------------------------------------
/help/position_v.html:
--------------------------------------------------------------------------------
1 |
2 |
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
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 |
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 |
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 |
8 | Flag commads
10 | Picture commands
11 | Debugging commands
12 | Object/view 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 |
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 |
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 |
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 |
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 |
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 |
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
22 |
23 |
--------------------------------------------------------------------------------
/help/show_obj_v.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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
16 | Priorities
17 | See also
18 | Object/view commands
19 |
20 |
--------------------------------------------------------------------------------
/help/getting_started.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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.
15 |
16 |
--------------------------------------------------------------------------------
/help/overlay_pic.html:
--------------------------------------------------------------------------------
1 |
2 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
20 |
21 |
--------------------------------------------------------------------------------
/packaging/debian/copyright:
--------------------------------------------------------------------------------
1 | QT AGI Studio was debianized by Jarno Elonen
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 |
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 |
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 |
30 | new.room
31 | player.control
32 | unblock
33 | set.horizon
34 | Special variables
35 | Special flags
36 |
37 |
--------------------------------------------------------------------------------
object.on.land
6 | Categoryobject.on.water
6 | Categoryend.of.loop
6 | Categoryfence.mouse
6 | CategoryAbout 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 | fix.loop
6 | Categorynumber.of.loops
6 | Categoryreverse.loop
6 | Categoryset.menu
6 | Categorydistance
6 | CategoryInventory item commands
6 | dropclear.text.rect
6 | Categoryobj.in.box
6 | Categoryposn
6 | Categoryrelease.priority
6 | Categoryrestore.game
6 | Categoryshow.mem
6 | Categorystep.size
6 | Categorystop.motion
6 | Categorycenter.posn
6 | Categoryright.posn
6 | CategoryOpening 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 | set.view
6 | Categorydisable.item
6 | Categoryset.view.v
6 | CategoryMenu/Key commands
6 | For information on setting up menu items and keys, click here.save.game
6 | Categorydiscard.view
6 | Categoryfollow.ego
6 | Categoryignore.blocks
6 | Categorytrace.info
6 | Categoryclose.dialogue
6 | Categorydiscard.view.v
6 | CategoryAGI Logic help
6 | Getting started
17 | Back to contentsopen.dialogue
6 | Categoryobserve.blocks
6 | Categorystatus.line.on
6 | Categorystop.cycling
6 | Categorycycle.time
6 | Categorysound
6 | Categorydraw.pic
6 | Categoryset.menu.item
6 | Categorynormal.cycle
6 | CategoryPositioning objects
6 | There are five commands which allow you to position objects on screen:reverse.cycle
6 | Categorystatus.line.off
6 | Categorynormal.motion
6 | Categoryignore.objs
6 | Categorysubmit.menu
6 | Categorystep.time
6 | Categoryload.view
6 | Categoryprint
6 | Categoryload.view.v
6 | Categoryprint.v
6 | Categoryprint.at
6 | Categoryset.text.attribute
6 | Categoryprogram.control
6 | CategoryProject 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 | set.dir
6 | Category
print.at.v
6 | CategoryExtra commands
6 | Extracting resources
6 | To extract a resource, click on the resource you wish to extract and select 'Extract' from the 'Resource' menu.set.cel
6 | CategorySound 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 | set.cel.v
6 | Categoryset.loop
6 | Categorytext.screen
6 | Categoryset.loop.v
6 | Categorystart.cycling
6 | Categoryset.horizon
6 | Categoryreposition.to
6 | Category Test commands
6 | equalnstart.motion
6 | Categoryposition
6 | Categoryreposition.to.v
6 | CategorySystem commands
6 | accept.inputDisplaying 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 | position.v
6 | CategoryData 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.menu.input
6 | Categoryadd.to.pic
6 | CategoryCommands by category
6 | Test commandsreposition
6 | Categoryadd.to.pic.v
6 | CategoryText 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 | configure.screen
6 | Categoryshow.obj
6 | Categoryblock
6 | Categoryshow.obj.v
6 | CategoryViewing 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 | 

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 | 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 | 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 | overlay.pic
6 | CategoryTrace 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 | Mathematical commands
6 | addnset.simple
6 | Category
22 | set.string(s1,"test");
23 | set.simple(1);
24 | set.priority
6 | Categoryset.game.id
6 | Categoryset.priority.v
6 | CategoryRebuilding 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 | toggle.monitor
6 | CategoryDisplay commands
6 | For more information on displaying text, click here.Files used by AGI
6 | These are the files that contain the actual data for the game.
14 |
new.room
6 | Category
16 |
29 | See alsonew.room.v
6 | Category
16 |
29 | See also