Sick markup
"And now for a lesson in [ttttttttttttemplate] mmmmmmmmmanagement... [wikiwikiwiki] llllllllllllet's begin..."
- Linkin Park, Cure for the Itch
- Foreach
Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".Expression error: Unrecognized punctuation character "{".
- That solution is universal, and sorta authoritative, but it takes ages to evaluate : in any given situation, one should probably prefer a lighter, more specific solution.
- How about this?
- Note how 1-bit, 2-bit and 3-plus-bit chunks are all handled by the same (small) template ^^
- TightTable takes "optional" arguments called align and color. They're not really specified as optional, but when not provided, the relevant syntax gets screwed up "the smart way".
- The "skipped bits" span of every chunk is specified in pixels, which can be handy in case one wants a tighter layout. The non-breaking space can be replaced with a "..." to avoid confusion.
- I think the skipped widths are best let custom, as well as the "header". Apart from arbitrarily shrinking the skip fields, one may want to rephrase the header, or omit it, or make it a caption :
- (again, maybe a "..." in the skip fields would look nicer)
- Arithmetics (will only show fine if #expr parsing works OK...)
- One can calculate the width of the "skipped bits" internally, only feeding two bit IDs to the template.
- The template would then evaluate the difference, and decide upon a 1-bit, or on a 2-plus-bit layout with an adequate skip.
- However, the markup is a bit heavier, and makes a few assumptions about e.g. the order in which the bits are listed (unless one wants to fool around with abs).
- Right now, it produces a fatal error (then again, so does {{#expr:2+2}}, so there is a problem), but it would look something like this :
{|{{TightTable|color={{{4}}}}}
|-align=center
|width=18|{{{1}}}
|-
|width={{#ifexpr:{{{1}}}>{{{2}}}|{{#expr:18*({{{1}}}-{{{2}}}-1)}}|0}}|{{#ifexpr:{{{1}}}>{{{2}}}+1|...|}}
|width={{#ifexpr:{{{1}}}>{{{2}}}|18|0}}|{{#ifexpr:{{{1}}}>{{{2}}}|{{{2}}}|}}
|colspan=3|{{{3}}}
|}
- CAN-ID table
- It could be possible to embed the chunk tables into a big template table specific to the "29-Bit CAN-ID" usage, but most components would have to be in HTML. Bad idea.
OBD file types
0x000 :
|
26 |
00 |
33 |
00
|
40 |
00 |
4D |
00
|
5A |
00 |
67 |
00
|
74 |
00 |
81 |
00
|
8E |
00 |
9B |
00
|
A8 |
00 |
B5 |
00
|
C2 |
00 |
CF |
00
|
DC |
00 |
E9 |
00
|
0x020 :
|
F6 |
00 |
03 |
01
|
10 |
01 |
5F |
45
|
F9 |
3D |
B6 |
FA
|
09 |
5F |
45 |
F9
|
3D |
B6 |
FA |
18
|
39 |
1B |
34 |
88
|
77 |
09 |
18 |
39
|
1B |
34 |
88 |
77
|
Heh.
Type
|
Description
|
Notes
|
|
Type
|
Description
|
Notes
|
|
Type
|
Description
|
Notes
|
3CLA
|
RGB Color Array
|
|
|
KeyI
|
Key Icons
|
L0
|
|
StNA
|
String Array
|
L0
|
Type
|
Description
|
Notes
|
3CLA
|
RGB Color Array
|
|
ABNA
|
BSP Tree Node Array
|
L
|
AGDB
|
Gunk Quad Debug Array
|
L
|
AGQC
|
Gunk Quad Collision Array
|
L
|
AGQG
|
Gunk Quad General Array
|
L
|
AGQM
|
Gunk Quad Material
|
|
AGQR
|
Gunk Quad Render Array
|
L
|
AISA
|
AI Character Setup Array
|
L
|
AITR
|
AI Script Trigger Array
|
L
|
AIWA
|
AI Imported Waypoint Array
|
|
AKAA
|
Adjacency Array
|
L
|
AKBA
|
Side Array
|
L
|
AKBP
|
BSP Node Array
|
L
|
AKDA
|
Door Frame Array
|
L
|
AKEV
|
Akira Environment
|
L
|
AKOT
|
Oct Tree
|
L
|
AKVA
|
BNV Node Array
|
L
|
BINA
|
Binary Data
|
S
|
CBPI
|
Character Body Part Impacts
|
C
|
CBPM
|
Character Body Part Material
|
C
|
CONS
|
Console
|
L0
|
CRSA
|
Corpse Array
|
L
|
DOOR
|
Door
|
L0
|
DPge
|
Diary Page
|
L0
|
EDIA
|
Edge Index Array
|
|
ENVP
|
Env Particle Array
|
L
|
FILM
|
Film
|
-
|
FXLR
|
FX Laser Effect
|
|
GMAN
|
Geometry Animation
|
|
HPge
|
Help Page
|
L0
|
IDXA
|
Index Array
|
-
|
IGHH
|
IGUI HUD Help
|
L0
|
IGPA
|
IGUI Page Array
|
M
|
IGPG
|
IGUI Page
|
M
|
IGSA
|
IGUI String Array
|
M
|
IGSt
|
IGUI String
|
M
|
Impt
|
Impact Tree
|
C (0B)
|
IPge
|
Item Page
|
M
|
|
Type
|
Description
|
Notes
|
KeyI
|
Key Icons
|
L0
|
M3GA
|
Geometry Array
|
-
|
M3GM
|
Geometry
|
-
|
M3TA
|
Triangle Array
|
|
Mtrl
|
Material
|
(0B)
|
NMSA
|
Network Spawn Point Array
|
|
OBAN
|
Object Animation
|
-
|
OBDC
|
Door Class Array
|
L
|
OBLS
|
Object LS Data
|
|
OBOA
|
Starting Object Array
|
L
|
OFGA
|
Object Furn Geom Array
|
L0
|
ONCC
|
Oni Character Class
|
C
|
ONCP
|
Oni Character Particle Array
|
C ?!
|
ONCV
|
Oni Character Variant
|
C (0B) ?!
|
ONFA
|
Imported Flag Node Array
|
L
|
ONGS
|
Oni Game Settings
|
L0
|
ONIA
|
Oni Character Impact Array
|
C ?!
|
ONLD
|
Oni Game Level Descriptor
|
L0
|
ONLV
|
Oni Game Level
|
L
|
ONMA
|
Imported Marker Node Array
|
L
|
ONOA
|
Object Gunk Array
|
L
|
ONSA
|
Imported Spawn Array
|
L
|
ONSK
|
Oni Sky Class
|
L
|
ONTA
|
Trigger Array
|
L ?!
|
ONVL
|
Oni Variant List
|
L0 ?!
|
ONWC
|
Oni Weapon Class
|
L (0B)
|
OPge
|
Objective Page
|
M
|
OSBD
|
Oni Sound Binary Data
|
L0
|
OTIT
|
Oct Tree Interior Node Array
|
L
|
OTLF
|
Oct Tree Leaf Node Array
|
L
|
PLEA
|
Plane Equation Array
|
L
|
PNTA
|
3D Point Array
|
-
|
PSpc
|
Part Specification
|
M
|
PSpL
|
Part Specification List
|
L0
|
PSUI
|
Part Specifications UI
|
L0
|
QTNA
|
Quad Tree Node Array
|
L
|
QUDA
|
Quad Array
|
|
SNDD
|
Sound Data
|
-
|
|
Type
|
Description
|
Notes
|
StNA
|
String Array
|
L0
|
SUBT
|
Subtitle Array
|
L0
|
TMFA
|
Float Array
|
|
TMRA
|
Template Reference Array
|
|
TRAC
|
Animation Collection
|
C
|
TRAM
|
Totoro Animation Sequence
|
C
|
TRAS
|
Totoro Aiming Screen
|
C
|
TRBS
|
Totoro Body Set
|
C
|
TRCM
|
Totoro Quaternion Body
|
C
|
TRFT
|
Totoro Facing Table
|
|
TRGA
|
Totoro Quaternion Body Geometry Array
|
C
|
TRGE
|
Trigger Emitter
|
L0
|
TRIA
|
Totoro Quaternion Body Index Array
|
C
|
TRIG
|
Trigger
|
L0
|
TRMA
|
Texture Map Array
|
C
|
TRSC
|
Screen (Aiming) Collection
|
C
|
TRTA
|
Totoro Quaternion Body Translation Array
|
C
|
TSFF
|
Font Family
|
M (0B)
|
TSFL
|
Font Language
|
L0
|
TSFT
|
Font
|
L0
|
TSGA
|
Glyph Array
|
L0
|
TStr
|
String
|
L0
|
TURR
|
Turret
|
L0
|
TXAN
|
Texture Map Animation
|
-
|
TXCA
|
Texture Coordinate Array
|
-
|
TXMA
|
Texture Map Array
|
L
|
TXMB
|
Texture Map Big
|
-
|
TXMP
|
Texture Map
|
-
|
TXPC
|
Texture Procedure Data
|
|
TxtC
|
Text Console
|
M
|
UUEA
|
Error Binding Array
|
|
UVDL
|
UV Data List
|
|
VCRA
|
3D Vector Array
|
-
|
WMCL
|
WM Cursor List
|
L0
|
WMDD
|
WM Dialog Data
|
L0
|
WMM_
|
WM Menu
|
L0
|
WMMB
|
WM Menu Bar
|
L0
|
WPge
|
Weapon Page
|
L0
|
|
Templates