Jump to content
  • 0

OoT: Polygon Types


Strati
 Share

Question

Here's a report on newfound info on polygon types together with already exisiting documentation.

 

The polygon type format is made of 8 bytes. These bytes hold the most varied information regarding what should happen when the player makes contact with said polygon.

 

A good part of this data, however, is not stored in exact hexadecimal divisions. We have to break them down to the bit format to visualize correctly the boundaries of each definition.

 

The first word, divided into bits, has these sections (given how the code looks for them):

 

efaa aavv vvv- --bb bbbx xxxx cccc cccc

 

E: Generally is used as an Epona barrier, not letting you step on it while riding. It's also used on Jabu Jabu's first room floor and at the boomerang blocking glass later on.

 

F: Not sure on what it does, 4000 appears in Forest Temple carpets.

 

A: It seems to be related to leaving the polygon. Here are the values I found so far:

0x3000 -- 11 00: Restarts room, used mostly on dungeon pits;

0x2000 -- 10 00: Found at the Spirit Temple statue at shoulder height;

0x2400 -- 10 01: Link will just fall down at the edge instead of jumping. Can be combined with vector {C}. See Jabu Jabu's hole room;

0x1800 -- 01 10: Link will hang at the edge and climb down. Use it atop climbing walls.

 

 

V: Vertical collision

0x0020 -- 00 001: Epona jumps and vertical room transitions. Generally connected under 0x2400 [see above] floors;

0x0040 -- 00 010: Ladder Climbing. Link will climb in a straight line from the center of the polygon. Requires a 90° wall;

0x0060 -- 00 011: Climbdown Ladder. Paired with the Ladder collision. Makes Link start the climb down movement;

0x0080 -- 00 100: Free Climb. Link will be able to climb using the whole polygon's extension. Requires a 90° Wall;

0x00A0 -- 00 101: Crawling. Child Link will enter crawling mode upon contact;

0x00E0 -- 00 111: Link will grab and try to push the wall... forever.

 

B: Floor/Wall behavior

0x02 -- 00 001: Found at Haunted Wasteland. Seems to ease the sandstorm a bit;

0x04 -- 00 010: Spike damage;

0x06 -- 00 011: Burning floor/Lava damage;

0x08 -- 00 100: Sand. Link will slowly sink to a certain point;

0x0A -- 00 101: Ice. Sliding floor;

0x0C -- 00 110: Link's sword will pass through the wall. Might have another unknown function;

0x0E -- 00 111: Quicksand. Can be combined with vector {C};

0x10 -- 01 000: Flesh wall. Will bleed blue on attack, Nullifies Long/Hookshot grappling;

0x12 -- 01 001: Bottomless Pit. Out of Bounds Effect;

0x16 -- 01 011: Makes Link lean back and look up;

0x18 -- 01 100: Killing quicksand.

X: If different from zero, will check the respective exit index and spawn link at the listed entrance.

 

C: Apparently has to do with camera. Here's what the wiki says:

0x00 Default distance and behavior (same as 5, actually)

0x01 Extremely high birds-eye view

0x02 Same

0x03 Camera follows Link at a close distance

0x04: Camera follows Link further away

0x05: Camera stays at a moderate distance away from Link (less than 4, more than 3)

0x06+: Similar to 5, but at a slightly higher angle

 

Second word:

 

---- daaa aaav vvhc cccc ceee eett ssss

 

D: Wall damages the player on contact.

 

A: If the vector is on, determines the horizontal angle Link will take, having the map center as reference.

Values go from 00 to 3F: 0x00 = 270°, 0x10 = 0°, 0x20 = 90°, 0x30 = 180°.

 

Don't forget to shift left / multiply it by 2 when writing directly to the hex format.

E.g. 45° = 0x18. Matching it to the format [assuming D and V are 0]: Daaa aaaV => 0011 0000 = 30 = 18*2.

 

V: Movement follows a vector, much like a waypoint.

In exit polygons, Link leaves in a straight line determined by the angle setting.

In river floors, or polygons under a waterbox, it can be used to emulate a stream.

 

0xC -- 0 11 Default setting. Strong stream, no swimming back;

0x8 -- 0 10 Medium stream;

0x4 -- 0 01 Weak stream.

 

There's a complication, though...

 

This whole vector depends on a kind of header value on the polygon format itself.

 

Exits require the 2nd vertex {b} "header" to be 2.

 

Here's an example:

tt tt aa aa bb bb cc cc xx xx yy yy zz zz pp pp

00 03 00 15 20 16 00 17 FD 17 7B DF DF E4 FF E6

 

On the other hand, streams need the 1st vertex {a} header to be A.

 

Adjusting the previous example, we would have:

tt tt aa aa bb bb ...

00 03 A0 15 00 16 ...

 

H: Enables hookshot grappling.

 

C: Echo. Determines a specific echo level, overriding the map default.

 

E: Environment. Uses lighting according to the environment index, overriding the map default.

 

T: Steepness. Link will slide down on slopes.

 

S: Sound. Sets the sounds the polygon will emit when stepped on or hit.

0, B, E, F: Earth/dirt. Dirt kicked up when rolling;

1: Sand

2: Stone

3: Wet stone

4: Shallow water. Water particles;

5: Water (lower-pitched sound). Water particles;

6: High grass

7: Lava

8: Low grass

9: Wooden plank

A: Solid Wood, wall sound.

C: Ice, Ceramic

D: Carpet

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.