objects: snap to floor follows the engine's cell rule (cell tiles, swap models, then neighbours), alligator, alligator spawner and cow guard spawner schemas with box checks, every way of adding a box walker gives it a box, guard info names the objects that set its event bit, new and moved player starts carry their start camera node (no camera in the llama's head), edit and delete type in the object palettes' context menu

This commit is contained in:
MineTec committed 2026-11-07 13:51:12 +01:00
1 parent 01208aa36f
commit 6a76cac69f
34 files changed
+1302 -203

No files matched your search

+20 -8
View File
@@ -56,8 +56,10 @@ The **Objects** panel sits in the left dock next to the Outliner – the tab wit
* **Click** an entry to make it the current type and switch to the **Place objects** tool
(**P**). Then click in the viewport to place it.
* **Drag** an entry into the viewport to place one object exactly under the mouse pointer.
* **Right-click** an entry to add it to or remove it from your **favourites**. Favourites are
marked with ★, listed first and remembered between sessions.
* **Right-click** an entry for its menu: **Add to favourites ★** / **Remove from favourites**
(favourites are marked with ★, listed first and remembered between sessions) and, for your
own [custom types](22-strats.md), **Edit type…** and **Delete type…**. The same menu (with
**Place at view centre**) opens on the types in **Assets → Objects**.
* Hover an entry for a tooltip with the description of the type.
* **parameters decoded** means the editor knows the meaning of the type's parameters and shows
named fields in the Inspector (see [Object parameters](#object-parameters)).
@@ -89,7 +91,10 @@ ground. It is chosen automatically when you click a type in the Objects panel or
3. Click to place. The new object is selected, and the status bar shows its position.
With **Snap to floor** on, the object is put onto the *collision* floor under the pointer, not
just onto the visible surface – so it ends up where the llama can actually reach it. With grid
just onto the visible surface – so it ends up where the llama can actually reach it. Like the
game, the editor only counts the tiles listed in the grid cell under the point: a floor polygon
that reaches into the cell from a neighbouring tile is ignored there (it is used only when the
cell has no floor at all). With grid
snapping on (**G**), the position snaps to the move step first.
### Moving and turning objects
@@ -139,11 +144,11 @@ create the complete set with one click in the viewport.
The player start is the **Llama** object. A level has exactly one, so the setup **moves** the
existing Llama to the clicked point (and turns it to the chosen yaw) instead of adding a second
one. If the level has no Llama yet, one is placed together with its waypoint chain.
one. If the level has no Llama yet, one is placed with a single waypoint 2 cells behind it.
The first node of the Llama's chain is the **start position of the camera**: the setup puts it
8 cells behind the llama, slightly lower; the remaining nodes stay on the llama. See
[The start camera](11-cameras-triggers.md#the-start-camera).
The Llama's waypoints are **start camera positions**: the game uses the first one within 2.5
cells of the llama. Moving the start takes the nearby nodes and the village fly-by trigger along.
See [The start camera](11-cameras-triggers.md#the-start-camera).
> **Tip:** **Level → Play from camera position** (**Shift+F5**) starts a play-test at another
> point without moving the real start – see [Building and play-testing](15-build-play.md).
@@ -305,6 +310,8 @@ The editor knows the parameters of these types (the rest show raw values):
| **RubyIdolDoor** | Idols needed, Offset (sign distance) | – |
| **PressurePadDoor** | Pad flags (bit field), Door z, Camera, Camera hold | – |
| **CityGuard** (and CityGuardWithRubyIdol, CowGuard, GorillaGuard, LizardGuard, WarthogGuard) | View range, Chase range, Event bit (0 = active at once), Wall collision (CityGuard only) | Walking boxes: node pairs; the guard must **start inside one box** |
| **CowGuardSpawner** | View range and Chase range of its guards, Max guards, Interval (s) | Walking boxes handed to its guards; the spawner must stand inside one |
| **Alligator**, **AlligatorSpawner** | Spawner: Max alligators, Interval (s), Floor collision | Walking boxes: node pairs; an alligator outside every box is moved into the first one; a spawner's alligators walk straight ahead into the first box |
| **JumpingBeetleBlue**, **JumpingBeetle** | Jump time, Wait, Jump height, Pause | Jump targets |
| **Spider** | Range, Speed, Down time, Up time, Start down | Path |
| **Bunny** | Flee range | – |
@@ -314,7 +321,12 @@ The editor knows the parameters of these types (the rest show raw values):
> game removes it when the level starts – it never appears. Placing a guard gives it one 4×4 box
> around itself and Event bit 0; the Inspector shows a warning and a **Box around it** button
> when the boxes are wrong. An **Event bit** above 0 keeps the guard hidden until another object
> with that event number (a talking character, a smash statue, a door pad …) sets the bit.
> with that event number sets the bit: TipoVillage / ChacaVillage (parameter 6), the smash
> statues (parameter 0), LabBigCutscene (1), LabWall (4), LabSlidingDoor (5), GoldIdol (1),
> CityWall (4), Condor (2), RiverCrocGame (1), RiverTriggerBox (0), KidOnCanoe (4), YzmaRiver
> (2, 6), EndGameTriggerBox (0). **Level → Check** notes a guard whose bit no object in the level
> sets. Guards and alligators get their one box however you add them (Place tool, drag from a
> panel, double-click in Assets).
> **Tip:** For pickups, leave **Snap to floor** on: the game then drops the coin onto the floor
> when the level starts, so a coin placed slightly too high still ends up in the right place.
+17 -7
View File
@@ -21,17 +21,27 @@ areas as boxes and their cameras as frusta (pyramids showing the view).
## The start camera
The **Llama** (the player start) owns a waypoint chain. Its **first node is the camera's start
position** when the level begins; the game then moves the camera to its normal place behind the
llama. Levels made with the editor put this node 8 cells behind the llama (the
[Player start](09-objects.md#player-start) setup keeps it there when you move the start).
The **Llama** (the player start) owns a waypoint chain of **camera start positions**. When the
level begins, the game takes the first node that lies within **2.5 cells** of the llama as the
camera position, looking at the llama. If that node's field *unk2* is not 0, its distance and
height to the llama also become the camera distance – until the llama first moves. In the
original levels there is one node per entry door; a node that sits on the llama would put the
camera into the llama's head.
The [Player start](09-objects.md#player-start) setup gives a new Llama a single node 2 cells
behind it. Moving the start takes the nodes near the old start along (and turns them with the
llama), leaves the door nodes where they are, and adds a node if none is in range. The Place
tool's rotate knob turns the near nodes too. **Level → Check** warns when the start camera would
sit inside the llama.
The villages also start with a **fly-by**: a *CutSceneTrigger* stands on the player start (radius
0.7). When you move the start, the setup moves this trigger along and sets its "end behind the
player" flag (parameter 6, bit 1), so the fly-by ends behind the llama at the new start instead
of at the old one.
The Llama's *Camera mode* parameter switches between the normal and an alternative camera
behaviour.
> **Note:** In the original levels the Llama's chain is often a longer list used by the level's
> scripts (for example the village's fly-by at the start). Edit it with care.
## Camera zones
A camera zone is an object with a **box**: two waypoints marking opposite corners on the ground.