Object Flags Layout
From Meridian 59 - Open Source Wiki
Note: Update18 on 103 contained a complete refactoring of Object flags, so this information is again outdated. See: https://github.com/Daenks/Meridian59_103/pull/833
Most Recent: TABLE IS OUTDATED CLICK HERE
NOTES:
* Blakserv is using 28-Bit (but 32-Bit are shown here, so upper 4 bits are always 0) * Sections marked with ENUM: Must interpret all bits together as type value * Sections marked with BOOLS: Must interpret each bit as boolean * See official manual pages 92-93 (is a bit outdated) * Definitions for C in 'include\proto.h' * Definitions for KOD in 'kod\include\blakston.khd'
proto.h name | blakston.khd name | HEX | Notes | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
BITS: 0-1 ENUM (MoveOn Type) | |||||||||||
OF_NOMOVEON_MASK | 0x00000003 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 11 | |||
OF_MOVEON_YES | 0x00000000 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 00 | 0 | ||
OF_MOVEON_NO | 0x00000001 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 01 | 1 | Can never move on object | |
OF_MOVEON_TELEPORTER | 0x00000002 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 10 | 2 | Can move on object, but then kod will move you elsewhere | |
OF_MOVEON_NOTIFY | 0x00000003 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 11 | 3 | ||
BITS: 2-13 BOOLS | |||||||||||
OF_PLAYER | 0x00000004 | 0000 | 0000 | 0000 | 000 | 000 | 000000000001 | 00 | - | Set if object is a player | |
OF_ATTACKABLE | 0x00000008 | 0000 | 0000 | 0000 | 000 | 000 | 000000000010 | 00 | - | Set if object is legal target for an attack | |
OF_GETTABLE | 0x00000010 | 0000 | 0000 | 0000 | 000 | 000 | 000000000100 | 00 | - | Set if player can try to pick up object | |
OF_CONTAINER | 0x00000020 | 0000 | 0000 | 0000 | 000 | 000 | 000000001000 | 00 | - | Set if player can put objects inside this one | |
OF_NOEXAMINE | 0x00000040 | 0000 | 0000 | 0000 | 000 | 000 | 000000010000 | 00 | - | ||
OF_ITEM_MAGIC [103!] | 0x00000080 | 0000 | 0000 | 0000 | 000 | 000 | 000000100000 | 00 | - | Set for magic item to color in lists | |
OF_HANGING | 0x00000100 | 0000 | 0000 | 0000 | 000 | 000 | 000001000000 | 00 | - | ||
OF_OFFERABLE | 0x00000200 | 0000 | 0000 | 0000 | 000 | 000 | 000010000000 | 00 | - | Set if object can be offered to | |
OF_BUYABLE | 0x00000400 | 0000 | 0000 | 0000 | 000 | 000 | 000100000000 | 00 | - | Set if object can be bought from | |
OF_ACTIVATABLE | 0x00000800 | 0000 | 0000 | 0000 | 000 | 000 | 001000000000 | 00 | - | Set if object can be activated | |
OF_APPLYABLE | 0x00001000 | 0000 | 0000 | 0000 | 000 | 000 | 010000000000 | 00 | - | Set if object can be applied to another object | |
OF_SAFETY | 0x00002000 | 0000 | 0000 | 0000 | 000 | 000 | 100000000000 | 00 | - | Set if player has safety on (self only) | |
BITS: 14-16 ENUM (Player Type) | |||||||||||
OF_PLAYER_MASK | 0x0001C000 | 0000 | 0000 | 0000 | 000 | 111 | 000000000000 | 00 | Mask to get player flag bits | ||
PLAYER_NO | 0x00000000 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 00 | 0 | ||
PF_KILLER | 0x00004000 | 0000 | 0000 | 0000 | 000 | 001 | 000000000000 | 00 | 1 | Set if object is a killer (must also have OF_PLAYER) | |
PF_OUTLAW | 0x00008000 | 0000 | 0000 | 0000 | 000 | 010 | 000000000000 | 00 | 2 | -|-OF_PLAYER) | |
PF_DM | 0x0000C000 | 0000 | 0000 | 0000 | 000 | 011 | 000000000000 | 00 | 3 | Set if object is a DM player | |
PF_CREATOR | 0x00010000 | 0000 | 0000 | 0000 | 000 | 100 | 000000000000 | 00 | 4 | Set if object is a creator player | |
PF_SUPER | 0x00014000 | 0000 | 0000 | 0000 | 000 | 101 | 000000000000 | 00 | 5 | Set if object is a "super DM" | |
PF_MODERATOR [103!] | 0x00018000 | 0000 | 0000 | 0000 | 000 | 110 | 000000000000 | 00 | 6 | ||
PF_EVENTCHAR | 0x0001C000 | 0000 | 0000 | 0000 | 000 | 111 | 000000000000 | 00 | 7 | Set if object is an event character | |
BITS: 17-19 BOOLS | |||||||||||
OF_FLICKERING | 0x00020000 | 0000 | 0000 | 0000 | 001 | 000 | 000000000000 | 00 | 1 | For players or objects if holding a flickering light. | |
OF_FLASHING | 0x00040000 | 0000 | 0000 | 0000 | 010 | 000 | 000000000000 | 00 | 2 | For players or objects if flashing with light. | |
OF_BOUNCING | 0x00060000 | 0000 | 0000 | 0000 | 011 | 000 | 000000000000 | 00 | 3 | If both flags on then object is bouncing | |
OF_PHASING | 0x00080000 | 0000 | 0000 | 0000 | 100 | 000 | 000000000000 | 00 | 4 | For players or objects if phasing translucent/solid. | |
BITS: 20-23 ENUM (Drawing Type) | |||||||||||
OF_EFFECT_MASK | 0x01F00000 | 0000 | 0000 | 1111 | 000 | 000 | 000000000000 | 00 | Mask to get object drawing effect bits | ||
OF_DRAW_PLAIN | 0x00000000 | 0000 | 0000 | 0000 | 000 | 000 | 000000000000 | 00 | 0 | No special drawing effects | |
OF_TRANSLUCENT25 | 0x00100000 | 0000 | 0000 | 0001 | 000 | 000 | 000000000000 | 00 | 1 | Set if object should be drawn at 25% opacity | |
OF_TRANSLUCENT50 | 0x00200000 | 0000 | 0000 | 0010 | 000 | 000 | 000000000000 | 00 | 2 | Set if object should be drawn at 50% opacity | |
OF_TRANSLUCENT75 | 0x00300000 | 0000 | 0000 | 0011 | 000 | 000 | 000000000000 | 00 | 3 | Set if object should be drawn at 75% opacity | |
OF_BLACK | 0x00400000 | 0000 | 0000 | 0100 | 000 | 000 | 000000000000 | 00 | 4 | Set if object should be drawn all black | |
OF_INVISIBLE | 0x00500000 | 0000 | 0000 | 0101 | 000 | 000 | 000000000000 | 00 | 5 | Set if object should be drawn with invisibility effect | |
OF_TRANSLATE | 0x00600000 | 0000 | 0000 | 0110 | 000 | 000 | 000000000000 | 00 | 6 | Reserved (used internally by client) | |
OF_DITHERINVIS | 0x00700000 | 0000 | 0000 | 0111 | 000 | 000 | 000000000000 | 00 | 7 | Haze (dither with transparency) 50% of pixels | |
OF_DITHERTRANS | 0x00800000 | 0000 | 0000 | 1000 | 000 | 000 | 000000000000 | 00 | 8 | Dither (with two translates) 50% of pixels | |
OF_DOUBLETRANS | 0x00900000 | 0000 | 0000 | 1001 | 000 | 000 | 000000000000 | 00 | 9 | Translate twice each pixel, plus lighting | |
OF_SECONDTRANS | 0x00A00000 | 0000 | 0000 | 1010 | 000 | 000 | 000000000000 | 00 | 10 | Ignore per-overlay xlat and use only secondary xlat | |
BITS: 24-27 BOOLS | |||||||||||
OF_MINIMAP_MASK | 0x0F000000 | 0000 | 1111 | 0000 | 000 | 000 | 000000000000 | 00 | |||
OF_ENEMY | 0x01000000 | 0000 | 0001 | 0000 | 000 | 000 | 000000000000 | 00 | - | Enemy player | |
OF_FRIEND | 0x02000000 | 0000 | 0010 | 0000 | 000 | 000 | 000000000000 | 00 | - | Friendly player | |
OF_GUILDMATE | 0x04000000 | 0000 | 0100 | 0000 | 000 | 000 | 000000000000 | 00 | - | Guildmate player | |
OF_MINION | 0x08000000 | 0000 | 1000 | 0000 | 000 | 000 | 001000000000 | 00 | - | Overlaps with OF_ACTIVATABLE. | |
OF_MINION_OTHER | 0x09000000 | 0000 | 1001 | 0000 | 000 | 000 | 010000000000 | 00 | - | Overlaps with OF_APPLYABLE. | |
OF_MINION_SELF | 0x0A000000 | 0000 | 1010 | 0000 | 000 | 000 | 100000000000 | 00 | - | Overlaps with OF_SAFETY |