Enigma Reference Manual for Version 1.20
Total Page:16
File Type:pdf, Size:1020Kb
Enigma Reference Manual for version 1.20 Daniel Heck (old API v 0.92) Petr Machata (old API v 0.92) Ralf Westram (old API v 0.92) Ronald Lamprecht Andreas Lochmann Andreas Abraham i Table of Contents 1 Running Enigma :::::::::::::::::::::::::::::::: 1 1.1 Locating Resources::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Startup Switches ::::::::::::::::::::::::::::::::::::::::::::::: 2 1.3 User Options::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.4 Inventory Console :::::::::::::::::::::::::::::::::::::::::::::: 5 1.5 Level Info :::::::::::::::::::::::::::::::::::::::::::::::::::::: 6 1.5.1 Public Ratings :::::::::::::::::::::::::::::::::::::::::::: 6 1.5.2 Scores:::::::::::::::::::::::::::::::::::::::::::::::::::: 10 1.5.3 Versions:::::::::::::::::::::::::::::::::::::::::::::::::: 10 1.5.4 Private Annotations and Ratings ::::::::::::::::::::::::: 11 1.5.5 Screenshots :::::::::::::::::::::::::::::::::::::::::::::: 11 1.6 Handicap and PAR ::::::::::::::::::::::::::::::::::::::::::: 11 1.7 User Sound Sets :::::::::::::::::::::::::::::::::::::::::::::: 12 2 Levelpack Basics::::::::::::::::::::::::::::::: 15 2.1 Getting Started with Levelpacks::::::::::::::::::::::::::::::: 15 2.2 Converting 0.92 Levelpacks:::::::::::::::::::::::::::::::::::: 16 2.3 Zip Levelpacks :::::::::::::::::::::::::::::::::::::::::::::::: 17 2.4 Grouping and Sorting Levelpacks :::::::::::::::::::::::::::::: 17 2.5 Creating New Levelpacks:::::::::::::::::::::::::::::::::::::: 18 2.6 Modifying and Deleting Levelpacks :::::::::::::::::::::::::::: 19 2.7 Composing Levelpacks :::::::::::::::::::::::::::::::::::::::: 19 3 Level Basics :::::::::::::::::::::::::::::::::::: 21 3.1 Getting Started with Levels ::::::::::::::::::::::::::::::::::: 22 3.2 XML Level structure :::::::::::::::::::::::::::::::::::::::::: 25 3.3 Info metadata::::::::::::::::::::::::::::::::::::::::::::::::: 28 3.3.1 <identity> :::::::::::::::::::::::::::::::::::::::::::::::: 30 3.3.2 <version> :::::::::::::::::::::::::::::::::::::::::::::::: 30 3.3.3 <author> ::::::::::::::::::::::::::::::::::::::::::::::::: 32 3.3.4 <copyright> :::::::::::::::::::::::::::::::::::::::::::::: 32 3.3.5 <license> ::::::::::::::::::::::::::::::::::::::::::::::::: 33 3.3.6 <compatibility> :::::::::::::::::::::::::::::::::::::::::: 33 3.3.7 <modes> ::::::::::::::::::::::::::::::::::::::::::::::::: 35 3.3.8 <comments>:::::::::::::::::::::::::::::::::::::::::::::: 36 3.3.9 <score> :::::::::::::::::::::::::::::::::::::::::::::::::: 37 3.4 LUA code::::::::::::::::::::::::::::::::::::::::::::::::::::: 38 3.5 Internationalization (i18n)::::::::::::::::::::::::::::::::::::: 39 3.6 Usage ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 41 3.7 Update and Upgrade :::::::::::::::::::::::::::::::::::::::::: 43 3.8 Library Files :::::::::::::::::::::::::::::::::::::::::::::::::: 43 3.8.1 Writing a Library :::::::::::::::::::::::::::::::::::::::: 44 ii 3.8.2 Maintaining a Library :::::::::::::::::::::::::::::::::::: 44 3.9 Multilevel Files ::::::::::::::::::::::::::::::::::::::::::::::: 45 4 Enigma Paradigm ::::::::::::::::::::::::::::: 47 4.1 The World's Structure :::::::::::::::::::::::::::::::::::::::: 47 4.1.1 World's Shape and Coordinates::::::::::::::::::::::::::: 47 4.1.2 Object Layers :::::::::::::::::::::::::::::::::::::::::::: 48 4.1.3 World as an Object :::::::::::::::::::::::::::::::::::::: 48 4.1.4 Unpositioned Objects :::::::::::::::::::::::::::::::::::: 48 4.1.5 Player and Inventory ::::::::::::::::::::::::::::::::::::: 49 4.1.6 Owned Objects::::::::::::::::::::::::::::::::::::::::::: 49 4.2 Object Description :::::::::::::::::::::::::::::::::::::::::::: 50 4.2.1 Object Kind ::::::::::::::::::::::::::::::::::::::::::::: 50 4.2.2 Object Reference ::::::::::::::::::::::::::::::::::::::::: 50 4.2.3 Object Naming::::::::::::::::::::::::::::::::::::::::::: 51 4.2.4 Object Attributes :::::::::::::::::::::::::::::::::::::::: 53 4.3 Methods of Interaction :::::::::::::::::::::::::::::::::::::::: 54 4.3.1 Messages ::::::::::::::::::::::::::::::::::::::::::::::::: 55 4.3.2 Target - Action :::::::::::::::::::::::::::::::::::::::::: 55 4.3.3 Callback Function :::::::::::::::::::::::::::::::::::::::: 57 4.3.4 Object State ::::::::::::::::::::::::::::::::::::::::::::: 57 4.4 The Lifecycle of a Level ::::::::::::::::::::::::::::::::::::::: 59 4.4.1 Library Preloading ::::::::::::::::::::::::::::::::::::::: 59 4.4.2 Snapshot Principle ::::::::::::::::::::::::::::::::::::::: 59 4.4.3 Level Initialization ::::::::::::::::::::::::::::::::::::::: 60 4.4.4 Object Transformation ::::::::::::::::::::::::::::::::::: 61 4.4.5 Named Positions ::::::::::::::::::::::::::::::::::::::::: 61 4.4.6 Callbacks and Load Balancing :::::::::::::::::::::::::::: 61 4.4.7 Level Restart::::::::::::::::::::::::::::::::::::::::::::: 62 4.4.8 Ending Conditions ::::::::::::::::::::::::::::::::::::::: 62 5 Lua API :::::::::::::::::::::::::::::::::::::::: 64 5.1 Basic Lua Examples::::::::::::::::::::::::::::::::::::::::::: 64 5.1.1 Basic Example ::::::::::::::::::::::::::::::::::::::::::: 64 5.1.2 Colored Turnstiles:::::::::::::::::::::::::::::::::::::::: 70 5.2 API 2 Overview::::::::::::::::::::::::::::::::::::::::::::::: 71 5.2.1 Types Overview :::::::::::::::::::::::::::::::::::::::::: 71 5.2.2 Position Tasks ::::::::::::::::::::::::::::::::::::::::::: 72 5.2.3 Attribute Tasks :::::::::::::::::::::::::::::::::::::::::: 74 5.2.4 Object Tasks ::::::::::::::::::::::::::::::::::::::::::::: 74 5.2.5 Group Tasks ::::::::::::::::::::::::::::::::::::::::::::: 76 5.2.6 Tiles and World Tasks:::::::::::::::::::::::::::::::::::: 78 5.2.7 Named Positions Tasks ::::::::::::::::::::::::::::::::::: 78 5.3 Advanced Lua Examples :::::::::::::::::::::::::::::::::::::: 79 5.3.1 Color Maze :::::::::::::::::::::::::::::::::::::::::::::: 79 5.3.2 Weirdly Wired ::::::::::::::::::::::::::::::::::::::::::: 83 5.4 Introduction to Datatypes::::::::::::::::::::::::::::::::::::: 88 5.4.1 Syntax and Conventions :::::::::::::::::::::::::::::::::: 88 iii 5.4.2 Value and Reference:::::::::::::::::::::::::::::::::::::: 89 5.4.3 Polymorphism and Overloading::::::::::::::::::::::::::: 89 5.4.4 Pseudo Datatypes :::::::::::::::::::::::::::::::::::::::: 90 5.5 Position::::::::::::::::::::::::::::::::::::::::::::::::::::::: 90 5.5.1 Position Addition and Subtraction:::::::::::::::::::::::: 91 5.5.2 Position Multiplication and Division :::::::::::::::::::::: 91 5.5.3 Position Sign ::::::::::::::::::::::::::::::::::::::::::::: 91 5.5.4 Position Center :::::::::::::::::::::::::::::::::::::::::: 92 5.5.5 Position Comparison ::::::::::::::::::::::::::::::::::::: 92 5.5.6 Position Concatenation ::::::::::::::::::::::::::::::::::: 92 5.5.7 Position Coordinate Access ::::::::::::::::::::::::::::::: 92 5.5.8 Position Grid Rounding :::::::::::::::::::::::::::::::::: 93 5.5.9 Position Existence:::::::::::::::::::::::::::::::::::::::: 93 5.6 Object :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 93 5.6.1 Object Attribute Access :::::::::::::::::::::::::::::::::: 94 5.6.2 Object Messaging :::::::::::::::::::::::::::::::::::::::: 94 5.6.3 Object Comparison::::::::::::::::::::::::::::::::::::::: 95 5.6.4 Object Existence ::::::::::::::::::::::::::::::::::::::::: 95 5.6.5 Object Kill::::::::::::::::::::::::::::::::::::::::::::::: 95 5.6.6 Object Kind Check::::::::::::::::::::::::::::::::::::::: 95 5.6.7 Object Coordinate Access :::::::::::::::::::::::::::::::: 95 5.6.8 Object Addition and Subtraction ::::::::::::::::::::::::: 96 5.6.9 Object Center:::::::::::::::::::::::::::::::::::::::::::: 96 5.6.10 Object Join ::::::::::::::::::::::::::::::::::::::::::::: 96 5.6.11 Object Intersection:::::::::::::::::::::::::::::::::::::: 97 5.6.12 Object Difference ::::::::::::::::::::::::::::::::::::::: 97 5.6.13 Object Sound ::::::::::::::::::::::::::::::::::::::::::: 97 5.7 Group :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 97 5.7.1 Group Messaging::::::::::::::::::::::::::::::::::::::::: 98 5.7.2 Group Attribute Write ::::::::::::::::::::::::::::::::::: 98 5.7.3 Group Comparison ::::::::::::::::::::::::::::::::::::::: 99 5.7.4 Group Length :::::::::::::::::::::::::::::::::::::::::::: 99 5.7.5 Group Member Access ::::::::::::::::::::::::::::::::::: 99 5.7.6 Group Loop::::::::::::::::::::::::::::::::::::::::::::: 100 5.7.7 Group Join ::::::::::::::::::::::::::::::::::::::::::::: 100 5.7.8 Group Intersection :::::::::::::::::::::::::::::::::::::: 100 5.7.9 Group Difference :::::::::::::::::::::::::::::::::::::::: 100 5.7.10 Group Shuffle :::::::::::::::::::::::::::::::::::::::::: 101 5.7.11 Group Sorting ::::::::::::::::::::::::::::::::::::::::: 101 5.7.12 Group Subset :::::::::::::::::::::::::::::::::::::::::: 101 5.7.13 Group Nearest Object:::::::::::::::::::::::::::::::::: 102 5.8 NamedObjects ::::::::::::::::::::::::::::::::::::::::::::::: 102 5.8.1 NamedObjects Repository Request :::::::::::::::::::::: 102 5.8.2 NamedObjects Object Naming :::::::::::::::::::::::::: 103 5.9 PositionList:::::::::::::::::::::::::::::::::::::::::::::::::: 103 5.9.1 PositionList Comparison :::::::::::::::::::::::::::::::: 104 5.9.2 PositionList Length ::::::::::::::::::::::::::::::::::::: 104 5.9.3 PositionList Member Access ::::::::::::::::::::::::::::: 104 iv 5.9.4 PositionList Concatenation :::::::::::::::::::::::::::::: 104 5.9.5 PositionList Translation ::::::::::::::::::::::::::::::::: 105 5.9.6 PositionList Stretching :::::::::::::::::::::::::::::::::: 105 5.10 Positions Repository :::::::::::::::::::::::::::::::::::::::: 105 5.10.1 Positions Repository Request:::::::::::::::::::::::::::