Add header generation from xml.
parent
b36e5ac248
commit
0b5a470a38
@ -0,0 +1,905 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use XML::LibXML;
|
||||
|
||||
my $input_dir = $ARGV[0] || '.';
|
||||
my $output_dir = $ARGV[1] || 'codegen';
|
||||
my $main_namespace = $ARGV[2] || 'df';
|
||||
my $export_prefix = 'DFHACK_EXPORT ';
|
||||
|
||||
my %types;
|
||||
my %type_files;
|
||||
|
||||
# Misc XML analysis
|
||||
|
||||
our $typename;
|
||||
our $filename;
|
||||
|
||||
sub parse_address($;$) {
|
||||
my ($str,$in_bits) = @_;
|
||||
return undef unless defined $str;
|
||||
|
||||
# Parse the format used by offset attributes in xml
|
||||
$str =~ /^0x([0-9a-f]+)(?:\.([0-7]))?$/
|
||||
or die "Invalid address syntax: $str\n";
|
||||
my ($full, $bv) = ($1, $2);
|
||||
die "Bits not allowed: $str\n" unless $in_bits;
|
||||
return $in_bits ? (hex($full)*8 + ($bv||0)) : hex($full);
|
||||
}
|
||||
|
||||
sub check_bad_attrs($;$$) {
|
||||
my ($tag, $allow_size, $allow_align) = @_;
|
||||
|
||||
die "Cannot use size, alignment or offset for ".$tag->nodeName."\n"
|
||||
if ((!$allow_size && defined $tag->getAttribute('size')) ||
|
||||
defined $tag->getAttribute('offset') ||
|
||||
(!$allow_align && defined $tag->getAttribute('alignment')));
|
||||
}
|
||||
|
||||
sub check_name($) {
|
||||
my ($name) = @_;
|
||||
$name =~ /^[_a-zA-Z][_a-zA-Z0-9]*$/
|
||||
or die "Invalid identifier: $name\n";
|
||||
return $name;
|
||||
}
|
||||
|
||||
sub is_attr_true($$) {
|
||||
my ($tag, $name) = @_;
|
||||
return ($tag->getAttribute($name)||'') eq 'true';
|
||||
}
|
||||
|
||||
sub type_header_def($) {
|
||||
my ($name) = @_;
|
||||
return uc($main_namespace).'_'.uc($name).'_H';
|
||||
}
|
||||
|
||||
# Text generation with indentation
|
||||
|
||||
our @lines;
|
||||
our $indentation = 0;
|
||||
|
||||
sub with_emit(&;$) {
|
||||
# Executes the code block, and returns emitted lines
|
||||
my ($blk, $start_indent) = @_;
|
||||
local @lines;
|
||||
local $indentation = ($start_indent||0);
|
||||
$blk->();
|
||||
return @lines;
|
||||
}
|
||||
|
||||
sub emit(@) {
|
||||
# Emit an indented line to be returned from with_emit
|
||||
my $line = join('',map { defined($_) ? $_ : '' } @_);
|
||||
$line = (' 'x$indentation).$line unless length($line) == 0;
|
||||
push @lines, $line;
|
||||
}
|
||||
|
||||
sub indent(&) {
|
||||
# Indent lines emitted from the block by one step
|
||||
my ($blk) = @_;
|
||||
local $indentation = $indentation+2;
|
||||
$blk->();
|
||||
}
|
||||
|
||||
sub outdent(&) {
|
||||
# Unindent lines emitted from the block by one step
|
||||
my ($blk) = @_;
|
||||
local $indentation = ($indentation >= 2 ? $indentation-2 : 0);
|
||||
$blk->();
|
||||
}
|
||||
|
||||
sub emit_block(&;$$) {
|
||||
# Emit a full {...} block with indentation
|
||||
my ($blk, $prefix, $suffix) = @_;
|
||||
$prefix ||= '';
|
||||
$suffix ||= '';
|
||||
emit $prefix,'{';
|
||||
&indent($blk);
|
||||
emit '}',$suffix;
|
||||
}
|
||||
|
||||
# Static file output
|
||||
|
||||
my @static_lines;
|
||||
my %static_includes;
|
||||
|
||||
sub with_emit_static(&) {
|
||||
my ($blk) = @_;
|
||||
$static_includes{$typename}++;
|
||||
push @static_lines, &with_emit($blk,2);
|
||||
}
|
||||
|
||||
# Anonymous variable names
|
||||
|
||||
our $anon_id = 0;
|
||||
our $anon_prefix;
|
||||
|
||||
sub ensure_name($) {
|
||||
# If the name is empty, assign an auto-generated one
|
||||
my ($name) = @_;
|
||||
unless ($name) {
|
||||
$name = $anon_prefix.(($anon_id == 0) ? '' : '_'.$anon_id);
|
||||
$anon_id++;
|
||||
}
|
||||
return check_name($name);
|
||||
}
|
||||
|
||||
sub with_anon(&;$) {
|
||||
# Establish a new anonymous namespace
|
||||
my ($blk,$stem) = @_;
|
||||
local $anon_id = $stem ? 0 : 1;
|
||||
local $anon_prefix = ($stem||'anon');
|
||||
$blk->();
|
||||
}
|
||||
|
||||
# Primitive types
|
||||
|
||||
my @primitive_type_list =
|
||||
qw(int8_t uint8_t int16_t uint16_t
|
||||
int32_t uint32_t int64_t uint64_t
|
||||
s-float
|
||||
bool ptr-string stl-string flag-bit
|
||||
pointer);
|
||||
|
||||
my %primitive_aliases = (
|
||||
'stl-string' => 'std::string',
|
||||
'ptr-string' => 'char*',
|
||||
'flag-bit' => 'void',
|
||||
'pointer' => 'void*',
|
||||
's-float' => 'float',
|
||||
);
|
||||
|
||||
my %primitive_types;
|
||||
$primitive_types{$_}++ for @primitive_type_list;
|
||||
|
||||
sub primitive_type_name($) {
|
||||
my ($tag_name) = @_;
|
||||
$primitive_types{$tag_name}
|
||||
or die "Not primitive: $tag_name\n";
|
||||
return $primitive_aliases{$tag_name} || $tag_name;
|
||||
}
|
||||
|
||||
# Type references
|
||||
|
||||
our %weak_refs;
|
||||
our %strong_refs;
|
||||
|
||||
sub register_ref($;$) {
|
||||
# Register a reference to another type.
|
||||
# Strong ones require the type to be included.
|
||||
my ($ref, $is_strong) = @_;
|
||||
|
||||
if ($ref) {
|
||||
my $type = $types{$ref}
|
||||
or die "Unknown type $ref referenced.\n";
|
||||
|
||||
if ($is_strong) {
|
||||
$strong_refs{$ref}++;
|
||||
} else {
|
||||
$weak_refs{$ref}++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Determines if referenced other types should be included or forward-declared
|
||||
our $is_strong_ref = 1;
|
||||
|
||||
sub with_struct_block(&$;$%) {
|
||||
my ($blk, $tag, $name, %flags) = @_;
|
||||
|
||||
my $kwd = (is_attr_true($tag,'is-union') ? "union" : "struct");
|
||||
my $exp = $flags{-export} ? $export_prefix : '';
|
||||
my $prefix = $kwd.' '.$exp.($name ? $name.' ' : '');
|
||||
|
||||
emit_block {
|
||||
local $_;
|
||||
local $is_strong_ref = 1; # reset the state
|
||||
if ($flags{-no_anon}) {
|
||||
$blk->();
|
||||
} else {
|
||||
&with_anon($blk);
|
||||
}
|
||||
} $prefix, ";";
|
||||
}
|
||||
|
||||
sub decode_type_name_ref($;%) {
|
||||
# Interpret the type-name field of a tag
|
||||
my ($tag,%flags) = @_;
|
||||
my $force_type = $flags{-force_type};
|
||||
my $force_strong = $flags{-force_strong};
|
||||
my $tname = $tag->getAttribute($flags{-attr_name} || 'type-name')
|
||||
or return undef;
|
||||
|
||||
if ($primitive_types{$tname}) {
|
||||
die "Cannot use type $tname as type-name of ".$tag->nodeName."\n"
|
||||
if ($force_type && $force_type ne 'primitive');
|
||||
return primitive_type_name($tname);
|
||||
} else {
|
||||
register_ref $tname, ($force_strong||$is_strong_ref);
|
||||
die "Cannot use type $tname as type-name of ".$tag->nodeName."\n"
|
||||
if ($force_type && $force_type ne $types{$tname}->nodeName);
|
||||
return $main_namespace.'::'.$tname;
|
||||
}
|
||||
}
|
||||
|
||||
# CONDITIONALS
|
||||
|
||||
sub is_conditional($) {
|
||||
my ($tag) = @_;
|
||||
return $tag->nodeName =~ /^(cond-if|cond-elseif)$/;
|
||||
}
|
||||
|
||||
sub translate_if_cond($) {
|
||||
my ($tag) = @_;
|
||||
|
||||
my @rules;
|
||||
if (my $defvar = $tag->getAttribute('defined')) {
|
||||
push @rules, "defined($defvar)";
|
||||
}
|
||||
if (my $cmpvar = $tag->getAttribute('var')) {
|
||||
if (my $cmpval = $tag->getAttribute('lt')) {
|
||||
push @rules, "($cmpvar < $cmpval)";
|
||||
}
|
||||
if (my $cmpval = $tag->getAttribute('le')) {
|
||||
push @rules, "($cmpvar <= $cmpval)";
|
||||
}
|
||||
if (my $cmpval = $tag->getAttribute('eq')) {
|
||||
push @rules, "($cmpvar == $cmpval)";
|
||||
}
|
||||
if (my $cmpval = $tag->getAttribute('ge')) {
|
||||
push @rules, "($cmpvar >= $cmpval)";
|
||||
}
|
||||
if (my $cmpval = $tag->getAttribute('gt')) {
|
||||
push @rules, "($cmpvar > $cmpval)";
|
||||
}
|
||||
if (my $cmpval = $tag->getAttribute('ne')) {
|
||||
push @rules, "($cmpvar != $cmpval)";
|
||||
}
|
||||
}
|
||||
return '('.(join(' && ',@rules) || '1').')';
|
||||
}
|
||||
|
||||
our $in_cond = 0;
|
||||
|
||||
sub render_cond_if($$$;@) {
|
||||
my ($tag, $in_elseif, $render_cb, @tail) = @_;
|
||||
|
||||
local $in_cond = 1;
|
||||
|
||||
{
|
||||
local $indentation = 0;
|
||||
my $op = ($in_elseif && $in_elseif >= 2) ? '#elif' : '#if';
|
||||
emit $op, ' ', translate_if_cond($tag);
|
||||
}
|
||||
|
||||
for my $child ($tag->findnodes('child::*')) {
|
||||
&render_cond($child, $render_cb, @tail);
|
||||
}
|
||||
|
||||
unless ($in_elseif) {
|
||||
local $indentation = 0;
|
||||
emit "#endif";
|
||||
}
|
||||
}
|
||||
|
||||
sub render_cond($$;@) {
|
||||
my ($tag, $render_cb, @tail) = @_;
|
||||
|
||||
my $tag_name = $tag->nodeName;
|
||||
if ($tag_name eq 'cond-if') {
|
||||
render_cond_if($tag, 0, $render_cb, @tail);
|
||||
} elsif ($tag_name eq 'cond-elseif') {
|
||||
my $idx = 1;
|
||||
for my $child ($tag->findnodes('child::*')) {
|
||||
($child->nodeName eq 'cond-if')
|
||||
or die "Only cond-if tags may be inside a cond-switch: ".$child->nodeName."\n";
|
||||
render_cond_if($child, $idx++, $render_cb, @tail);
|
||||
}
|
||||
{
|
||||
local $indentation = 0;
|
||||
emit "#endif";
|
||||
}
|
||||
} else {
|
||||
local $_ = $tag;
|
||||
$render_cb->($tag, @tail);
|
||||
}
|
||||
}
|
||||
|
||||
# ENUM
|
||||
|
||||
sub render_enum_core($$) {
|
||||
my ($name,$tag) = @_;
|
||||
|
||||
my $base = 0;
|
||||
|
||||
emit_block {
|
||||
my @items = $tag->findnodes('child::*');
|
||||
my $idx = 0;
|
||||
|
||||
for my $item (@items) {
|
||||
render_cond $item, sub {
|
||||
my $tag = $_->nodeName;
|
||||
return if $tag eq 'enum-attr';
|
||||
($tag eq 'enum-item')
|
||||
or die "Invalid enum member: ".$item->nodeName."\n";
|
||||
|
||||
my $name = ensure_name $_->getAttribute('name');
|
||||
my $value = $_->getAttribute('value');
|
||||
|
||||
$base = ($idx == 0 && !$in_cond) ? $value : undef if defined $value;
|
||||
$idx++;
|
||||
|
||||
emit $name, (defined($value) ? ' = '.$value : ''), ',';
|
||||
};
|
||||
}
|
||||
|
||||
emit "_last_item_of_$name";
|
||||
} "enum $name ", ";";
|
||||
|
||||
return $base;
|
||||
}
|
||||
|
||||
sub render_enum_tables($$$) {
|
||||
my ($name,$tag,$base) = @_;
|
||||
|
||||
# Enumerate enum attributes
|
||||
|
||||
my %aidx = ('key' => 0);
|
||||
my @anames = ('key');
|
||||
my @avals = ('NULL');
|
||||
my @atypes = ('const char*');
|
||||
my @atnames = (undef);
|
||||
|
||||
for my $attr ($tag->findnodes('child::enum-attr')) {
|
||||
my $name = $attr->getAttribute('name') or die "Unnamed enum-attr.\n";
|
||||
my $type = $attr->getAttribute('type-name');
|
||||
my $def = $attr->getAttribute('default-value');
|
||||
|
||||
die "Duplicate attribute $name.\n" if exists $aidx{$name};
|
||||
|
||||
check_name $name;
|
||||
$aidx{$name} = scalar @anames;
|
||||
push @anames, $name;
|
||||
push @atnames, $type;
|
||||
|
||||
if ($type) {
|
||||
push @atypes, $type;
|
||||
push @avals, (defined $def ? $def : "($type)0");
|
||||
} else {
|
||||
push @atypes, 'const char*';
|
||||
push @avals, (defined $def ? "\"$def\"" : 'NULL');
|
||||
}
|
||||
}
|
||||
|
||||
# Emit accessor function prototypes
|
||||
|
||||
emit "const $name _first_item_of_$name = ($name)$base;";
|
||||
|
||||
emit_block {
|
||||
emit "return (value >= _first_item_of_$name && value < _last_item_of_$name);";
|
||||
} "inline bool is_valid($name value) ";
|
||||
|
||||
for (my $i = 0; $i < @anames; $i++) {
|
||||
emit "${export_prefix}$atypes[$i] get_$anames[$i]($name value);";
|
||||
}
|
||||
|
||||
# Emit implementation
|
||||
|
||||
with_emit_static {
|
||||
emit_block {
|
||||
emit_block {
|
||||
# Emit the entry type
|
||||
emit_block {
|
||||
for (my $i = 0; $i < @anames; $i++) {
|
||||
emit "$atypes[$i] $anames[$i];";
|
||||
}
|
||||
} "struct _info_entry ", ";";
|
||||
|
||||
# Emit the info table
|
||||
emit_block {
|
||||
for my $item ($tag->findnodes('child::*')) {
|
||||
render_cond $item, sub {
|
||||
my $tag = $_->nodeName;
|
||||
return if $tag eq 'enum-attr';
|
||||
|
||||
# Assemble item-specific attr values
|
||||
my @evals = @avals;
|
||||
my $name = $_->getAttribute('name');
|
||||
$evals[0] = "\"$name\"" if $name;
|
||||
|
||||
for my $attr ($_->findnodes('child::item-attr')) {
|
||||
my $name = $attr->getAttribute('name') or die "Unnamed item-attr.\n";
|
||||
my $value = $attr->getAttribute('value') or die "No-value item-attr.\n";
|
||||
my $idx = $aidx{$name} or die "Unknown item-attr: $name\n";
|
||||
|
||||
if ($atnames[$idx]) {
|
||||
$evals[$idx] = $value;
|
||||
} else {
|
||||
$evals[$idx] = "\"$value\"";
|
||||
}
|
||||
}
|
||||
|
||||
emit "{ ",join(', ',@evals)," },";
|
||||
};
|
||||
}
|
||||
|
||||
emit "{ ",join(', ',@avals)," }";
|
||||
} "static const _info_entry _info[] = ", ";";
|
||||
|
||||
for (my $i = 0; $i < @anames; $i++) {
|
||||
emit_block {
|
||||
emit "return is_valid(value) ? _info[value - $base].$anames[$i] : $avals[$i];";
|
||||
} "$atypes[$i] get_$anames[$i]($name value) ";
|
||||
}
|
||||
} "namespace $name ";
|
||||
} "namespace enums ";
|
||||
};
|
||||
}
|
||||
|
||||
sub render_enum_type {
|
||||
my ($tag) = @_;
|
||||
|
||||
emit_block {
|
||||
emit_block {
|
||||
my $base = render_enum_core($typename,$tag);
|
||||
|
||||
if (defined $base) {
|
||||
render_enum_tables($typename,$tag,$base);
|
||||
} else {
|
||||
print STDERR "Warning: complex enum: $typename\n";
|
||||
}
|
||||
} "namespace $typename ";
|
||||
} "namespace enums ";
|
||||
|
||||
emit "using enums::",$typename,"::",$typename,";";
|
||||
}
|
||||
|
||||
# BITFIELD
|
||||
|
||||
sub get_primitive_base($;$) {
|
||||
my ($tag, $default) = @_;
|
||||
|
||||
my $base = $tag->getAttribute('base-type') || $default || 'uint32_t';
|
||||
$primitive_types{$base} or die "Must be primitive: $base\n";
|
||||
|
||||
return $base;
|
||||
}
|
||||
|
||||
sub render_bitfield_core {
|
||||
my ($name, $tag) = @_;
|
||||
|
||||
emit_block {
|
||||
emit get_primitive_base($tag), ' whole;';
|
||||
|
||||
emit_block {
|
||||
for my $item ($tag->findnodes('child::*')) {
|
||||
render_cond $item, sub {
|
||||
my ($item) = @_;
|
||||
($item->nodeName eq 'flag-bit')
|
||||
or die "Invalid bitfield member:".$item->nodeName."\n";
|
||||
|
||||
check_bad_attrs($item);
|
||||
my $name = ensure_name $item->getAttribute('name');
|
||||
my $size = $item->getAttribute('count') || 1;
|
||||
emit "unsigned ", $name, " : ", $size, ";";
|
||||
};
|
||||
}
|
||||
} "struct ", " bits;";
|
||||
} "union $name ", ";";
|
||||
}
|
||||
|
||||
sub render_bitfield_type {
|
||||
my ($tag) = @_;
|
||||
render_bitfield_core($typename,$tag);
|
||||
}
|
||||
|
||||
# STRUCT
|
||||
|
||||
my %struct_field_handlers;
|
||||
|
||||
sub get_struct_fields($) {
|
||||
# Retrieve subtags that are actual struct fields
|
||||
my ($struct_tag) = @_;
|
||||
local $_;
|
||||
return grep {
|
||||
my $tag = $_->nodeName;
|
||||
die "Unknown field tag: $tag\n"
|
||||
unless exists $struct_field_handlers{$tag};
|
||||
$struct_field_handlers{$tag};
|
||||
} $struct_tag->findnodes('child::*');
|
||||
}
|
||||
|
||||
sub get_struct_field_type($) {
|
||||
# Dispatch on the tag name, and retrieve the type prefix & suffix
|
||||
my ($tag) = @_;
|
||||
my $handler = $struct_field_handlers{$tag->nodeName}
|
||||
or die "Unexpected tag: ".$tag->nodeName;
|
||||
return $handler->($tag);
|
||||
}
|
||||
|
||||
sub do_render_struct_field($) {
|
||||
my ($tag) = @_;
|
||||
my $tag_name = $tag->nodeName;
|
||||
my $field_name = $tag->getAttribute('name');
|
||||
|
||||
# Special case: anonymous compounds.
|
||||
if ($tag_name eq 'compound' && !defined $field_name &&
|
||||
!defined $tag->getAttribute('type-name'))
|
||||
{
|
||||
check_bad_attrs($tag);
|
||||
with_struct_block {
|
||||
render_struct_field($_) for get_struct_fields($tag);
|
||||
} $tag, undef, -no_anon => 1;
|
||||
return;
|
||||
}
|
||||
|
||||
# Otherwise, create the name if necessary, and render
|
||||
my $name = ensure_name $field_name;
|
||||
with_anon {
|
||||
my ($prefix, $postfix) = get_struct_field_type($tag);
|
||||
emit $prefix, ' ', $name, $postfix, ';';
|
||||
} "T_$name";
|
||||
}
|
||||
|
||||
sub render_struct_field($) {
|
||||
my ($tag) = @_;
|
||||
render_cond $tag, \&do_render_struct_field;
|
||||
}
|
||||
|
||||
sub emit_typedef($$) {
|
||||
# Convert a prefix/postfix pair into a single name
|
||||
my ($pre, $post) = @_;
|
||||
my $name = ensure_name undef;
|
||||
emit 'typedef ', $pre, ' ', $name, $post, ';';
|
||||
return $name;
|
||||
}
|
||||
|
||||
sub get_container_item_type($$;$) {
|
||||
# Interpret the type-name and nested fields for a generic container type
|
||||
my ($tag,$strong_ref,$allow_void) = @_;
|
||||
|
||||
check_bad_attrs($tag);
|
||||
|
||||
my $prefix;
|
||||
my $postfix = '';
|
||||
local $is_strong_ref = $strong_ref;
|
||||
|
||||
unless ($prefix = decode_type_name_ref($tag)) {
|
||||
my @fields = get_struct_fields($tag);
|
||||
|
||||
if (scalar(@fields) == 1 && !is_conditional($fields[0])) {
|
||||
($prefix, $postfix) = get_struct_field_type($fields[0]);
|
||||
} elsif (scalar(@fields) == 0) {
|
||||
$allow_void or die "Empty container: ".$tag->nodeName."\n";
|
||||
$prefix = $allow_void;
|
||||
} else {
|
||||
$prefix = ensure_name undef;
|
||||
with_struct_block {
|
||||
render_struct_field($_) for @fields;
|
||||
} $tag, $prefix;
|
||||
}
|
||||
}
|
||||
|
||||
return ($prefix,$postfix) if wantarray;
|
||||
return emit_typedef($prefix, $postfix) if $postfix;
|
||||
return $prefix;
|
||||
}
|
||||
|
||||
sub get_primitive_field_type {
|
||||
# Primitive type handler
|
||||
my ($tag,$fname) = @_;
|
||||
check_bad_attrs($tag);
|
||||
my $name = $tag->nodeName;
|
||||
return (primitive_type_name($name), "");
|
||||
}
|
||||
|
||||
sub get_static_string_type {
|
||||
# Static string handler
|
||||
my ($tag, $fname) = @_;
|
||||
check_bad_attrs($tag, 1);
|
||||
my $count = $tag->getAttribute('size') || 0;
|
||||
return ('char', "[$count]");
|
||||
}
|
||||
|
||||
sub get_padding_type {
|
||||
# Padding handler. Supports limited alignment.
|
||||
my ($tag, $fname) = @_;
|
||||
|
||||
check_bad_attrs($tag, 1, 1);
|
||||
my $count = $tag->getAttribute('size') || 0;
|
||||
my $align = $tag->getAttribute('alignment') || 1;
|
||||
|
||||
if ($align == 1) {
|
||||
return ('char', "[$count]");
|
||||
} elsif ($align == 2) {
|
||||
($count % 2 == 0) or die "Size not aligned in padding: $count at $align\n";
|
||||
return ('short', "[".($count/2)."]");
|
||||
} elsif ($align == 4) {
|
||||
($count % 4 == 0) or die "Size not aligned in padding: $count at $align\n";
|
||||
return ('int', "[".($count/4)."]");
|
||||
} else {
|
||||
die "Bad padding alignment $align in $typename in $filename\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub get_static_array_type {
|
||||
# static-array handler
|
||||
my ($tag, $fname) = @_;
|
||||
my ($pre, $post) = get_container_item_type($tag, 1);
|
||||
my $count = $tag->getAttribute('count')
|
||||
or die "Count is mandatory for static-array in $typename in $filename\n";
|
||||
return ($pre, "[$count]".$post);
|
||||
}
|
||||
|
||||
sub get_pointer_type($) {
|
||||
# pointer handler
|
||||
my ($tag) = @_;
|
||||
my $item = get_container_item_type($tag, 0, 'void');
|
||||
return ($item.'*', '');
|
||||
}
|
||||
|
||||
sub get_compound_type($) {
|
||||
# compound (nested struct) handler
|
||||
my ($tag) = @_;
|
||||
check_bad_attrs($tag);
|
||||
|
||||
my $tname = decode_type_name_ref($tag);
|
||||
unless ($tname) {
|
||||
$tname = ensure_name undef;
|
||||
with_struct_block {
|
||||
render_struct_field($_) for get_struct_fields($tag);
|
||||
} $tag, $tname;
|
||||
}
|
||||
return ($tname,'');
|
||||
}
|
||||
|
||||
sub get_bitfield_type($) {
|
||||
# nested bitfield handler
|
||||
my ($tag) = @_;
|
||||
check_bad_attrs($tag);
|
||||
|
||||
my $tname = decode_type_name_ref($tag, -force_type => 'bitfield-type');
|
||||
unless ($tname) {
|
||||
$tname = ensure_name undef;
|
||||
with_anon {
|
||||
render_bitfield_core($tname, $tag);
|
||||
};
|
||||
}
|
||||
return ($tname,'');
|
||||
}
|
||||
|
||||
sub get_enum_type($) {
|
||||
# nested enum handler
|
||||
my ($tag) = @_;
|
||||
check_bad_attrs($tag);
|
||||
|
||||
my $tname = decode_type_name_ref($tag, -force_type => 'enum-type', -force_strong => 1);
|
||||
my $base = get_primitive_base($tag, 'int32_t');
|
||||
unless ($tname) {
|
||||
$tname = ensure_name undef;
|
||||
with_anon {
|
||||
render_enum_core($tname,$tag);
|
||||
};
|
||||
}
|
||||
return ("enum_field<$tname,$base>", '');
|
||||
}
|
||||
|
||||
sub get_stl_vector_type($) {
|
||||
# STL vector
|
||||
my ($tag) = @_;
|
||||
my $item = get_container_item_type($tag,1,'void*');
|
||||
$item = 'char' if $item eq 'bool';
|
||||
return ("std::vector<$item>", '');
|
||||
}
|
||||
|
||||
sub get_stl_bit_vector_type($) {
|
||||
# STL bit vector
|
||||
my ($tag) = @_;
|
||||
check_bad_attrs($tag);
|
||||
return ("std::vector<bool>", '');
|
||||
}
|
||||
|
||||
sub get_df_flagarray_type($) {
|
||||
# DF flag array
|
||||
my ($tag) = @_;
|
||||
check_bad_attrs($tag);
|
||||
my $type = decode_type_name_ref($tag, -attr_name => 'index-enum', -force_type => 'enum-type', -force_strong => 1) || 'int';
|
||||
return ("BitArray<$type>", '');
|
||||
}
|
||||
|
||||
# Struct dispatch table and core
|
||||
|
||||
%struct_field_handlers = (
|
||||
'comment' => undef, # skip
|
||||
'code-helper' => undef, # skip
|
||||
'cond-if' => sub { die "cond handling error"; },
|
||||
'cond-elseif' => sub { die "cond handling error"; },
|
||||
'static-string' => \&get_static_string_type,
|
||||
'padding' => \&get_padding_type,
|
||||
'static-array' => \&get_static_array_type,
|
||||
'pointer' => \&get_pointer_type,
|
||||
'compound' => \&get_compound_type,
|
||||
'bitfield' => \&get_bitfield_type,
|
||||
'enum' => \&get_enum_type,
|
||||
'stl-vector' => \&get_stl_vector_type,
|
||||
'stl-bit-vector' => \&get_stl_bit_vector_type,
|
||||
'df-flagarray' => \&get_df_flagarray_type,
|
||||
);
|
||||
$struct_field_handlers{$_} ||= \&get_primitive_field_type for @primitive_type_list;
|
||||
|
||||
sub render_struct_type {
|
||||
my ($tag) = @_;
|
||||
|
||||
my $tag_name = $tag->nodeName;
|
||||
my $is_class = ($tag_name eq 'class-type');
|
||||
my $has_methods = $is_class || is_attr_true($tag, 'has-methods');
|
||||
my $inherits = $tag->getAttribute('inherits-from');
|
||||
my $original_name = $tag->getAttribute('original-name');
|
||||
my $ispec = '';
|
||||
|
||||
if ($inherits) {
|
||||
register_ref $inherits, 1;
|
||||
$ispec = ' : '.$inherits;
|
||||
} elsif ($is_class) {
|
||||
$ispec = ' : virtual_class';
|
||||
}
|
||||
|
||||
with_struct_block {
|
||||
render_struct_field($_) for get_struct_fields($tag);
|
||||
|
||||
if ($has_methods) {
|
||||
if ($is_class) {
|
||||
emit "static class_virtual_identity<$typename> _identity;";
|
||||
with_emit_static {
|
||||
emit "class_virtual_identity<$typename> ${typename}::_identity(",
|
||||
"\"$typename\",",
|
||||
($original_name ? "\"$original_name\"" : 'NULL'), ',',
|
||||
($inherits ? "&${inherits}::_identity" : 'NULL'),
|
||||
");";
|
||||
}
|
||||
}
|
||||
|
||||
outdent {
|
||||
emit "protected:";
|
||||
};
|
||||
|
||||
if ($is_class) {
|
||||
emit "virtual ~",$typename,"() {}";
|
||||
} else {
|
||||
emit "~",$typename,"() {}";
|
||||
}
|
||||
}
|
||||
} $tag, "$typename$ispec", -export => 1;
|
||||
}
|
||||
|
||||
# MAIN BODY
|
||||
|
||||
# Collect all type definitions from XML files
|
||||
|
||||
sub add_type_to_hash($) {
|
||||
my ($type) = @_;
|
||||
|
||||
my $name = $type->getAttribute('type-name')
|
||||
or die "Type without a name in $filename\n";
|
||||
|
||||
die "Duplicate definition of $name in $filename\n" if $types{$name};
|
||||
|
||||
local $typename = $name;
|
||||
check_bad_attrs $type;
|
||||
$types{$name} = $type;
|
||||
$type_files{$name} = $filename;
|
||||
}
|
||||
|
||||
for my $fn (glob "$input_dir/*.xml") {
|
||||
local $filename = $fn;
|
||||
my $parser = XML::LibXML->new();
|
||||
my $doc = $parser->parse_file($filename);
|
||||
|
||||
add_type_to_hash $_ foreach $doc->findnodes('/data-definition/enum-type');
|
||||
add_type_to_hash $_ foreach $doc->findnodes('/data-definition/bitfield-type');
|
||||
add_type_to_hash $_ foreach $doc->findnodes('/data-definition/struct-type');
|
||||
add_type_to_hash $_ foreach $doc->findnodes('/data-definition/class-type');
|
||||
}
|
||||
|
||||
# Generate text representations
|
||||
|
||||
my %type_handlers = (
|
||||
'enum-type' => \&render_enum_type,
|
||||
'bitfield-type' => \&render_bitfield_type,
|
||||
'class-type' => \&render_struct_type,
|
||||
'struct-type' => \&render_struct_type,
|
||||
);
|
||||
|
||||
my %type_data;
|
||||
|
||||
for my $name (sort { $a cmp $b } keys %types) {
|
||||
local $typename = $name;
|
||||
local $filename = $type_files{$typename};
|
||||
local %weak_refs;
|
||||
local %strong_refs;
|
||||
|
||||
eval {
|
||||
my $type = $types{$typename};
|
||||
|
||||
# Emit the actual type definition
|
||||
my @code = with_emit {
|
||||
with_anon {
|
||||
$type_handlers{$type->nodeName}->($type);
|
||||
};
|
||||
} 2;
|
||||
|
||||
delete $weak_refs{$name};
|
||||
delete $strong_refs{$name};
|
||||
|
||||
# Add wrapping
|
||||
my @all = with_emit {
|
||||
my $def = type_header_def($typename);
|
||||
emit "#ifndef $def";
|
||||
emit "#define $def";
|
||||
|
||||
for my $strong (sort { $a cmp $b } keys %strong_refs) {
|
||||
my $sdef = type_header_def($strong);
|
||||
emit "#ifndef $sdef";
|
||||
emit "#include \"$strong.h\"";
|
||||
emit "#endif";
|
||||
}
|
||||
|
||||
emit_block {
|
||||
for my $weak (sort { $a cmp $b } keys %weak_refs) {
|
||||
next if $strong_refs{$weak};
|
||||
my $ttype = $types{$weak};
|
||||
my $tstr = 'struct';
|
||||
$tstr = 'enum' if $ttype->nodeName eq 'enum-type';
|
||||
$tstr = 'union' if $ttype->nodeName eq 'bitfield-type';
|
||||
$tstr = 'union' if ($ttype->nodeName eq 'struct-type' && is_attr_true($ttype,'is-union'));
|
||||
emit $tstr, ' ', $weak, ';';
|
||||
}
|
||||
|
||||
push @lines, @code;
|
||||
} "namespace $main_namespace ";
|
||||
|
||||
emit "#endif";
|
||||
};
|
||||
|
||||
$type_data{$typename} = \@all;
|
||||
};
|
||||
if ($@) {
|
||||
print 'Error: '.$@."Type $typename in $filename ignored\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Write output files
|
||||
|
||||
mkdir $output_dir;
|
||||
|
||||
{
|
||||
# Delete the old files
|
||||
for my $name (glob "$output_dir/*.h") {
|
||||
unlink $name;
|
||||
}
|
||||
|
||||
# Write out the headers
|
||||
local $, = "\n";
|
||||
local $\ = "\n";
|
||||
|
||||
for my $name (keys %type_data) {
|
||||
open FH, ">$output_dir/$name.h";
|
||||
print FH "/* THIS FILE WAS GENERATED. DO NOT EDIT. */";
|
||||
print FH @{$type_data{$name}};
|
||||
close FH;
|
||||
}
|
||||
|
||||
# Write out the static file
|
||||
open FH, ">$output_dir/static.inc";
|
||||
print FH "/* THIS FILE WAS GENERATED. DO NOT EDIT. */";
|
||||
for my $name (sort { $a cmp $b } keys %static_includes) {
|
||||
print FH "#include \"$name.h\"";
|
||||
}
|
||||
print FH "namespace $main_namespace {";
|
||||
print FH @static_lines;
|
||||
print FH '}';
|
||||
close FH;
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
<data-definition>
|
||||
<class-type type-name='building_def' original-name='building_defst' key-field='code'>
|
||||
<stl-string name="code"/>
|
||||
<int32_t name="index"/>
|
||||
<stl-string name="name"/>
|
||||
|
||||
<int32_t name='unk_40'/>
|
||||
<int32_t name='unk_44'/>
|
||||
<static-array name='name_color' count='3' type-name='int16_t'/>
|
||||
|
||||
<static-array name='tile' count='4'>
|
||||
<static-array count='31'>
|
||||
<static-array count='31' type-name='uint8_t'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<static-array name='tile_color' count='3'>
|
||||
<static-array count='4'>
|
||||
<static-array count='31'>
|
||||
<static-array count='31' type-name='uint8_t'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<static-array name='tile_block' count='31'>
|
||||
<static-array count='31' type-name='uint8_t'/>
|
||||
</static-array>
|
||||
|
||||
<int32_t name='build_key'/>
|
||||
<bool name='needs_magma'/>
|
||||
|
||||
<stl-vector name="build_items">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name="dim_x"/>
|
||||
<int32_t name="dim_y"/>
|
||||
<int32_t name="workloc_x"/>
|
||||
<int32_t name="workloc_y"/>
|
||||
|
||||
<stl-vector name="build_labors">
|
||||
<enum base-type='int32_t' type-name='unit_labor'/>
|
||||
</stl-vector>
|
||||
<stl-string name="labor_description"/>
|
||||
|
||||
<int32_t name="build_stages"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_def_workshopst' inherits-from='building_def'/>
|
||||
<class-type type-name='building_def_furnacest' inherits-from='building_def'/>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,403 @@
|
||||
<data-definition>
|
||||
<bitfield-type type-name='building_flags'>
|
||||
<flag-bit name='exists' comment='actually built, not just ordered'/>
|
||||
<flag-bit/>
|
||||
<flag-bit name='room_collision' comment='major intersection with another room?'/>
|
||||
<flag-bit/>
|
||||
<flag-bit name='justice'/>
|
||||
</bitfield-type>
|
||||
|
||||
<class-type type-name='building' original-name='buildingst' key-field='id'>
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.buildings.all $id $)</code-helper>
|
||||
|
||||
<int32_t name='x1' comment='left'/>
|
||||
<int32_t name='y1'/>
|
||||
<int32_t name='x2' comment='work location'/>
|
||||
<int32_t name='x3' comment='right'/>
|
||||
<int32_t name='y3'/>
|
||||
<int32_t name='y2'/>
|
||||
<int32_t name='z'/>
|
||||
|
||||
<compound name='flags' type-name='building_flags'/>
|
||||
|
||||
<int16_t name='materialType' ref-target='material' aux-value='$$.materialIndex'/>
|
||||
<int32_t name='materialIndex'/>
|
||||
|
||||
<compound name='room'>
|
||||
<pointer name='extents' type-name='uint8_t'>
|
||||
<comment>0 - not room; 1 in stockpile; 2 wall; 3 inner; 4 distance boundary.</comment>
|
||||
</pointer>
|
||||
<int32_t name='x'/>
|
||||
<int32_t name='y'/>
|
||||
<int32_t name='width'/>
|
||||
<int32_t name='height'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='age'/>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int32_t name='id'/>
|
||||
|
||||
<stl-vector name='jobs'>
|
||||
<pointer type-name='job'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='meetings'>
|
||||
<pointer type-name='meeting_ref'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk6' type-name='pointer'/>
|
||||
|
||||
<bool name='is_room'/>
|
||||
|
||||
<stl-vector name='children' comment='other buildings within this room'>
|
||||
<pointer type-name='building'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='parents' comment='rooms this building belongs to'>
|
||||
<pointer type-name='building'/>
|
||||
</stl-vector>
|
||||
|
||||
<pointer type-name='unit' name='owner'/>
|
||||
|
||||
<stl-vector name='unk7' type-name='pointer'/>
|
||||
<stl-string name='name'/>
|
||||
|
||||
<stl-vector name='activities'>
|
||||
<pointer>
|
||||
<int32_t name='id' ref-target='activity_entry'/>
|
||||
<int32_t name='is_group'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</class-type>
|
||||
|
||||
-- stockpile --
|
||||
|
||||
<class-type type-name='building_stockpilest' inherits-from='building'>
|
||||
<compound type-name='stockpile_settings' name='settings'/>
|
||||
|
||||
<int16_t name='max_barrels'/>
|
||||
<int16_t name='max_bins'/>
|
||||
|
||||
<stl-vector name='container_type'>
|
||||
<enum base-type='int16_t' type-name='item_type'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='container_item_id'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='container_x' type-name='int16_t'/>
|
||||
<stl-vector name='container_y' type-name='int16_t'/>
|
||||
|
||||
<pointer name='give_to' type-name='building_stockpilest'/>
|
||||
<stl-vector name='take_from'>
|
||||
<pointer type-name='building_stockpilest'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='stockpile_number'/>
|
||||
</class-type>
|
||||
|
||||
-- zone --
|
||||
|
||||
<class-type type-name='building_civzonest' inherits-from='building'>
|
||||
|
||||
</class-type>
|
||||
|
||||
-- actual --
|
||||
|
||||
<class-type type-name='building_actual' inherits-from='building'
|
||||
original-name='building_actualst'>
|
||||
<int16_t name='construction_stage'
|
||||
comment='0 not started, then 1 or 3 max depending on type'/>
|
||||
|
||||
<stl-vector name='contained_items'>
|
||||
<pointer>
|
||||
<pointer name='item' type-name='item'/>
|
||||
<int16_t name='use_mode'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<pointer name='design' type-name='building_design'/>
|
||||
</class-type>
|
||||
|
||||
<struct-type type-name='building_design'>
|
||||
<int32_t name='architect' ref-target='historical_figure'/>
|
||||
<int32_t name='unk2' comment='-1'/>
|
||||
<int16_t name='unk3'/>
|
||||
<int32_t name='builder1' ref-target='historical_figure'/>
|
||||
<int32_t name='unk5' comment='-1'/>
|
||||
<int16_t name='unk6'/>
|
||||
<int16_t name='build_timer1' comment='+1 per 10 frames while building'/>
|
||||
<int32_t name='builder2' ref-target='historical_figure'/>
|
||||
<int16_t name='build_timer2'/>
|
||||
<int16_t name='unk8b'/>
|
||||
<int16_t name='unk9'/>
|
||||
<bitfield name='flags' base-type='uint32_t'>
|
||||
<flag-bit name='rough' comment='rough gabbro road'/>
|
||||
<flag-bit name='built'/>
|
||||
<flag-bit name='designed'/>
|
||||
</bitfield>
|
||||
<int32_t name='unk11'/>
|
||||
<int32_t name='unk12'/>
|
||||
<int32_t name='unk13'/>
|
||||
</struct-type>
|
||||
|
||||
-- workshops --
|
||||
|
||||
<enum-type type-name='furnace_type'>
|
||||
<enum-item name="WoodFurnace"/>
|
||||
<enum-item name="Smelter"/>
|
||||
<enum-item name="GlassFurnace"/>
|
||||
<enum-item name="Kiln"/>
|
||||
<enum-item name="MagmaSmelter"/>
|
||||
<enum-item name="MagmaGlassFurnace"/>
|
||||
<enum-item name="MagmaKiln"/>
|
||||
<enum-item name="Custom"/>
|
||||
</enum-type>
|
||||
|
||||
<class-type type-name='building_furnacest' inherits-from='building_actual'>
|
||||
<stl-vector name='melt_remainder' type-name='int32_t'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
|
||||
<int16_t name="unk_108"/>
|
||||
|
||||
<enum base-type='int16_t' name="type" type-name='furnace_type'/>
|
||||
|
||||
<stl-vector name="permitted_workers">
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
<int32_t name="min_level"/>
|
||||
<int32_t name="max_level"/>
|
||||
|
||||
<int32_t name="custom_type" refers-to='$global.world.raws.buildings.furnaces[$]'/>
|
||||
</class-type>
|
||||
|
||||
<enum-type type-name='workshop_type'>
|
||||
<enum-item name="Carpenters"/>
|
||||
<enum-item name="Farmers"/>
|
||||
<enum-item name="Masons"/>
|
||||
<enum-item name="Craftdwarfs"/>
|
||||
<enum-item name="Jewelers"/>
|
||||
<enum-item name="MetalsmithsForge"/>
|
||||
<enum-item name="MagmaForge"/>
|
||||
<enum-item name="Bowyers"/>
|
||||
<enum-item name="Mechanics"/>
|
||||
<enum-item name="Siege"/>
|
||||
<enum-item name="Butchers"/>
|
||||
<enum-item name="Leatherworks"/>
|
||||
<enum-item name="Tanners"/>
|
||||
<enum-item name="Clothiers"/>
|
||||
<enum-item name="Fishery"/>
|
||||
<enum-item name="Still"/>
|
||||
<enum-item name="Loom"/>
|
||||
<enum-item name="Quern"/>
|
||||
<enum-item name="Kennels"/>
|
||||
<enum-item name="Kitchen"/>
|
||||
<enum-item name="Ashery"/>
|
||||
<enum-item name="Dyers"/>
|
||||
<enum-item name="Millstone"/>
|
||||
<enum-item name="Custom"/>
|
||||
</enum-type>
|
||||
|
||||
<class-type type-name='building_workshopst' inherits-from='building_actual'>
|
||||
<enum base-type='int16_t' name="type" type-name='workshop_type'/>
|
||||
|
||||
<stl-vector name="permitted_workers">
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
<int32_t name="min_level"/>
|
||||
<int32_t name="max_level"/>
|
||||
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_118"/>
|
||||
|
||||
<int32_t name="custom_type" refers-to='$global.world.raws.buildings.workshops[$]'/>
|
||||
</class-type>
|
||||
|
||||
-- misc --
|
||||
|
||||
<class-type type-name='building_animaltrapst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_archerytargetst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_armorstandst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_bars_verticalst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_bars_floorst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_bedst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_boxst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_bridgest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_cabinetst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_cagest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_chainst' inherits-from='building_actual'>
|
||||
<pointer name='assigned' type-name='unit'/>
|
||||
<pointer name='chained' type-name='unit'/>
|
||||
<int16_t name='unk'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_chairst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_coffinst' inherits-from='building_actual'>
|
||||
<bitfield name='burial_mode' base-type='uint16_t'>
|
||||
<flag-bit name='allow_burial'/>
|
||||
<flag-bit name='no_citizens'/>
|
||||
<flag-bit name='no_pets'/>
|
||||
</bitfield>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_constructionst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_doorst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_farmplotst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_floodgatest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_grate_floorst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_grate_wallst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_hatchst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_hivest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_nestst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_nest_boxst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_roadst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_road_dirtst' inherits-from='building_roadst'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_road_pavedst' inherits-from='building_roadst'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_shopst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_siegeenginest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_slabst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_statuest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_supportst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_tablest' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_traction_benchst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_tradedepotst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_trapst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_wagonst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_weaponst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_weaponrackst' inherits-from='building_actual'>
|
||||
<int16_t name='unk_c0'/>
|
||||
|
||||
<stl-vector name='assignments'>
|
||||
<pointer>
|
||||
<int32_t name='squad_id' ref-target='squad'/>
|
||||
<compound name='mode' type-name='squad_use_flags'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='unk_d0'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_wellst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_windowst' inherits-from='building_actual'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_window_glassst' inherits-from='building_windowst'>
|
||||
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_window_gemst' inherits-from='building_windowst'>
|
||||
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,592 @@
|
||||
<data-definition>
|
||||
<enum-type type-name='creature_raw_flags'>
|
||||
<enum-item/>
|
||||
<enum-item name='EQUIPMENT_WAGON'/>
|
||||
<enum-item name='MUNDANE'/>
|
||||
<enum-item name='VERMIN_EATER'/>
|
||||
<enum-item name='VERMIN_GROUNDER'/>
|
||||
<enum-item name='VERMIN_ROTTER'/>
|
||||
<enum-item name='VERMIN_SOIL'/>
|
||||
<enum-item name='VERMIN_SOIL_COLONY'/>
|
||||
|
||||
<enum-item name='LARGE_ROAMING'/>
|
||||
<enum-item name='VERMIN_FISH'/>
|
||||
<enum-item name='LOOSE_CLUSTERS'/>
|
||||
<enum-item name='FANCIFUL'/>
|
||||
<enum-item name='BIOME_MOUNTAIN'/>
|
||||
<enum-item name='BIOME_GLACIER'/>
|
||||
<enum-item name='BIOME_TUNDRA'/>
|
||||
<enum-item name='BIOME_SWAMP_TEMPERATE_FRESHWATER'/>
|
||||
|
||||
<enum-item name='BIOME_SWAMP_TEMPERATE_SALTWATER'/>
|
||||
<enum-item name='BIOME_MARSH_TEMPERATE_FRESHWATER'/>
|
||||
<enum-item name='BIOME_MARSH_TEMPERATE_SALTWATER'/>
|
||||
<enum-item name='BIOME_SWAMP_TROPICAL_FRESHWATER'/>
|
||||
<enum-item name='BIOME_SWAMP_TROPICAL_SALTWATER'/>
|
||||
<enum-item name='BIOME_SWAMP_MANGROVE'/>
|
||||
<enum-item name='BIOME_MARSH_TROPICAL_FRESHWATER'/>
|
||||
<enum-item name='BIOME_MARSH_TROPICAL_SALTWATER'/>
|
||||
|
||||
<enum-item name='BIOME_FOREST_TAIGA'/>
|
||||
<enum-item name='BIOME_FOREST_TEMPERATE_CONIFER'/>
|
||||
<enum-item name='BIOME_FOREST_TEMPERATE_BROADLEAF'/>
|
||||
<enum-item name='BIOME_FOREST_TROPICAL_CONIFER'/>
|
||||
<enum-item name='BIOME_FOREST_TROPICAL_DRY_BROADLEAF'/>
|
||||
<enum-item name='BIOME_FOREST_TROPICAL_MOIST_BROADLEAF'/>
|
||||
<enum-item name='BIOME_GRASSLAND_TEMPERATE'/>
|
||||
<enum-item name='BIOME_SAVANNA_TEMPERATE'/>
|
||||
|
||||
<enum-item name='BIOME_SHRUBLAND_TEMPERATE'/>
|
||||
<enum-item name='BIOME_GRASSLAND_TROPICAL'/>
|
||||
<enum-item name='BIOME_SAVANNA_TROPICAL'/>
|
||||
<enum-item name='BIOME_SHRUBLAND_TROPICAL'/>
|
||||
<enum-item name='BIOME_DESERT_BADLAND'/>
|
||||
<enum-item name='BIOME_DESERT_ROCK'/>
|
||||
<enum-item name='BIOME_DESERT_SAND'/>
|
||||
<enum-item name='BIOME_OCEAN_TROPICAL'/>
|
||||
|
||||
<enum-item name='BIOME_OCEAN_TEMPERATE'/>
|
||||
<enum-item name='BIOME_OCEAN_ARCTIC'/>
|
||||
<enum-item name='BIOME_SUBTERRANEAN_WATER'/>
|
||||
<enum-item name='BIOME_SUBTERRANEAN_CHASM'/>
|
||||
<enum-item name='BIOME_SUBTERRANEAN_LAVA'/>
|
||||
<enum-item name='BIOME_POOL_TEMPERATE_FRESHWATER'/>
|
||||
<enum-item name='BIOME_POOL_TEMPERATE_BRACKISHWATER'/>
|
||||
<enum-item name='BIOME_POOL_TEMPERATE_SALTWATER'/>
|
||||
|
||||
<enum-item name='BIOME_POOL_TROPICAL_FRESHWATER'/>
|
||||
<enum-item name='BIOME_POOL_TROPICAL_BRACKISHWATER'/>
|
||||
<enum-item name='BIOME_POOL_TROPICAL_SALTWATER'/>
|
||||
<enum-item name='BIOME_LAKE_TEMPERATE_FRESHWATER'/>
|
||||
<enum-item name='BIOME_LAKE_TEMPERATE_BRACKISHWATER'/>
|
||||
<enum-item name='BIOME_LAKE_TEMPERATE_SALTWATER'/>
|
||||
<enum-item name='BIOME_LAKE_TROPICAL_FRESHWATER'/>
|
||||
<enum-item name='BIOME_LAKE_TROPICAL_BRACKISHWATER'/>
|
||||
|
||||
<enum-item name='BIOME_LAKE_TROPICAL_SALTWATER'/>
|
||||
<enum-item name='BIOME_RIVER_TEMPERATE_FRESHWATER'/>
|
||||
<enum-item name='BIOME_RIVER_TEMPERATE_BRACKISHWATER'/>
|
||||
<enum-item name='BIOME_RIVER_TEMPERATE_SALTWATER'/>
|
||||
<enum-item name='BIOME_RIVER_TROPICAL_FRESHWATER'/>
|
||||
<enum-item name='BIOME_RIVER_TROPICAL_BRACKISHWATER'/>
|
||||
<enum-item name='BIOME_RIVER_TROPICAL_SALTWATER'/>
|
||||
<enum-item name='GOOD'/>
|
||||
|
||||
<enum-item name='EVIL'/>
|
||||
<enum-item name='SAVAGE'/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item name='GENERATED'/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item name='DOES_NOT_EXIST'/>
|
||||
<enum-item/>
|
||||
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item name='ARTIFICIAL_HIVEABLE'/>
|
||||
|
||||
<enum-item name='UBIQUITOUS'/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
<enum-item/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='body_part_layer_raw' key-field='layer_name'>
|
||||
<stl-string name='layer_name'/>
|
||||
|
||||
<int32_t name='tissue_id'/>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<int32_t name='unk2'/>
|
||||
|
||||
<int32_t name='healing_rate'/>
|
||||
<int32_t name='vascular'/>
|
||||
<int32_t name='pain_receptors'/>
|
||||
|
||||
<int32_t name='unk6'/>
|
||||
<int16_t name='unk7'/>
|
||||
|
||||
<stl-vector name='unk8'/>
|
||||
|
||||
<int32_t name='layer_id' comment='across all body parts'/>
|
||||
|
||||
<int32_t name='unk10'/>
|
||||
<int32_t name='unk11'/>
|
||||
<int32_t name='layer_depth' comment='-1 for skin and internal organs'/>
|
||||
<int32_t name='unk13'/>
|
||||
<int32_t name='unk14'/>
|
||||
<int32_t name='unk15'/>
|
||||
<int32_t name='unk16'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='body_part_raw' key-field='part_name'>
|
||||
<stl-string name='part_code'/>
|
||||
<stl-string name='part_name'/>
|
||||
|
||||
<int16_t name='con_part_id'/>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<stl-vector name='layers'>
|
||||
<pointer type-name='body_part_layer_raw'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='unk2'/>
|
||||
<int32_t name='unk3'/>
|
||||
<int32_t name='unk4'/>
|
||||
<int32_t name='unk5'/>
|
||||
<int32_t name='relsize'/>
|
||||
<int32_t name='unk7'/>
|
||||
|
||||
<int16_t name='unk7b'/>
|
||||
|
||||
<stl-vector name='name_singular'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='name_plural'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<pointer name='bp_relation_part_id'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</pointer>
|
||||
<pointer name='bp_relation_code'>
|
||||
<stl-vector type-name='int16_t'/> // 0 around of, 1 around by
|
||||
</pointer>
|
||||
<pointer name='bp_relation_coverage'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</pointer>
|
||||
|
||||
<uint16_t name='min_temp'/>
|
||||
<uint16_t name='max_temp'/>
|
||||
<uint16_t name='temp_factor'/>
|
||||
|
||||
<int32_t name='unused'/>
|
||||
|
||||
<int32_t name='unk11'/>
|
||||
<int16_t name='unk12'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='caste_raw' key-field='caste_id'>
|
||||
<stl-string name='caste_id'/>
|
||||
|
||||
<code-helper name='find-instance'>$global.world.raws.creatures.all[$$].caste[$]</code-helper>
|
||||
|
||||
<static-array type-name='stl-string' name='caste_name' count='3'/>
|
||||
|
||||
<stl-string name='vermin_bite_txt'/>
|
||||
<stl-string name='gnawer_txt'/>
|
||||
|
||||
<static-array type-name='stl-string' name='baby_name' count='2'/>
|
||||
<static-array type-name='stl-string' name='child_name' count='2'/>
|
||||
<static-array type-name='stl-string' name='itemcorpse_str' count='5'/> // temporary
|
||||
<static-array type-name='stl-string' name='remains' count='2'/>
|
||||
<stl-string name='description'/>
|
||||
<static-array type-name='stl-string' name='mannerisms' count='17'>
|
||||
<comment>fingers[2], nose, ear, head, eyes, mouth, hair, knuckles, lips, cheek, nails, f eet, arms, hands, tongue, leg</comment>
|
||||
</static-array>
|
||||
|
||||
<uint8_t name='caste_tile'/>
|
||||
<uint8_t name='caste_soldier_tile'/>
|
||||
<uint8_t name='caste_alttile'/>
|
||||
<uint8_t name='caste_soldier_alttile'/>
|
||||
<uint8_t name='caste_glowtile'/>
|
||||
|
||||
<uint16_t name='homeotherm'/>
|
||||
<int16_t name='unk1_1'/>
|
||||
<int16_t name='unk1_2'/>
|
||||
<uint16_t name='fixed_temp'/>
|
||||
|
||||
<static-array type-name='int16_t' name='caste_color' count='3'/>
|
||||
|
||||
<compound name='misc'>
|
||||
<int16_t name='litter_size_min'/>
|
||||
<int16_t name='litter_size_max'/>
|
||||
<int16_t name='penetratepower'/>
|
||||
<int16_t name='vermin_bite_chance'/>
|
||||
<int16_t name='grasstrample'/>
|
||||
<int16_t name='buildingdestroyer'/>
|
||||
<enum base-type='int16_t' name='itemcorpse_itemtype' type-name='item_type'/>
|
||||
<int16_t name='itemcorpse_itemsubtype'/>
|
||||
<int16_t name='itemcorpse_materialtype'
|
||||
ref-target='material' aux-value='$$.itemcorpse_materialindex'/>
|
||||
<int16_t name='itemcorpse_materialindex'/> // NOT 32-bit!
|
||||
<int16_t name='itemcorpse_quality'/>
|
||||
<static-array type-name='int16_t' name='remains_color' count='3'/>
|
||||
<int16_t name='difficulty'/>
|
||||
<static-array type-name='int16_t' name='caste_glowcolor' count='3'/>
|
||||
<int16_t name='beach_frequency'/>
|
||||
<int16_t name='clutch_size_min'/>
|
||||
<int16_t name='clutch_size_max'/>
|
||||
<int32_t name='speed'/>
|
||||
<int32_t name='modvalue'/>
|
||||
<int32_t name='petvalue'/>
|
||||
<int32_t name='milkable'/>
|
||||
<int32_t name='viewrange'/>
|
||||
<int32_t name='maxage_min'/>
|
||||
<int32_t name='maxage_max'/>
|
||||
<static-array type-name='int32_t' name='unk3' count='2'/>
|
||||
<int32_t name='swim_speed'/>
|
||||
<int32_t name='trade_capacity'/>
|
||||
<int32_t name='unk4'/>
|
||||
<int32_t name='pop_ratio'/>
|
||||
<int32_t name='adult_size'/>
|
||||
<static-array type-name='int32_t' name='unk5' count='4'/>
|
||||
<static-array type-name='int32_t' name='attack_trigger' count='3'/>
|
||||
<int32_t name='egg_size'/>
|
||||
<int32_t name='grazer'/>
|
||||
<int32_t name='petvalue_divisor'/>
|
||||
<int32_t name='prone_to_rage'/>
|
||||
<static-array type-name='int32_t' name='unk6' count='29'/>
|
||||
</compound>
|
||||
|
||||
<static-array name='personality' count='30'>
|
||||
<int16_t name='a'/>
|
||||
<int16_t name='b'/>
|
||||
<int16_t name='c'/>
|
||||
</static-array>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<int32_t name='unk7'/>
|
||||
|
||||
<stl-vector name='body_parts'>
|
||||
<pointer type-name='body_part_raw'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='attacks'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='unknown1'>
|
||||
<int32_t name='unk8'/>
|
||||
<stl-vector type-name='int16_t' name='unk9a'/>
|
||||
<stl-vector type-name='int16_t' name='unk9b'/>
|
||||
<stl-vector name='unk10'/>
|
||||
<stl-vector name='unk11'/>
|
||||
<stl-vector name='unk12'/>
|
||||
<stl-vector type-name='int16_t' name='unk13'/>
|
||||
<stl-vector type-name='int32_t' name='unk14'/>
|
||||
</compound>
|
||||
|
||||
<static-array type-name='int32_t' name='unk15' count='4'/>
|
||||
|
||||
<stl-vector name='caste_speech_1'/>
|
||||
<stl-vector name='caste_speech_2'/>
|
||||
|
||||
<static-array name='skill_rates' count='116'>
|
||||
<static-array type-name='int32_t' count='4'/>
|
||||
</static-array>
|
||||
|
||||
<compound name='attributes'>
|
||||
<static-array name='phys_att_range' count='7'>
|
||||
<static-array type-name='int32_t' count='6'/>
|
||||
</static-array>
|
||||
<static-array name='ment_att_range' count='7'>
|
||||
<static-array type-name='int32_t' count='13'/>
|
||||
</static-array>
|
||||
<static-array name='phys_att_rates' count='4'>
|
||||
<static-array type-name='int32_t' count='6'/>
|
||||
</static-array>
|
||||
<static-array name='ment_att_rates' count='4'>
|
||||
<static-array type-name='int32_t' count='13'/>
|
||||
</static-array>
|
||||
<static-array type-name='int32_t' name='phys_att_cap_perc' count='6'/>
|
||||
<static-array type-name='int32_t' name='ment_att_cap_perc' count='13'/>
|
||||
</compound>
|
||||
|
||||
<int8_t name='gender'/>
|
||||
|
||||
<stl-vector type-name='int32_t' name='body_size_1'/>
|
||||
<stl-vector type-name='int32_t' name='body_size_2'/>
|
||||
|
||||
<static-array name='unk16' count='19'>
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
|
||||
<static-array type-name='int32_t' name='unk17' count='2'/>
|
||||
|
||||
<stl-vector type-name='int16_t' name='natural_skill_id'/>
|
||||
<stl-vector type-name='int32_t' name='natural_skill_exp'/>
|
||||
<stl-vector type-name='int32_t' name='natural_skill_lvl'/>
|
||||
|
||||
<static-array name='caste_profession_name' count='106'>
|
||||
<stl-string name='singular'/>
|
||||
<stl-string name='plural'/>
|
||||
</static-array>
|
||||
|
||||
<compound name='extracts'>
|
||||
<stl-vector type-name='int16_t' name='extract_mat'/>
|
||||
<stl-vector type-name='int32_t' name='extract_matidx'/>
|
||||
<static-array name='extract_str' count='3'>
|
||||
<stl-vector>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<int16_t name='milkable_mat'/>
|
||||
<int32_t name='milkable_matidx'/>
|
||||
<static-array name='milkable_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
|
||||
<int16_t name='webber_mat'/>
|
||||
<int32_t name='webber_matidx'/>
|
||||
<static-array name='webber_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
|
||||
<int16_t name='vermin_bite_mat'/>
|
||||
<int32_t name='vermin_bite_matidx'/>
|
||||
<int16_t name='vermin_bite_chance'/>
|
||||
<static-array name='vermin_bite_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
|
||||
<int16_t name='tendons_mat'/>
|
||||
<int32_t name='tendons_matidx'/>
|
||||
<static-array name='tendons_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
<int32_t name='tendons_heal'/>
|
||||
|
||||
<int16_t name='ligaments_mat'/>
|
||||
<int32_t name='ligaments_matidx'/>
|
||||
<static-array name='ligaments_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
<int32_t name='ligaments_heal'/>
|
||||
|
||||
<int16_t name='blood_state'/>
|
||||
<int16_t name='blood_mat'/>
|
||||
<int32_t name='blood_matidx'/>
|
||||
<static-array name='blood_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
|
||||
<int16_t name='pus_state'/>
|
||||
<int16_t name='pus_mat'/>
|
||||
<int32_t name='pus_matidx'/>
|
||||
<static-array name='pus_str' count='3'>
|
||||
<stl-string/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector type-name='int16_t' name='material_breath_attack_mattype'/>
|
||||
<stl-vector type-name='int32_t' name='material_breath_attack_matindex'/>
|
||||
<static-array name='material_breath_attack_str' count='3'>
|
||||
<stl-vector>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
<stl-vector type-name='int16_t' name='material_breath_attack_type'/>
|
||||
|
||||
<stl-vector type-name='int16_t' name='egg_material_mattype'/>
|
||||
<stl-vector type-name='int32_t' name='egg_material_matindex'/>
|
||||
<static-array name='egg_material_str' count='3'>
|
||||
<stl-vector>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='lays_unusual_eggs_itemtype'>
|
||||
<enum base-type='int16_t' type-name='item_type'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='lays_unusual_eggs_itemsubtype'/>
|
||||
<stl-vector type-name='int16_t' name='lays_unusual_eggs_mattype'/>
|
||||
<stl-vector type-name='int32_t' name='lays_unusual_eggs_matindex'/>
|
||||
<static-array name='lays_unusual_eggs_str' count='5'>
|
||||
<stl-vector>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='unk22'/>
|
||||
|
||||
<stl-vector name='creature_class'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='unknown2'>
|
||||
<stl-vector name='unk23a'/>
|
||||
<stl-vector name='unk23b'/>
|
||||
<stl-vector name='unk23c'/>
|
||||
|
||||
<df-flagarray name='unk24_flags'/>
|
||||
<df-flagarray name='unk25_flags'/>
|
||||
|
||||
<static-array type-name='int32_t' name='unk26' count='33'/>
|
||||
<static-array name='unk27' count='5'><stl-vector/></static-array>
|
||||
<static-array type-name='int32_t' name='unk28' count='2'/>
|
||||
</compound>
|
||||
|
||||
<static-array type-name='int32_t' name='habit_num' count='2'/>
|
||||
<static-array name='habit' count='2'><stl-vector/></static-array>
|
||||
<static-array name='lair' count='2'><stl-vector/></static-array>
|
||||
<static-array name='lair_characteristic' count='2'><stl-vector/></static-array>
|
||||
<static-array name='lair_hunter_speech' count='2'><stl-vector/></static-array>
|
||||
<static-array name='unk29' count='2'><stl-vector/></static-array>
|
||||
<static-array name='specific_food' count='2'><stl-vector/></static-array>
|
||||
<static-array name='unk30' count='3'><stl-vector/></static-array>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='creature_raw' key-field='creature_id'>
|
||||
<stl-string name='creature_id'/>
|
||||
|
||||
<code-helper name='find-instance'>$global.world.raws.creatures.all[$]</code-helper>
|
||||
|
||||
<static-array type-name='stl-string' name='name' count='3'/>
|
||||
<static-array type-name='stl-string' name='general_baby_name' count='2'/>
|
||||
<static-array type-name='stl-string' name='general_child_name' count='2'/>
|
||||
|
||||
<uint8_t name='creature_tile'/>
|
||||
<uint8_t name='creature_soldier_tile'/>
|
||||
<uint8_t name='alttile'/>
|
||||
<uint8_t name='soldier_alttile'/>
|
||||
<uint8_t name='glowtile'/>
|
||||
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='unk2'/>
|
||||
<int16_t name='frequency'/>
|
||||
<static-array type-name='int16_t' name='population_number' count='2'/>
|
||||
<static-array type-name='int16_t' name='cluster_number' count='2'/>
|
||||
<static-array type-name='int16_t' name='triggerable_group' count='2'/>
|
||||
<static-array type-name='int16_t' name='color' count='3'/>
|
||||
<static-array type-name='int16_t' name='glowcolor' count='3'/>
|
||||
|
||||
<int32_t name='adultsize'/>
|
||||
|
||||
<stl-vector name='prefstring'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector type-name='int16_t' name='sphere'/>
|
||||
<stl-vector name='caste'>
|
||||
<pointer type-name='caste_raw'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector type-name='int32_t' name='pop_ratio'/>
|
||||
|
||||
<df-flagarray name='flags' index-enum='creature_raw_flags'/>
|
||||
|
||||
<compound name='stuff'>
|
||||
<static-array name='stuff1' count='2'>
|
||||
<static-array type-name='int32_t' count='7'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='stuff2a' count='7'>
|
||||
<static-array type-name='int32_t' count='12'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='stuff2b' count='7'>
|
||||
<static-array type-name='int32_t' count='12'/>
|
||||
</static-array>
|
||||
|
||||
<static-array type-name='int32_t' name='unk3' count='84'/>
|
||||
|
||||
<static-array name='stuff3a' count='7'>
|
||||
<static-array type-name='int32_t' count='106'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='stuff3b' count='7'>
|
||||
<static-array type-name='int32_t' count='106'/>
|
||||
</static-array>
|
||||
|
||||
<static-array type-name='int8_t' name='stuff4' count='7'/>
|
||||
|
||||
<static-array name='stuff2c' count='7'>
|
||||
<static-array type-name='int8_t' count='12'/>
|
||||
</static-array>
|
||||
|
||||
<static-array type-name='int8_t' name='unk4' count='42'/>
|
||||
|
||||
<static-array name='stuff3c' count='7'>
|
||||
<static-array type-name='int8_t' count='106'/>
|
||||
</static-array>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='unk5'/>
|
||||
<stl-vector name='speech1'/>
|
||||
<stl-vector name='speech2'/>
|
||||
<stl-vector name='speech3'/>
|
||||
|
||||
<stl-vector name='material'>
|
||||
<pointer type-name='material'/>
|
||||
</stl-vector>
|
||||
<stl-vector type-name='pointer' name='tissue'/>
|
||||
|
||||
<static-array name='profession_name' count='106'>
|
||||
<stl-string name='singular'/>
|
||||
<stl-string name='plural'/>
|
||||
</static-array>
|
||||
|
||||
<pointer name='unk6pa'/>
|
||||
<pointer name='unk6pb'/>
|
||||
|
||||
<stl-vector type-name='int32_t' name='unk6'/>
|
||||
<stl-vector type-name='int32_t' name='unk7'/>
|
||||
|
||||
<stl-vector type-name='int32_t' name='hive_product_0'/>
|
||||
<stl-vector type-name='int32_t' name='hive_product_1'/>
|
||||
<stl-vector type-name='int16_t' name='hive_product_2'/>
|
||||
<stl-vector type-name='int16_t' name='hive_product_3'/>
|
||||
<stl-vector type-name='int16_t' name='hive_product_4'/>
|
||||
<stl-vector type-name='int32_t' name='hive_product_5'/>
|
||||
|
||||
<static-array name='hive_product_tmpstr' count='5'>
|
||||
<stl-vector>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<int32_t name='unk8'/>
|
||||
|
||||
<stl-vector name='raws'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,129 @@
|
||||
<data-definition>
|
||||
<enum-type type-name='d_init_nickname'>
|
||||
<enum-item name='REPLACE_FIRST'/>
|
||||
<enum-item name='CENTRALIZE'/>
|
||||
<enum-item name='REPLACE_ALL'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_z_view'>
|
||||
<enum-item name='OFF'/>
|
||||
<enum-item name='UNHIDDEN'/>
|
||||
<enum-item name='CREATURE'/>
|
||||
<enum-item name='ON'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_idlers'>
|
||||
<enum-item name='OFF' value='-1'/>
|
||||
<enum-item name='TOP'/>
|
||||
<enum-item name='BOTTOM'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_tunnel'>
|
||||
<enum-item name='NO'/>
|
||||
<enum-item name='FINDER'/>
|
||||
<enum-item name='ALWAYS'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_flags1'>
|
||||
<enum-item name='VARIED_GROUND_TILES'/>
|
||||
<enum-item name='ENGRAVINGS_START_OBSCURED'/>
|
||||
<enum-item name='SHOW_IMP_QUALITY'/>
|
||||
<enum-item name='SHOW_FLOW_AMOUNTS'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_flags2'>
|
||||
<enum-item name='MORE'/>
|
||||
<enum-item name='ADVENTURER_TRAPS'/>
|
||||
<enum-item name='ADVENTURER_ALWAYS_CENTER'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_flags3'>
|
||||
<enum-item name='COFFIN_NO_PETS_DEFAULT'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='d_init_flags4'>
|
||||
<enum-item name='TEMPERATURE'/>
|
||||
<enum-item name='WEATHER'/>
|
||||
<enum-item name='ECONOMY'/>
|
||||
<enum-item name='ZERO_RENT'/>
|
||||
<enum-item name='AUTOSAVE_SEASONAL'/>
|
||||
<enum-item name='AUTOSAVE_YEARLY'/>
|
||||
<enum-item name='AUTOSAVE_PAUSE'/>
|
||||
<enum-item name='AUTOBACKUP'/>
|
||||
<enum-item name='INITIAL_SAVE'/>
|
||||
<enum-item name='INVADERS'/>
|
||||
<enum-item name='CAVEINS'/>
|
||||
<enum-item name='ARTIFACTS'/>
|
||||
<enum-item name='LOG_MAP_REJECTS'/>
|
||||
<enum-item name='PAUSE_ON_LOAD'/>
|
||||
<enum-item name='EMBARK_WARNING_ALWAYS'/>
|
||||
<enum-item name='SHOW_ALL_HISTORY_IN_DWARF_MODE'/>
|
||||
<enum-item name='TESTING_ARENA'/>
|
||||
<enum-item name='WALKING_SPREADS_SPATTER_DWF'/>
|
||||
<enum-item name='WALKING_SPREADS_SPATTER_ADV'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='d_init'>
|
||||
<df-flagarray name='flags1' index-enum='d_init_flags1'/>
|
||||
|
||||
<enum name="nickname_dwarf" type-name='d_init_nickname'/>
|
||||
<enum name="nickname_adventure" type-name='d_init_nickname'/>
|
||||
<enum name="nickname_legends" type-name='d_init_nickname'/>
|
||||
<enum name="nickname_dwarf2" type-name='d_init_nickname'/>
|
||||
|
||||
<int32_t name="unk_18"/>
|
||||
<int32_t name="unk_1c"/>
|
||||
|
||||
<uint8_t name='sky_tile'/>
|
||||
<static-array name='sky_color' type-name='int16_t' count='3'/>
|
||||
<uint8_t name='chasm_tile'/>
|
||||
<uint8_t name='pillar_tile'/>
|
||||
<static-array name='chasm_color' type-name='int16_t' count='3'/>
|
||||
|
||||
<compound name='wound_color'>
|
||||
<static-array name='none' type-name='int16_t' count='3'/>
|
||||
<static-array name='minor' type-name='int16_t' count='3'/>
|
||||
<static-array name='inhibited' type-name='int16_t' count='3'/>
|
||||
<static-array name='function_loss' type-name='int16_t' count='3'/>
|
||||
<static-array name='broken' type-name='int16_t' count='3'/>
|
||||
<static-array name='missing' type-name='int16_t' count='3'/>
|
||||
</compound>
|
||||
|
||||
<enum name="idlers" base-type='int16_t' type-name='d_init_idlers'/>
|
||||
<enum name="show_embark_tunnel" base-type='int16_t' type-name='d_init_tunnel'/>
|
||||
|
||||
<df-flagarray name='flags2' index-enum='d_init_flags2'/>
|
||||
|
||||
<int32_t name="display_length"/>
|
||||
|
||||
<enum name="adventurer_z_view" type-name='d_init_z_view'/>
|
||||
<int32_t name="adventurer_z_view_size"/>
|
||||
|
||||
<df-flagarray name='flags3' index-enum='d_init_flags3'/>
|
||||
|
||||
<int32_t name="population_cap"/>
|
||||
<int32_t name="baby_cap_absolute"/>
|
||||
<int32_t name="baby_cap_percent"/>
|
||||
|
||||
<static-array name='path_cost' type-name='int32_t' count='4'/>
|
||||
<static-array name='embark_rect' type-name='int16_t' count='2'/>
|
||||
|
||||
<compound name='store_dist'>
|
||||
<int16_t name='item_decrease'/>
|
||||
<int16_t name='seed_combine'/>
|
||||
<int16_t name='bucket_combine'/>
|
||||
<int16_t name='barrel_combine'/>
|
||||
<int16_t name='bin_combine'/>
|
||||
</compound>
|
||||
|
||||
<df-flagarray name='flags4' index-enum='d_init_flags4'/>
|
||||
85266c0
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,120 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='historical_figure' key-field='id'>
|
||||
<enum base-type='int16_t' name='profession' type-name='profession'/>
|
||||
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
|
||||
<int8_t name='sex'/>
|
||||
|
||||
<int32_t name='appeared_year'/>
|
||||
<int32_t name='born_year'/>
|
||||
<int32_t name='born_seconds'/>
|
||||
<int32_t name='old_year'/>
|
||||
<int32_t name='old_seconds'/>
|
||||
<int32_t name='died_year'/>
|
||||
<int32_t name='died_seconds'/>
|
||||
|
||||
<compound type-name='language_name' name='name'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.history.figures $id $)</code-helper>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
(awhen (find-creature $.race)
|
||||
(fmt "~:(~A ~A~)" $it.caste[$.caste].caste_id $it.creature_id))
|
||||
</code-helper>
|
||||
|
||||
<int32_t name='civ_id' ref-target='historical_entity'/>
|
||||
<int32_t name='population_id' ref-target='entity_population'/>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<int32_t name='unit_id' ref-target='unit'/>
|
||||
<int32_t name='id'/>
|
||||
|
||||
<int32_t name='unk4'/>
|
||||
|
||||
<stl-vector name='entity_links'/>
|
||||
<stl-vector name='site_links'/>
|
||||
<stl-vector name='histfig_links'/>
|
||||
|
||||
<pointer name='unk6'/>
|
||||
|
||||
<static-array name='unk7' count='5' type-name='int32_t' comment='empty'/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='history_event_masterpiece_createdst' inherits-from='history_event'>
|
||||
<int32_t name='maker' ref-target='historical_figure'/>
|
||||
<int32_t name='maker_entity' ref-target='historical_entity'/>
|
||||
<int32_t name='site' ref-target='world_site'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='history_event_masterpiece_created_itemst'
|
||||
inherits-from='history_event_masterpiece_createdst'>
|
||||
<enum base-type='int32_t' name='skill_used' type-name='job_skill'/>
|
||||
<enum base-type='int16_t' name='item_type' type-name='item_type'/>
|
||||
<int16_t name='item_subtype' refers-to='(item-subtype-target $$._parent.item_type $)'/>
|
||||
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
|
||||
<int16_t name='mat_index'/>
|
||||
<int32_t name='item_id' ref-target='item'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='history_event_masterpiece_created_foodst'
|
||||
inherits-from='history_event_masterpiece_createdst'>
|
||||
<int32_t name='unk1'/>
|
||||
<int16_t name='item_subtype' refers-to='$global.world.raws.itemdefs.food[$]'/>
|
||||
<int32_t name='item_id' ref-target='item'/>
|
||||
</class-type>
|
||||
|
||||
<struct-type type-name='world_history'>
|
||||
dtor 8532fa0
|
||||
|
||||
<stl-vector name='events'>
|
||||
<pointer type-name='history_event'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='events2'>
|
||||
<pointer type-name='history_event'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='figures'>
|
||||
<pointer type-name='historical_figure'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array name='other_events' count='9'>
|
||||
<stl-vector>
|
||||
<pointer type-name='history_event'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='ages'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk1' type-name='int32_t'/>
|
||||
<stl-vector name='unk2' type-name='int16_t'/>
|
||||
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<bool/>
|
||||
<stl-vector/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,138 @@
|
||||
<data-definition>
|
||||
-- init.h
|
||||
|
||||
<enum-type type-name='init_display_flags'>
|
||||
<enum-item name='USE_GRAPHICS'/>
|
||||
<enum-item name='BLACK_SPACE'/>
|
||||
<enum-item name='PARTIAL_PRINT'/>
|
||||
<enum-item name='FRAME_BUFFER'/>
|
||||
<enum-item name='SINGLE_BUFFER'/>
|
||||
<enum-item name='ACCUM_BUFFER'/>
|
||||
<enum-item name='VBO'/>
|
||||
<enum-item name='RENDER_2D'/>
|
||||
<enum-item name='RENDER_2DHW'/>
|
||||
<enum-item name='RENDER_2DASYNC'/>
|
||||
<enum-item name='UNUSED_01_08'/>
|
||||
<enum-item name='TEXT'/>
|
||||
<enum-item name='SHADER'/>
|
||||
<enum-item name='NOT_RESIZABLE'/>
|
||||
<enum-item name='ARB_SYNC'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='init_display'>
|
||||
<df-flagarray name='flag' index-enum='init_display_flags'/>
|
||||
|
||||
<enum name='windowed'>
|
||||
<enum-item name='True'/>
|
||||
<enum-item name='False'/>
|
||||
<enum-item name='Prompt'/>
|
||||
</enum>
|
||||
|
||||
<int32_t name='grid_x'/>
|
||||
<int32_t name='grid_y'/>
|
||||
|
||||
<int32_t name='desired_fullscreen_width'/>
|
||||
<int32_t name='desired_fullscreen_height'/>
|
||||
<int32_t name='desired_windowed_width'/>
|
||||
<int32_t name='desired_windowed_height'/>
|
||||
|
||||
<int8_t name='partial_print_count'/>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='init_media_flags'>
|
||||
<enum-item name='SOUND_OFF'/>
|
||||
<enum-item name='INTRO_OFF'/>
|
||||
<enum-item name='COMPRESS_SAVES'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='init_media'>
|
||||
<df-flagarray name='flag' index-enum='init_media_flags'/>
|
||||
<int32_t name='volume'/>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='init_input_flags'>
|
||||
<enum-item name='MOUSE_OFF'/>
|
||||
<enum-item name='MOUSE_PICTURE'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='init_input'>
|
||||
<int32_t name='hold_time'/>
|
||||
<int32_t name='repeat_time'/>
|
||||
<int32_t name='macro_time'/>
|
||||
<int32_t name='pause_zoom_no_interface_ms'/>
|
||||
<df-flagarray name='flag' index-enum='init_input_flags'/>
|
||||
<int32_t name='zoom_speed'/>
|
||||
<int32_t name='repeat_accel_start'/>
|
||||
<int32_t name='repeat_accel_limit'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='init_font'>
|
||||
<static-array name='small_font_texpos' type-name='int32_t' count='256'/>
|
||||
<static-array name='large_font_texpos' type-name='int32_t' count='256'/>
|
||||
<static-array name='small_font_datapos' type-name='int32_t' count='256'/>
|
||||
<static-array name='large_font_datapos' type-name='int32_t' count='256'/>
|
||||
<s-float name='small_font_adjx'/>
|
||||
<s-float name='small_font_adjy'/>
|
||||
<s-float name='large_font_adjx'/>
|
||||
<s-float name='large_font_adjy'/>
|
||||
<int32_t name='small_font_dispx'/>
|
||||
<int32_t name='small_font_dispy'/>
|
||||
<int32_t name='large_font_dispx'/>
|
||||
<int32_t name='large_font_dispy'/>
|
||||
<bool name='use_ttf'/>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='init_window_flags'>
|
||||
<enum-item name='TOPMOST'/>
|
||||
<enum-item name='VSYNC_ON'/>
|
||||
<enum-item name='VSYNC_OFF'/>
|
||||
<enum-item name='TEXTURE_LINEAR'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='init_window'>
|
||||
<df-flagarray name='flag' index-enum='init_window_flags'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='init'>
|
||||
<compound name='display' type-name='init_display'/>
|
||||
<compound name='media' type-name='init_media'/>
|
||||
<compound name='input' type-name='init_input'/>
|
||||
<compound name='font' type-name='init_font'/>
|
||||
<compound name='window' type-name='init_window'/>
|
||||
</struct-type>
|
||||
|
||||
-- texture_handler.h
|
||||
|
||||
<struct-type type-name='tile_page'>
|
||||
<stl-string name='token'/>
|
||||
<stl-string name='filename'/>
|
||||
|
||||
<int16_t name='tile_dim_x'/>
|
||||
<int16_t name='tile_dim_y'/>
|
||||
<int16_t name='page_dim_x'/>
|
||||
<int16_t name='page_dim_y'/>
|
||||
|
||||
<stl-vector name='texpos' type-name='int32_t'/>
|
||||
<stl-vector name='datapos' type-name='int32_t'/>
|
||||
<stl-vector name='texpos_gs' type-name='int32_t'/>
|
||||
<stl-vector name='datapos_gs' type-name='int32_t'/>
|
||||
|
||||
<bool name='loaded'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='texture_handler'>
|
||||
<stl-vector name='page'>
|
||||
<pointer type-name='tile_page'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='texpos' type-name='int32_t'/>
|
||||
<stl-vector name='datapos' type-name='int32_t'/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,303 @@
|
||||
<data-definition>
|
||||
<enum-type type-name='item_type'>
|
||||
<enum-item name='BAR' comment='Bars, such as metal, fuel, or soap.'/>
|
||||
<enum-item name='SMALLGEM' comment='Cut gemstones usable in jewelers workshop'/>
|
||||
<enum-item name='BLOCKS' comment='Blocks of any kind.'/>
|
||||
<enum-item name='ROUGH' comment='Rough gemstones.'/>
|
||||
<enum-item name='BOULDER' comment='Raw mined stone.'/>
|
||||
<enum-item name='WOOD' comment='Wooden logs.'/>
|
||||
<enum-item name='DOOR' comment='Doors.'/>
|
||||
<enum-item name='FLOODGATE' comment='Floodgates.'/>
|
||||
<enum-item name='BED' comment='Beds.'/>
|
||||
<enum-item name='CHAIR' comment='Chairs and thrones.'/>
|
||||
<enum-item name='CHAIN' comment='Restraints.'/>
|
||||
<enum-item name='FLASK' comment='Flasks.'/>
|
||||
<enum-item name='GOBLET' comment='Goblets.'/>
|
||||
<enum-item name='INSTRUMENT' comment='Musical instruments.'/>
|
||||
<enum-item name='TOY' comment='Toys.'/>
|
||||
<enum-item name='WINDOW' comment='Glass windows.'/>
|
||||
<enum-item name='CAGE' comment='Cages.'/>
|
||||
<enum-item name='BARREL' comment='Barrels.'/>
|
||||
<enum-item name='BUCKET' comment='Buckets.'/>
|
||||
<enum-item name='ANIMALTRAP' comment='Animal traps.'/>
|
||||
<enum-item name='TABLE' comment='Tables.'/>
|
||||
<enum-item name='COFFIN' comment='Coffins.'/>
|
||||
<enum-item name='STATUE' comment='Statues.'/>
|
||||
<enum-item name='CORPSE' comment='Corpses. Does not have a material.'/>
|
||||
<enum-item name='WEAPON' comment='Weapons.'/>
|
||||
<enum-item name='ARMOR' comment='Armor and clothing worn on the upper body.'/>
|
||||
<enum-item name='SHOES' comment='Armor and clothing worn on the feet.'/>
|
||||
<enum-item name='SHIELD' comment='Shields and bucklers.'/>
|
||||
<enum-item name='HELM' comment='Armor and clothing worn on the head.'/>
|
||||
<enum-item name='GLOVES' comment='Armor and clothing worn on the hands.'/>
|
||||
<enum-item name='BOX' comment='Chests (wood), coffers (stone), boxes (glass), and bags (cloth or leather).'/>
|
||||
<enum-item name='BIN' comment='Bins.'/>
|
||||
<enum-item name='ARMORSTAND' comment='Armor stands.'/>
|
||||
<enum-item name='WEAPONRACK' comment='Weapon racks.'/>
|
||||
<enum-item name='CABINET' comment='Cabinets.'/>
|
||||
<enum-item name='FIGURINE' comment='Figurines.'/>
|
||||
<enum-item name='AMULET' comment='Amulets.'/>
|
||||
<enum-item name='SCEPTER' comment='Scepters.'/>
|
||||
<enum-item name='AMMO' comment='Ammunition for hand-held weapons.'/>
|
||||
<enum-item name='CROWN' comment='Crowns.'/>
|
||||
<enum-item name='RING' comment='Rings.'/>
|
||||
<enum-item name='EARRING' comment='Earrings.'/>
|
||||
<enum-item name='BRACELET' comment='Bracelets.'/>
|
||||
<enum-item name='GEM' comment='Large gems.'/>
|
||||
<enum-item name='ANVIL' comment='Anvils.'/>
|
||||
<enum-item name='CORPSEPIECE' comment='Body parts. Does not have a material.'/>
|
||||
<enum-item name='REMAINS' comment='Dead vermin bodies. Material is CREATURE_ID:CASTE.'/>
|
||||
<enum-item name='MEAT' comment='Butchered meat.'/>
|
||||
<enum-item name='FISH' comment='Prepared fish. Material is CREATURE_ID:CASTE.'/>
|
||||
<enum-item name='FISH_RAW' comment='Unprepared fish. Material is CREATURE_ID:CASTE.'/>
|
||||
<enum-item name='VERMIN' comment='Live vermin. Material is CREATURE_ID:CASTE.'/>
|
||||
<enum-item name='PET' comment='Tame vermin. Material is CREATURE_ID:CASTE.'/>
|
||||
<enum-item name='SEEDS' comment='Seeds from plants.'/>
|
||||
<enum-item name='PLANT' comment='Plants.'/>
|
||||
<enum-item name='SKIN_TANNED' comment='Tanned skins.'/>
|
||||
<enum-item name='LEAVES' comment='Leaves, usually from quarry bushes.'/>
|
||||
<enum-item name='THREAD' comment='Thread gathered from webs or made at the farmers workshop.'/>
|
||||
<enum-item name='CLOTH' comment='Cloth made at the loom.'/>
|
||||
<enum-item name='TOTEM' comment='Skull totems.'/>
|
||||
<enum-item name='PANTS' comment='Armor and clothing worn on the legs.'/>
|
||||
<enum-item name='BACKPACK' comment='Backpacks.'/>
|
||||
<enum-item name='QUIVER' comment='Quivers.'/>
|
||||
<enum-item name='CATAPULTPARTS' comment='Catapult parts.'/>
|
||||
<enum-item name='BALLISTAPARTS' comment='Ballista parts.'/>
|
||||
<enum-item name='SIEGEAMMO' comment='Siege engine ammunition.'/>
|
||||
<enum-item name='BALLISTAARROWHEAD' comment='Ballista arrow heads.'/>
|
||||
<enum-item name='TRAPPARTS' comment='Mechanisms.'/>
|
||||
<enum-item name='TRAPCOMP' comment='Trap components.'/>
|
||||
<enum-item name='DRINK' comment='Alcoholic drinks.'/>
|
||||
<enum-item name='POWDER_MISC' comment='Powders such as flour, gypsum plaster, dye, or sand.'/>
|
||||
<enum-item name='CHEESE' comment='Pieces of cheese.'/>
|
||||
<enum-item name='FOOD' comment='Prepared meals. Subtypes come from item_food.txt'/>
|
||||
<enum-item name='LIQUID_MISC' comment='Liquids such as water, lye, and extracts.'/>
|
||||
<enum-item name='COIN' comment='Coins.'/>
|
||||
<enum-item name='GLOB' comment='Fat, tallow, pastes/pressed objects, and small bits of molten rock/metal.'/>
|
||||
<enum-item name='ROCK' comment='Small rocks (usually sharpened and/or thrown in adventurer mode)'/>
|
||||
<enum-item name='PIPE_SECTION' comment='Pipe sections.'/>
|
||||
<enum-item name='HATCH_COVER' comment='Hatch covers.'/>
|
||||
<enum-item name='GRATE' comment='Grates.'/>
|
||||
<enum-item name='QUERN' comment='Querns.'/>
|
||||
<enum-item name='MILLSTONE' comment='Millstones.'/>
|
||||
<enum-item name='SPLINT' comment='Splints.'/>
|
||||
<enum-item name='CRUTCH' comment='Crutches.'/>
|
||||
<enum-item name='TRACTION_BENCH' comment='Traction benches.'/>
|
||||
<enum-item name='ORTHOPEDIC_CAST' comment='Casts'/>
|
||||
<enum-item name='TOOL' comment='Tools.'/>
|
||||
<enum-item name='SLAB' comment='Slabs.'/>
|
||||
<enum-item name='EGGS' comment='Eggs. Material is CREATURE_ID:CASTE.'/>
|
||||
</enum-type>
|
||||
|
||||
<class-type type-name='itemdef' original-name='itemdefst' key-field='id'>
|
||||
<stl-string name="id"/>
|
||||
<int16_t name="subtype"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_ammost' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-string name="ammo_class"/>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<int32_t name="size" comment='divided by 10'/>
|
||||
<int32_t name="unk_84"/>
|
||||
|
||||
<stl-vector name="attacks">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</class-type>
|
||||
|
||||
<struct-type type-name='armor_properties'>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name="layer"/>
|
||||
<int16_t name="layer_size"/>
|
||||
<int16_t name="layer_permit"/>
|
||||
<int16_t name="coverage"/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='itemdef_armorst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-string name="name_preplural"/>
|
||||
<stl-string name="material_placeholder"/>
|
||||
<int32_t name="value"/>
|
||||
<int8_t name="armorlevel"/>
|
||||
<int16_t name="ubstep"/>
|
||||
<int16_t name="lbstep"/>
|
||||
<int32_t name="material_size"/>
|
||||
|
||||
<compound name='props' type-name='armor_properties'/>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_foodst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<int16_t name="level"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_glovesst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<int32_t name="value"/>
|
||||
<int8_t name='armorlevel'/>
|
||||
<int16_t name="ubstep"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name="material_size"/>
|
||||
<compound name='props' type-name='armor_properties'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_helmst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<int32_t name="value"/>
|
||||
<int8_t name='armorlevel'/>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name="material_size"/>
|
||||
<compound name='props' type-name='armor_properties'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_instrumentst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<df-flagarray name='flags'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_pantsst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-string name="name_preplural"/>
|
||||
<stl-string name="material_placeholder"/>
|
||||
<int32_t name="value"/>
|
||||
<int8_t name="armorlevel"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name="material_size"/>
|
||||
<int16_t name="lbstep"/>
|
||||
|
||||
<compound name='props' type-name='armor_properties'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_shieldst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<int32_t name="value"/>
|
||||
<int32_t name="blockchance"/>
|
||||
<int8_t name='armorlevel'/>
|
||||
<int16_t name="ubstep"/>
|
||||
<int32_t name="material_size"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_shoesst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<int32_t name="value"/>
|
||||
<int8_t name='armorlevel'/>
|
||||
<int16_t name="ubstep"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name="material_size"/>
|
||||
|
||||
<compound name='props' type-name='armor_properties'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_siegeammost' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-string name="ammo_class"/>
|
||||
</class-type>
|
||||
|
||||
<enum-type type-name='tool_uses'>
|
||||
<enum-item name='TOOL_USE_LIQUID_COOKING'/>
|
||||
<enum-item name='TOOL_USE_LIQUID_SCOOP'/>
|
||||
<enum-item name='TOOL_USE_GRIND_POWDER_RECEPTACLE'/>
|
||||
<enum-item name='TOOL_USE_GRIND_POWDER_GRINDER'/>
|
||||
<enum-item name='TOOL_USE_MEAT_CARVING'/>
|
||||
<enum-item name='TOOL_USE_MEAT_BONING'/>
|
||||
<enum-item name='TOOL_USE_MEAT_SLICING'/>
|
||||
<enum-item name='TOOL_USE_MEAT_CLEAVING'/>
|
||||
<enum-item name='TOOL_USE_HOLD_MEAT_FOR_CARVING'/>
|
||||
<enum-item name='TOOL_USE_MEAL_CONTAINER'/>
|
||||
<enum-item name='TOOL_USE_LIQUID_CONTAINER'/>
|
||||
<enum-item name='TOOL_USE_FOOD_STORAGE'/>
|
||||
<enum-item name='TOOL_USE_HIVE'/>
|
||||
<enum-item name='TOOL_USE_NEST_BOX'/>
|
||||
</enum-type>
|
||||
|
||||
<class-type type-name='itemdef_toolst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name="value"/>
|
||||
<uint8_t name="tile"/>
|
||||
|
||||
<stl-vector name="tool_use">
|
||||
<enum base-type='int16_t' type-name='tool_uses'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-string name="adjective"/>
|
||||
<int32_t name="size"/>
|
||||
<int16_t name="skill_melee"/>
|
||||
<int16_t name="skill_ranged"/>
|
||||
<stl-string name="ranged_ammo"/>
|
||||
<int32_t name="two_handed"/>
|
||||
<int32_t name="minimum_size"/>
|
||||
<int32_t name="material_size"/>
|
||||
|
||||
<stl-vector name="attacks"/>
|
||||
|
||||
<int32_t name="shoot_force"/>
|
||||
<int32_t name="shoot_maxvel"/>
|
||||
|
||||
<int32_t name="container_capacity"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_toyst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<df-flagarray name='flags'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_trapcompst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-string name="adjective"/>
|
||||
|
||||
<int32_t name="size"/>
|
||||
<int32_t name="unk_7c"/>
|
||||
<int32_t name="hits"/>
|
||||
<int32_t name="material_size"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<stl-vector name="attacks">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='itemdef_weaponst' inherits-from='itemdef'>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-string name="adjective"/>
|
||||
<int32_t name="size"/>
|
||||
<int32_t name="unk_7c"/>
|
||||
<int16_t name="skill_melee"/>
|
||||
<int16_t name="skill_ranged"/>
|
||||
<stl-string name="ranged_ammo"/>
|
||||
<int32_t name="two_handed"/>
|
||||
<int32_t name="minimum_size"/>
|
||||
<int32_t name="material_size"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<stl-vector name="attacks">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<int32_t name="shoot_force"/>
|
||||
<int32_t name="shoot_maxvel"/>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,578 @@
|
||||
<data-definition>
|
||||
-- MISC TYPES
|
||||
|
||||
<bitfield-type type-name='item_flags'>
|
||||
<flag-bit name='on_ground' comment='Item on ground'/>
|
||||
<flag-bit name='in_job' comment='Item currently being used in a job'/>
|
||||
<flag-bit name='hostile' comment='Item owned by hostile'/>
|
||||
<flag-bit name='in_inventory' comment='Item in a creature or workshop inventory'/>
|
||||
|
||||
<flag-bit name='unk1' comment='unknown, lost (artifact)?, unusable, unseen'/>
|
||||
<flag-bit name='in_building' comment='Part of a building (including mechanisms, bodies in coffins)'/>
|
||||
<flag-bit name='unk2' comment='unknown, unseen'/>
|
||||
<flag-bit name='dead_dwarf' comment='Dwarfs dead body or body part'/>
|
||||
|
||||
<flag-bit name='rotten' comment='Rotten food'/>
|
||||
<flag-bit name='spider_web' comment='Thread in spider web'/>
|
||||
<flag-bit name='construction' comment='Material used in construction'/>
|
||||
<flag-bit name='unk3' comment='unknown, unseen, unusable'/>
|
||||
|
||||
<flag-bit name='unk4' comment='unknown, unseen'/>
|
||||
<flag-bit name='murder' comment='Implies murder - used in fell moods'/>
|
||||
<flag-bit name='foreign' comment='Item is imported'/>
|
||||
<flag-bit name='trader' comment='Item ownwed by trader'/>
|
||||
|
||||
<flag-bit name='owned' comment='Item is owned by a dwarf'/>
|
||||
<flag-bit name='garbage_colect' comment='Marked for deallocation by DF it seems'/>
|
||||
<flag-bit name='artifact1' comment='Artifact ?'/>
|
||||
<flag-bit name='forbid' comment='Forbidden item'/>
|
||||
|
||||
<flag-bit name='unk6' comment='unknown, unseen'/>
|
||||
<flag-bit name='dump' comment='Designated for dumping'/>
|
||||
<flag-bit name='on_fire' comment='Indicates if item is on fire, Will Set Item On Fire if Set!'/>
|
||||
<flag-bit name='melt' comment='Designated for melting, if applicable'/>
|
||||
|
||||
<flag-bit name='hidden' comment='Hidden item'/>
|
||||
<flag-bit name='in_chest' comment='Stored in chest/part of well?'/>
|
||||
<flag-bit name='unk7' comment='unknown, unseen'/>
|
||||
<flag-bit name='artifact2' comment='Artifact ?'/>
|
||||
|
||||
<flag-bit name='unk8' comment='unknown, unseen, common'/>
|
||||
<flag-bit name='weight_computed'/>
|
||||
<flag-bit name='unk10' comment='unknown, unseen'/>
|
||||
<flag-bit name='unk11' comment='unknown, unseen'/>
|
||||
</bitfield-type>
|
||||
|
||||
<struct-type type-name='contaminant'>
|
||||
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
|
||||
<int32_t name='mat_index'/>
|
||||
<int16_t name='mat_state' comment='enum or document in text'/>
|
||||
<uint16_t name='temperature'/>
|
||||
<uint16_t name='temperature_fraction'/>
|
||||
<int32_t name='size' comment='1-24=spatter, 25-49=smear, 50-* = coating'/>
|
||||
<int16_t name='unk' comment='-1'/>
|
||||
<int16_t name='id'/>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='item_quality'>
|
||||
<enum-item name='Ordinary'/>
|
||||
<enum-item name='WellCrafted'/>
|
||||
<enum-item name='FinelyCrafted'/>
|
||||
<enum-item name='Superior'/>
|
||||
<enum-item name='Exceptional'/>
|
||||
<enum-item name='Masterful'/>
|
||||
<enum-item name='Artifact'/>
|
||||
</enum-type>
|
||||
|
||||
-- CORE ITEM
|
||||
|
||||
<class-type type-name='item' original-name='itemst' key-field='id'>
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.items.all $id $)</code-helper>
|
||||
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
<int16_t name='z'/>
|
||||
|
||||
<compound name='flags' type-name='item_flags'/>
|
||||
|
||||
<uint32_t name='age'/>
|
||||
<uint32_t name='id'/>
|
||||
|
||||
<stl-vector name='jobs'>
|
||||
<pointer>
|
||||
<int32_t name='unk1'/>
|
||||
<pointer name='job' type-name='job'/>
|
||||
<int32_t name='unk2'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='itemrefs'>
|
||||
<pointer type-name='general_ref'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='temp'>
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='unk2'/>
|
||||
<int16_t name='unk3'/>
|
||||
<int16_t name='unk4'/>
|
||||
<int16_t name='unk5'/>
|
||||
<int16_t name='spec_heat'/>
|
||||
<int16_t name='ignite_point'/>
|
||||
<int16_t name='heatdam_point'/>
|
||||
<int16_t name='colddam_point'/>
|
||||
<int16_t name='boiling_point'/>
|
||||
<int16_t name='melting_point'/>
|
||||
<int16_t name='fixed_temp'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='weight' comment='if flags.weight_computed'/>
|
||||
<int32_t name='weight_fraction' comment='1e-6'/>
|
||||
</class-type>
|
||||
|
||||
-- ACTUAL ITEM
|
||||
|
||||
<struct-type type-name='item_kill_info'>
|
||||
-- Important
|
||||
|
||||
<stl-vector name="events">
|
||||
<int32_t ref-target='history_event'/>
|
||||
</stl-vector>
|
||||
|
||||
-- Misc
|
||||
|
||||
<stl-vector name="killed_race">
|
||||
<int16_t ref-target='creature_raw'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="killed_caste">
|
||||
<int16_t ref-target='caste_raw' aux-value='$$._parent.killed_race[$._key]'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_30">
|
||||
<int32_t comment='-1'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_40">
|
||||
<int32_t comment='-1'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="killed_site">
|
||||
<int32_t ref-target='world_site'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="killed_undead">
|
||||
<bitfield base-type='uint16_t'>
|
||||
<flag-bit name='skeletal'/>
|
||||
<flag-bit name='zombie'/>
|
||||
<flag-bit name='ghostly'/>
|
||||
</bitfield>
|
||||
</stl-vector>
|
||||
<stl-vector name="killed_count" type-name='int32_t'/>
|
||||
|
||||
-- Wielders
|
||||
|
||||
<stl-vector name="slayers">
|
||||
<int32_t ref-target='historical_figure'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="slayer_kill_counts" type-name='int32_t'/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='item_actual' inherits-from='item' original-name='item_actualst'>
|
||||
<int32_t name='stack_size'/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(if (> $.stack_size 1) (fmt "stack: ~A" $.stack_size))
|
||||
(if (> $.wear 0) (fmt "wear: ~A" $.wear))
|
||||
</code-helper>
|
||||
|
||||
<pointer name='history_info'>
|
||||
<pointer>
|
||||
<pointer name='kills' type-name='item_kill_info'/>
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
</pointer>
|
||||
</pointer>
|
||||
|
||||
<pointer name='unk5'>
|
||||
<stl-vector/>
|
||||
</pointer>
|
||||
|
||||
<pointer name='contaminants'>
|
||||
<stl-vector>
|
||||
<pointer type-name='contaminant'/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
|
||||
<uint16_t name='temperature'/>
|
||||
<uint16_t name='temperature_fraction'/>
|
||||
|
||||
<int16_t name='wear'/>
|
||||
<int32_t name='wear_timer' comment='counts up to 806400'/>
|
||||
|
||||
<int32_t name='unk3' comment='-1'/>
|
||||
</class-type>
|
||||
|
||||
-- CRAFTED ITEM
|
||||
|
||||
<class-type type-name='item_crafted' inherits-from='item_actual'
|
||||
original-name='item_craftedst'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
$.quality
|
||||
(describe-obj (material-by-id $.matType $.matIndex))
|
||||
</code-helper>
|
||||
|
||||
<int16_t name='maker_race' ref-target='creature_raw'/>
|
||||
<enum base-type='int16_t' name='quality' type-name='item_quality'/>
|
||||
<enum base-type='int32_t' name='skill_used' type-name='job_skill'/>
|
||||
<int32_t name='maker' ref-target='historical_figure'/>
|
||||
<int32_t name='masterpiece_event' ref-target='history_event'/>
|
||||
</class-type>
|
||||
|
||||
-- CONSTRUCTED ITEM
|
||||
|
||||
<class-type type-name='item_constructed' inherits-from='item_crafted'
|
||||
original-name='item_constructedst'>
|
||||
<stl-vector name='improvements'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</class-type>
|
||||
|
||||
-- BODY COMPONENT
|
||||
|
||||
<class-type type-name='item_body_component' inherits-from='item_actual'
|
||||
original-name='item_body_componentst'>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int32_t name='unk_7c'/>
|
||||
<int32_t name='unk_80'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<int8_t name='unk_86'/>
|
||||
<int32_t name='unk_88'/>
|
||||
<int8_t name='unk_8c'/>
|
||||
<stl-vector name='unk_90'/>
|
||||
<padding size='44'/>
|
||||
<stl-vector name='unk_cc'/>
|
||||
<stl-vector name='unk_dc'/>
|
||||
<stl-vector name='unk_ec'/>
|
||||
<stl-vector name='unk_fc'/>
|
||||
<stl-vector name='unk_10c'/>
|
||||
<stl-vector name='unk_11c'/>
|
||||
<stl-vector name='unk_12c'/>
|
||||
<stl-vector name='unk_13c'/>
|
||||
<padding size='72'/>
|
||||
<stl-vector name='unk_194'/>
|
||||
<stl-vector name='unk_1a4'/>
|
||||
<stl-vector name='unk_1b4'/>
|
||||
<padding size='20'/>
|
||||
<stl-vector name='unk_1d8'/>
|
||||
<stl-vector name='unk_1e8'/>
|
||||
<stl-vector name='unk_1f8'/>
|
||||
<stl-vector name='unk_208'/>
|
||||
<stl-vector name='unk_218'/>
|
||||
<padding size='12'/>
|
||||
<static-array name='unk_234' count='19' type-name='int32_t'/>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int16_t name='unk_288'/>
|
||||
<int32_t name='unk_28c'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_corpsest' inherits-from='item_body_component'/>
|
||||
<class-type type-name='item_corpsepiecest' inherits-from='item_body_component'/>
|
||||
|
||||
-- CRITTER
|
||||
|
||||
<class-type type-name='item_critter' inherits-from='item_actual' original-name='item_critterst'>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<int32_t name='unk_7c'/>
|
||||
<int32_t name='unk_80'/>
|
||||
</class-type>
|
||||
|
||||
-- LIQUID/POWER
|
||||
|
||||
<bitfield-type type-name='item_matstate'>
|
||||
<flag-bit/>
|
||||
<flag-bit name='pressed'/>
|
||||
<flag-bit name='paste'/>
|
||||
</bitfield-type>
|
||||
|
||||
<class-type type-name='item_liquidpowder' inherits-from='item_actual'
|
||||
original-name='item_liquidpowderst'>
|
||||
<compound name='mat_state' type-name='item_matstate'/>
|
||||
<int32_t name='dimension'/>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_liquid' inherits-from='item_liquidpowder' original-name='item_liquidst'/>
|
||||
<class-type type-name='item_powder' inherits-from='item_liquidpowder' original-name='item_powderst'/>
|
||||
|
||||
-- MISC
|
||||
|
||||
<class-type type-name='item_barst' inherits-from='item_actual'>
|
||||
<int16_t name='subtype'/>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='dimension'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_smallgemst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_blocksst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_roughst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_boulderst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_woodst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_rockst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='sharpness'/>
|
||||
<int32_t name='unk_84'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_seedsst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='unk_80'/>
|
||||
<int32_t name='unk_84'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_skin_tannedst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='unk_80'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_meatst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_plantst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_leavesst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_cheesest' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_globst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
<compound name='mat_state' type-name='item_matstate'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_remainsst' inherits-from='item_actual'>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_fishst' inherits-from='item_actual'>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_fish_rawst' inherits-from='item_actual'>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_foodst' inherits-from='item_crafted'>
|
||||
<pointer name='subtype' type-name='itemdef_foodst'/>
|
||||
<int32_t name='unk_94'/>
|
||||
<int16_t name='unk_98'/>
|
||||
<stl-vector name='unk_9c'/>
|
||||
<int32_t name='rot_timer'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_verminst' inherits-from='item_critter'/>
|
||||
<class-type type-name='item_petst' inherits-from='item_critter'/>
|
||||
|
||||
<class-type type-name='item_drinkst' inherits-from='item_liquid'/>
|
||||
<class-type type-name='item_powder_miscst' inherits-from='item_powder'/>
|
||||
<class-type type-name='item_liquid_miscst' inherits-from='item_liquid'>
|
||||
<int32_t name='unk_88'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_threadst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int16_t name='dyeColor'/>
|
||||
<int32_t name='unk_84'/>
|
||||
<int32_t name='unk_88'/>
|
||||
<int32_t name='unk_8c'/>
|
||||
<int16_t name='unk_90'/>
|
||||
<int16_t name='unk_92'/>
|
||||
<int32_t name='unk_94'/>
|
||||
<int8_t name='unk_98'/>
|
||||
<int32_t name='dimension'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_eggst' inherits-from='item_actual'>
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<int32_t name='unk_7c'/>
|
||||
<stl-vector name='eggMatType' type-name='int16_t'/>
|
||||
<stl-vector name='eggMatIndex' type-name='int32_t'/>
|
||||
<padding size='44'/>
|
||||
<compound name='unk_cc'>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int16_t/>
|
||||
</compound>
|
||||
<int32_t/>
|
||||
<int32_t name='size'/>
|
||||
</class-type>
|
||||
|
||||
-- CONSTRUCTED
|
||||
|
||||
<class-type type-name='item_doorst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_floodgatest' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_bedst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_chairst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_chainst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_flaskst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_gobletst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_windowst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_cagest' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_bucketst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_animaltrapst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_tablest' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_coffinst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_boxst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_armorstandst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_weaponrackst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_cabinetst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_amuletst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_scepterst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_crownst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_ringst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_earringst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_braceletst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_gemst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_anvilst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_backpackst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_quiverst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_catapultpartsst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_ballistapartsst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_trappartsst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_pipe_sectionst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_hatch_coverst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_gratest' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_quernst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_millstonest' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_splintst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_crutchst' inherits-from='item_constructed'/>
|
||||
<class-type type-name='item_traction_benchst' inherits-from='item_constructed'/>
|
||||
|
||||
<class-type type-name='item_instrumentst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_instrumentst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_toyst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_toyst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_armorst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_armorst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_shoesst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_shoesst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_shieldst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_shieldst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_helmst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_helmst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_glovesst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_glovesst'/>
|
||||
<df-flagarray name='flags' comment='1 right, 2 left'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_pantsst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_pantsst'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_siegeammost' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_siegeammost'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_weaponst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_weaponst'/>
|
||||
<int32_t name='sharpness'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_ammost' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_ammost'/>
|
||||
<int32_t name='sharpness'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_trapcompst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_trapcompst'/>
|
||||
<int32_t name='sharpness'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_toolst' inherits-from='item_constructed'>
|
||||
<pointer name='subtype' type-name='itemdef_toolst'/>
|
||||
<int32_t name='sharpness'/>
|
||||
<int32_t name='unk_a8'/>
|
||||
<int16_t name='unk_ac'/>
|
||||
<int16_t name='unk_ae'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_barrelst' inherits-from='item_constructed'>
|
||||
<int32_t name='stockpile' ref-target='building'/>
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_binst' inherits-from='item_constructed'>
|
||||
<int32_t name='stockpile' ref-target='building'/>
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_statuest' inherits-from='item_constructed'>
|
||||
<int32_t name='unk_a0'/>
|
||||
<int16_t name='unk_a4'/>
|
||||
<stl-string name='description'/>
|
||||
</class-type>
|
||||
<class-type type-name='item_figurinest' inherits-from='item_constructed'>
|
||||
<int32_t name='unk_a0'/>
|
||||
<int16_t name='unk_a4'/>
|
||||
<stl-string name='description'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_slabst' inherits-from='item_constructed'>
|
||||
<stl-string name='description'/>
|
||||
<int32_t name='unk_bc'/>
|
||||
<int16_t name='unk_c0'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_orthopedic_castst' inherits-from='item_constructed'>
|
||||
<stl-string name='unk_a0'/>
|
||||
<stl-string name='unk_bc'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_coinst' inherits-from='item_constructed'>
|
||||
<int16_t name='unk_a0'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_totemst' inherits-from='item_constructed'>
|
||||
<int16_t name='unk_a0'/>
|
||||
<int16_t name='unk_a2'/>
|
||||
<int16_t name='unk_a4'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_clothst' inherits-from='item_constructed'>
|
||||
<int32_t name='dimension'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='item_ballistaarrowheadst' inherits-from='item_actual'>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,265 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='meeting_diplomat'>
|
||||
<int32_t name='unk1' comment='uninitialized'/>
|
||||
<pointer name='person1' type-name='unit' comment='diplomat'/>
|
||||
<pointer name='person2' type-name='unit' comment='count'/>
|
||||
<pointer name='place' type-name='building'/>
|
||||
<int16_t name='unk2' comment='1'/>
|
||||
<int8_t name='unk3' comment='3'/>
|
||||
<int16_t name='unk4' comment='0'/>
|
||||
<int32_t name='unk5' comment='-1'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='meeting_pet' key-field='name'>
|
||||
<int32_t name='unk0' comment='uninitialized'/>
|
||||
<int32_t name='unk1' comment='-1'/>
|
||||
<int32_t name='pet_id' ref-target='unit'/>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
<int32_t name='unk3'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='meeting_ref'>
|
||||
<int32_t name='unk1'
|
||||
comment='4 person, 7 pet (pet), 8 pet (owner)'/>
|
||||
<pointer name='ptr' comment='type varies'/>
|
||||
<int32_t name='unk2' comment='0'/>
|
||||
</struct-type>
|
||||
|
||||
<bitfield-type type-name='job_material_category' base-type='uint32_t'>
|
||||
<flag-bit name='plant'/>
|
||||
<flag-bit name='wood'/>
|
||||
<flag-bit name='cloth'/>
|
||||
<flag-bit name='silk'/>
|
||||
<flag-bit name='leather'/>
|
||||
<flag-bit name='bone'/>
|
||||
<flag-bit name='shell'/>
|
||||
<flag-bit name='wood2'/>
|
||||
<flag-bit name='soap'/>
|
||||
<flag-bit name='tooth'/>
|
||||
<flag-bit name='horn'/>
|
||||
<flag-bit name='pearl'/>
|
||||
<flag-bit name='yarn'/>
|
||||
</bitfield-type>
|
||||
|
||||
<bitfield-type type-name='job_item_category' base-type='uint32_t'>
|
||||
<flag-bit name='unk1'/>
|
||||
<flag-bit name='unk2'/>
|
||||
<flag-bit name='furniture'/>
|
||||
<flag-bit name='unk8'/>
|
||||
<flag-bit name='unk16'/>
|
||||
<flag-bit name='unk32'/>
|
||||
<flag-bit name='ammo'/>
|
||||
<flag-bit name='unk128'/>
|
||||
<flag-bit name='unk256'/>
|
||||
<flag-bit name='unk512'/>
|
||||
<flag-bit name='finished_goods'/>
|
||||
</bitfield-type>
|
||||
|
||||
<struct-type type-name='job_list_link' key-field='job'>
|
||||
<pointer name='job' type-name='job'/>
|
||||
<pointer name='prev' type-name='job_list_link'/>
|
||||
<pointer name='next' type-name='job_list_link'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='job' key-field='id'>
|
||||
<int32_t name='id'/>
|
||||
<pointer name='list_link' type-name='job_list_link'/>
|
||||
<enum name='job_id' base-type='int16_t' type-name='job_type'/>
|
||||
<int32_t name='unk2'/>
|
||||
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
<int16_t name='z'/>
|
||||
|
||||
<int32_t name='completion_timer' comment='-1 per 10 frames'/>
|
||||
|
||||
<uint16_t name='unk4a'/>
|
||||
<uint16_t name='unk4b'/>
|
||||
|
||||
<bitfield name='flags' base-type='uint32_t'>
|
||||
<flag-bit name='repeat'/>
|
||||
<flag-bit name='suspend'/>
|
||||
</bitfield>
|
||||
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
<int16_t name='unk5'/>
|
||||
<int16_t name='unk6'/>
|
||||
<int16_t name='item_subtype'/>
|
||||
<int32_t name='unk7'/>
|
||||
<int32_t name='unk8'/>
|
||||
|
||||
<compound name='job_material_category' type-name='job_material_category'/>
|
||||
|
||||
<stl-string name='reaction_name'/>
|
||||
|
||||
<int32_t name='unk9'/>
|
||||
<int32_t name='unk10'/>
|
||||
|
||||
<stl-vector name='items'>
|
||||
<pointer>
|
||||
<pointer name='item' type-name='item'/>
|
||||
<int32_t name='unk1' comment='1 for reagents, 2 for build materials'/>
|
||||
<int32_t name='to_bring'
|
||||
comment='0 immediately once taken to be brought'/>
|
||||
<int32_t name='job_item_idx'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk11' type-name='pointer'/>
|
||||
|
||||
<stl-vector name='references'>
|
||||
<pointer type-name='general_ref'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='job_items'>
|
||||
<pointer type-name='job_item'/>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='job_item'>
|
||||
<enum base-type='int16_t' name='itemType' type-name='item_type'/>
|
||||
<int16_t name='itemSubtype' refers-to='(item-subtype-target $$._parent.itemType $)'/>
|
||||
<int16_t name='matType' ref-target='material' aux-value='$$.matIndex'/>
|
||||
<int32_t name='matIndex'/>
|
||||
|
||||
<bitfield name='flags1' base-type='uint32_t'/>
|
||||
|
||||
<int32_t name='count'/>
|
||||
<int16_t name='unk1'/>
|
||||
|
||||
<bitfield name='flags2' base-type='uint32_t'/>
|
||||
<int32_t name='unk2'/>
|
||||
<bitfield name='flags3' base-type='uint32_t'/>
|
||||
<int32_t name='unk3'/>
|
||||
|
||||
<int32_t name='metal_ore'/>
|
||||
|
||||
<stl-string name='reaction_class'/>
|
||||
<stl-string name='has_material_reaction_product'/>
|
||||
|
||||
<int32_t name='unk4'/>
|
||||
<int32_t name='reagent_index'/>
|
||||
|
||||
<stl-vector type-name='int32_t' name='contains' comment='used with custom reactions'/>
|
||||
|
||||
<int32_t name='unk5'/>
|
||||
<int16_t name='has_tool_use'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='manager_order'>
|
||||
<enum name='job_id' base-type='int16_t' type-name='job_type'/>
|
||||
<int16_t name="unk_2"/>
|
||||
|
||||
<int16_t name="item_subtype"/>
|
||||
|
||||
<stl-string name="reaction_name"/>
|
||||
|
||||
<int16_t name="mat_type" ref-target='material' aux-value='$$.mat_index'/>
|
||||
<int32_t name="mat_index"/>
|
||||
|
||||
<compound name="item_category" type-name='job_item_category'/>
|
||||
<int32_t name="unk_18"/>
|
||||
<compound name="material_category" type-name='job_material_category'/>
|
||||
|
||||
<int16_t name="amount_left"/>
|
||||
<int16_t name="amount_total"/>
|
||||
<int32_t name="is_validated"/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='mandate'>
|
||||
<pointer name='unit' type-name='unit'/>
|
||||
|
||||
<int16_t name='mode' comment='0 export, 1 make, 2 guild jobs'/>
|
||||
|
||||
<enum base-type='int16_t' name='item_type' type-name='item_type'/>
|
||||
<int16_t name='item_subtype' refers-to='(item-subtype-target $$._parent.item_type $)'/>
|
||||
|
||||
<int16_t name='mat_type' ref-target='material' aux-value='$$.mat_index'/>
|
||||
<int32_t name='mat_index'/>
|
||||
|
||||
<int16_t name='amount_total'/>
|
||||
<int16_t name='amount_remaining'/>
|
||||
|
||||
<int32_t name='timeout_counter' comment='counts once per 10 frames'/>
|
||||
<int32_t name='timeout_limit' comment='once counter passes limit, mandate ends'/>
|
||||
|
||||
<int16_t name='unk2'/>
|
||||
<int16_t name='unk3'/>
|
||||
<int32_t name='unk4'/>
|
||||
<uint8_t name='unk5'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='activity_entry' key-field='id'>
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.activities.all $id $)</code-helper>
|
||||
|
||||
<int32_t name='id'/>
|
||||
<int16_t name='is_individual'/>
|
||||
<stl-vector name='events'>
|
||||
<pointer type-name='activity_event'/>
|
||||
</stl-vector>
|
||||
<int32_t name='unk2'/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='activity_event' original-name='activity_eventst'>
|
||||
<int32_t name='event_id'
|
||||
comment='mostly, but not always, the index in activity.events'/>
|
||||
<int32_t name='activity_id' ref-target='activity_entry'/>
|
||||
|
||||
-- Guess:
|
||||
<int32_t name='subevent_id' comment='-1 unless subevent'/>
|
||||
<int32_t name='num_subevents' comment='0 for ind.drill, 2 for all in training session'/>
|
||||
|
||||
<stl-vector name='hist_figure_ids'>
|
||||
<int32_t ref-target='historical_figure'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='participant_ids'>
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
-- Either empty, or same as above:
|
||||
<stl-vector name='hist_figure_ids2'>
|
||||
<int32_t ref-target='historical_figure'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='participant_ids2'>
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
-- These are equal to the ones above:
|
||||
<int32_t name='activity_id2' ref-target='activity_entry'/>
|
||||
<int32_t name='event_id2'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='activity_event_individual_skill_drillst' inherits-from='activity_event'>
|
||||
<int32_t name='building_id' ref-target='building'/>
|
||||
<int32_t name='unk5'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='activity_event_training_sessionst' inherits-from='activity_event'>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='activity_event_combat_trainingst' inherits-from='activity_event'>
|
||||
<int32_t name='building_id' ref-target='building'/>
|
||||
<int32_t name='hist_figure_id' ref-target='historical_figure'/>
|
||||
<int32_t name='unit_id' ref-target='unit'/>
|
||||
<int32_t name='unk5'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='activity_event_skill_demonstrationst' inherits-from='activity_event'>
|
||||
<int32_t name='building_id' ref-target='building'/>
|
||||
<int32_t name='hist_figure_id' ref-target='historical_figure'/>
|
||||
<int32_t name='unit_id' ref-target='unit'/>
|
||||
<int16_t name='unk5'/>
|
||||
<int32_t name='unk6'/>
|
||||
<int32_t name='unk7'/>
|
||||
<int32_t name='unk8'/>
|
||||
<int32_t name='unk9'/>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,108 @@
|
||||
<data-definition>
|
||||
<enum-type type-name='language_word_flags'>
|
||||
<enum-item name='FRONT_COMPOUND_NOUN_SING'/>
|
||||
<enum-item name='FRONT_COMPOUND_NOUN_PLUR'/>
|
||||
<enum-item name='FRONT_COMPOUND_ADJ'/>
|
||||
<enum-item name='FRONT_COMPOUND_PREFIX'/>
|
||||
<enum-item name='REAR_COMPOUND_NOUN_SING'/>
|
||||
<enum-item name='REAR_COMPOUND_NOUN_PLUR'/>
|
||||
<enum-item name='REAR_COMPOUND_ADJ'/>
|
||||
<enum-item name='THE_NOUN_SING'/>
|
||||
<enum-item name='THE_NOUN_PLUR'/>
|
||||
<enum-item name='THE_COMPOUND_NOUN_SING'/>
|
||||
<enum-item name='THE_COMPOUND_NOUN_PLUR'/>
|
||||
<enum-item name='THE_COMPOUND_ADJ'/>
|
||||
<enum-item name='THE_COMPOUND_PREFIX'/>
|
||||
<enum-item name='OF_NOUN_SING'/>
|
||||
<enum-item name='OF_NOUN_PLUR'/>
|
||||
<enum-item name='STANDARD_VERB'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='language_word' key-field='word'>
|
||||
<stl-string name='word'/>
|
||||
|
||||
<code-helper name='find-instance'>$global.world.raws.language_words[$]</code-helper>
|
||||
|
||||
<compound name='forms' is-union='true'>
|
||||
<static-array type-name='stl-string' name='all' count='9'/>
|
||||
<compound>
|
||||
<stl-string name='noun'/>
|
||||
<stl-string name='noun_plural'/>
|
||||
|
||||
<stl-string name='adjective'/>
|
||||
|
||||
<stl-string name='prefix'/>
|
||||
|
||||
<stl-string name='verb'/>
|
||||
<stl-string name='verb_3rd_person'/>
|
||||
<stl-string name='verb_past'/>
|
||||
<stl-string name='verb_passive'/>
|
||||
<stl-string name='verb_gerund'/>
|
||||
</compound>
|
||||
</compound>
|
||||
|
||||
<uint8_t name='adj_dist'/>
|
||||
|
||||
<padding size='7' comment='looks like garbage'/>
|
||||
|
||||
<df-flagarray name='flags' index-enum='language_word_flags'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='language_translation' key-field='name'>
|
||||
<stl-string name='name'/>
|
||||
|
||||
<code-helper name='find-instance'>$global.world.raws.translations[$]</code-helper>
|
||||
|
||||
<stl-vector name='unknown1' comment='empty'/>
|
||||
<stl-vector name='unknown2' comment='empty'/>
|
||||
|
||||
<stl-vector name='words' index-refers-to='$global.world.raws.language_words[$]'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='language_symbol'>
|
||||
<stl-string name='name'/>
|
||||
|
||||
<stl-vector name='unknown' comment='empty'/>
|
||||
|
||||
<stl-vector name='words'>
|
||||
<int32_t ref-target='language_word'/>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='language_name'>
|
||||
<stl-string name='first_name'/>
|
||||
<stl-string name='nickname'/>
|
||||
|
||||
<static-array name='words' count='7'>
|
||||
<int32_t ref-target='language_word'/>
|
||||
</static-array>
|
||||
<static-array name='parts_of_speech' count='7' type-name='int16_t'/>
|
||||
|
||||
<int32_t name='language' ref-target='language_translation'/>
|
||||
<int16_t name='unknown'/>
|
||||
|
||||
<bool name='has_name'/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(when $.has_name
|
||||
(let* ((nick $.nickname)
|
||||
(language $global.world.raws.translations[$.language])
|
||||
(fname $.first_name)
|
||||
(lwords $language.words))
|
||||
(fmt "~:(~@[~A ~]~@['~A' ~]~{~A~^ ~}~)"
|
||||
(if (> (length fname) 0) fname)
|
||||
(if (> (length nick) 0) nick)
|
||||
(loop for i from 0 below 7 for word = $.words[i]
|
||||
when (>= word 0) collect $lwords[word].value))))
|
||||
</code-helper>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,317 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='historical_entity' key-field='id'>
|
||||
<int16_t name='unk1'/>
|
||||
<int32_t name='id' comment='index in the array'/>
|
||||
<pointer name='entity_raw'/>
|
||||
|
||||
<int32_t name='save_file_id' comment='changes once has 100 entries'/>
|
||||
<int16_t name='next_member_idx'/>
|
||||
|
||||
<compound name='name' type-name='language_name'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.entities.all $id $)</code-helper>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
(describe-obj (find-creature $.race))
|
||||
</code-helper>
|
||||
|
||||
<int16_t name='race' ref-target='creature_raw'/>
|
||||
<int32_t name='unk5'/>
|
||||
|
||||
<static-array name='unk6' count='2'>
|
||||
<stl-vector>
|
||||
<pointer>
|
||||
<int16_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int16_t name='unk3'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unit_ids'>
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk7' type-name='int32_t'/>
|
||||
|
||||
<stl-vector name='nemesis_ids'>
|
||||
<int32_t ref-target='historical_figure'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='unknown1'>
|
||||
<static-array name='unk8' count='15'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk9' count='12'>
|
||||
<stl-vector name='unk1' type-name='int16_t'/>
|
||||
<stl-vector name='unk2' type-name='int32_t'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk10' count='3'>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk11' count='21'>
|
||||
<stl-vector name='unk1' type-name='int16_t'/>
|
||||
<stl-vector name='unk2' type-name='int32_t'/>
|
||||
</static-array>
|
||||
|
||||
<compound name='unk12'>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector name='unk6e8' type-name='int32_t' comment='empty'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t' comment='empty'/>
|
||||
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector name='unk748' type-name='int16_t' comment='empty'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
|
||||
<stl-vector name='unk798' type-name='int32_t' comment='empty'/>
|
||||
<stl-vector name='unk7a8' type-name='int32_t' comment='empty'/>
|
||||
</compound>
|
||||
|
||||
<static-array name='unk13' count='3'>
|
||||
<int16_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk14' type-name='pointer' comment='empty'/>
|
||||
|
||||
<static-array name='unk15' count='24' type-name='int16_t'/>
|
||||
|
||||
<stl-vector name='unk16' type-name='int16_t'/>
|
||||
<stl-vector name='unk17' type-name='int32_t'/>
|
||||
<stl-vector name='unk18' type-name='int16_t'/>
|
||||
<stl-vector name='unk19' type-name='int8_t'/>
|
||||
<stl-vector name='unk20' type-name='int8_t'/>
|
||||
<stl-vector name='unk21' type-name='int8_t'/>
|
||||
<stl-vector name='unk22' type-name='int8_t'/>
|
||||
<stl-vector name='unk23' type-name='int16_t'/>
|
||||
<stl-vector name='unk24' type-name='int16_t'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='uniforms'>
|
||||
<pointer type-name='entity_uniform'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='unknown1b'>
|
||||
<int16_t name='unk26a'/>
|
||||
<int16_t name='unk26b'/>
|
||||
<int16_t name='unk27'/>
|
||||
<int32_t name='unk28'/>
|
||||
<int32_t name='unk29'/>
|
||||
<int32_t name='unk30'/>
|
||||
<int32_t name='unk31'/>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<stl-vector name='unk32a' type-name='pointer' comment='empty'/>
|
||||
<stl-vector name='unk32b' type-name='int32_t'/>
|
||||
<stl-vector name='unk32c' type-name='int32_t'/>
|
||||
<stl-vector name='unk32d' type-name='int32_t'/>
|
||||
<stl-vector name='unk32e' type-name='pointer'/>
|
||||
<stl-vector name='unk32f' type-name='pointer'/>
|
||||
|
||||
<int16_t name='unk33'/>
|
||||
|
||||
<stl-vector name='unk34a' type-name='int16_t'/>
|
||||
<stl-vector name='unk34b' type-name='int16_t'/>
|
||||
<stl-vector name='unk34c' type-name='int16_t'/>
|
||||
<stl-vector name='unk34d' type-name='pointer' comment='empty'/>
|
||||
<stl-vector name='unk34e' type-name='pointer' comment='empty'/>
|
||||
<stl-vector name='unk34f' type-name='pointer'/>
|
||||
<stl-vector name='unk34g' type-name='pointer'/>
|
||||
<stl-vector name='unk34h' type-name='pointer'/>
|
||||
|
||||
<int32_t name='unk35'/>
|
||||
<stl-vector name='unk36' type-name='pointer'/>
|
||||
<int32_t name='unk37'/>
|
||||
<stl-vector name='unk38' type-name='pointer'/>
|
||||
<int32_t name='unk39'/>
|
||||
<stl-vector name='unk40' type-name='pointer'/>
|
||||
<stl-vector name='unk41' type-name='int32_t'/>
|
||||
<int32_t name='unk42'/>
|
||||
<stl-vector name='unk43' type-name='pointer' comment='empty'/>
|
||||
<int32_t name='unk44'/>
|
||||
<stl-vector name='unk45' type-name='pointer'/>
|
||||
|
||||
<pointer name='unk46'/>
|
||||
<int16_t name='unk47'/>
|
||||
<int32_t name='unk48'/>
|
||||
|
||||
<static-array name='unk49' count='15' type-name='int32_t'/>
|
||||
|
||||
<stl-vector name='unk50' type-name='pointer' comment='empty'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='hist_figures'>
|
||||
<pointer type-name='historical_figure'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='nemesis'>
|
||||
<pointer type-name='nemesis_record'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='unknown2'>
|
||||
<stl-vector name='unk1' type-name='int16_t'/>
|
||||
<stl-vector name='unk2' type-name='int32_t'/>
|
||||
<stl-vector name='unk3' type-name='int16_t'/>
|
||||
<stl-vector name='unk4' type-name='int32_t'/>
|
||||
|
||||
<static-array name='unk5' count='30'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk6' count='25'>
|
||||
<stl-vector type-name='pointer'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk6b' count='6'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk8' type-name='int32_t'/>
|
||||
|
||||
<int32_t name='unk9'/>
|
||||
<stl-vector name='unk10' type-name='int16_t'/>
|
||||
|
||||
<pointer name='unk11'/>
|
||||
<int16_t name='unk12a' comment='-1'/>
|
||||
<int16_t name='unk12b' comment='uninitialized'/>
|
||||
<bool name='unk13' comment='0'/>
|
||||
<int32_t name='unk14' comment='0'/>
|
||||
<int32_t name='unk15' comment='uninitialized'/>
|
||||
<int32_t name='unk16' comment='uninitialized'/>
|
||||
<int16_t name='unk17' comment='0'/>
|
||||
|
||||
<stl-vector name='unk18' type-name='pointer' comment='empty'/>
|
||||
<stl-vector name='unk19' type-name='pointer' comment='empty'/>
|
||||
|
||||
<int16_t name='unk20' comment='0'/>
|
||||
<int32_t name='unk21' comment='0'/>
|
||||
<int32_t name='unk22' comment='0'/>
|
||||
<int32_t name='unk23' comment='0'/>
|
||||
|
||||
<stl-vector name='unk24' type-name='pointer' comment='empty'/>
|
||||
<stl-vector name='unk25' type-name='pointer' comment='empty'/>
|
||||
|
||||
<static-array name='unk26' count='173' type-name='int32_t' comment='Uninitialized'/>
|
||||
<static-array name='unk27' count='15' type-name='int32_t' comment='0'/>
|
||||
|
||||
<stl-vector name='unk28' type-name='pointer' comment='empty'/>
|
||||
</compound>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='entity_population' key-field='id'>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.entity_populations $id $)</code-helper>
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
</code-helper>
|
||||
|
||||
<stl-vector name='unk1'>
|
||||
<int16_t ref-target='creature_raw'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk2' type-name='int32_t'/>
|
||||
<stl-vector name='unk3' type-name='int32_t'/>
|
||||
<stl-vector name='unk4'>
|
||||
<pointer>
|
||||
<static-array count='3'>
|
||||
<stl-vector>
|
||||
<pointer>
|
||||
<int32_t name='idx'/>
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<int32_t name='unk5'/>
|
||||
<int32_t name='unk6'/>
|
||||
<int32_t name='id'/>
|
||||
<bool name='unk7' comment='unk6 == -1'/>
|
||||
<int32_t name='civ_id' ref-target='historical_entity'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='nemesis_record' key-field='id'>
|
||||
<int32_t name='id' comment='sequential index in the array'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.nemesis.all $id $)</code-helper>
|
||||
|
||||
<int32_t name='unit_id' ref-target='unit'/>
|
||||
|
||||
<int32_t name='save_file_id' comment='unit-*.dat'/>
|
||||
<int16_t name='member_idx' comment='index in the file'/>
|
||||
|
||||
<pointer name='figure' type-name='historical_figure'/>
|
||||
<pointer name='unit' type-name='unit'/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.figure)
|
||||
</code-helper>
|
||||
|
||||
<int32_t name='unk6' comment='-1'/>
|
||||
<stl-vector name='unk7' type-name='pointer' comment='empty'/>
|
||||
<int16_t name='unk10' comment='-1'/>
|
||||
<int32_t name='unk11' comment='-1'/>
|
||||
<int32_t name='unk12' comment='-1'/>
|
||||
<df-flagarray name='flags'/>
|
||||
<stl-vector name='unk13' type-name='pointer' comment='empty'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='artifact_record' key-field='id'>
|
||||
<int32_t name='id'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.artifacts.all $id $)</code-helper>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
</code-helper>
|
||||
|
||||
<compound name='name' type-name='language_name'/>
|
||||
<pointer name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
<pointer name='item' type-name='item'/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='history_event' original-name='history_eventst' key-field='id'>
|
||||
<int32_t name='year'/>
|
||||
<int32_t name='seconds'/>
|
||||
<df-flagarray name='flags'/>
|
||||
<int32_t name='id'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.history.events $id $)</code-helper>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,97 @@
|
||||
<data-definition>
|
||||
-- MACHINE
|
||||
|
||||
<class-type type-name='machine' original-name='machinest' key-field='id'>
|
||||
<int32_t name="x"/>
|
||||
<int32_t name="y"/>
|
||||
<int32_t name="z"/>
|
||||
|
||||
<int32_t name="id"/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.machines.all $id $)</code-helper>
|
||||
|
||||
<stl-vector name="components">
|
||||
<pointer>
|
||||
<int32_t name="building_id" ref-target='building'/>
|
||||
<stl-vector name="connections" type-name='int32_t'
|
||||
comment='indices into the same component vector'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name="cur_power"/>
|
||||
<int32_t name="min_power"/>
|
||||
|
||||
<int8_t name='visual_phase'/>
|
||||
<int16_t name="phase_timer"/>
|
||||
|
||||
<int32_t name="is_active"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='machine_standardst' inherits-from='machine'>
|
||||
</class-type>
|
||||
|
||||
-- MACHINE COMPONENT BUILDINGS
|
||||
|
||||
<class-type type-name='building_axle_horizontalst' inherits-from='building_actual'>
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_fc"/>
|
||||
<bool name='is_vertical'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_axle_verticalst' inherits-from='building_actual'>
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_fc"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_gear_assemblyst' inherits-from='building_actual'>
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_fc"/>
|
||||
<bitfield name='gear_flags'>
|
||||
<flag-bit name='disengaged'/>
|
||||
</bitfield>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_windmillst' inherits-from='building_actual'>
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_fc"/>
|
||||
|
||||
<int16_t name="orient_angle"/>
|
||||
<int16_t name="orient_mode"/>
|
||||
|
||||
<int16_t name="is_working"/>
|
||||
<bool name="visual_rotated"/>
|
||||
<int16_t name="rotate_timer"/>
|
||||
|
||||
<int16_t name="orient_timer"/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_water_wheelst' inherits-from='building_actual'>
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_fc"/>
|
||||
<bool name='is_vertical'/>
|
||||
<bool name='gives_power'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='building_screw_pumpst' inherits-from='building_actual'>
|
||||
<int32_t name="machine_id" ref-target='machine'/>
|
||||
<int32_t name="unk_fc"/>
|
||||
|
||||
<uint8_t name="unk_100"/>
|
||||
|
||||
<enum name='direction' base-type='int8_t'>
|
||||
<enum-item name='FromNorth'/>
|
||||
<enum-item name='FromEast'/>
|
||||
<enum-item name='FromSouth'/>
|
||||
<enum-item name='FromWest'/>
|
||||
</enum>
|
||||
|
||||
<bool name='pump_manually'/>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,247 @@
|
||||
<data-definition>
|
||||
<enum-type type-name='tile_traffic'>
|
||||
<enum-item name='Normal'/>
|
||||
<enum-item name='Low'/>
|
||||
<enum-item name='High'/>
|
||||
<enum-item name='Restricted'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='tile_dig_designation'>
|
||||
<enum-item name='No' comment='no designation'/>
|
||||
<enum-item name='Default' comment='dig walls, remove stairs and ramps, gather plants, fell trees'/>
|
||||
<enum-item name='UpDownStair'/>
|
||||
<enum-item name='Channel'/>
|
||||
<enum-item name='Ramp'/>
|
||||
<enum-item name='DownStair'/>
|
||||
<enum-item name='UpStair'/>
|
||||
</enum-type>
|
||||
|
||||
<enum-type type-name='tile_liquid'>
|
||||
<enum-item name='Water'/>
|
||||
<enum-item name='Magma'/>
|
||||
</enum-type>
|
||||
|
||||
<bitfield-type type-name='tile_designation'>
|
||||
<flag-bit name='flow_size' count='3' comment='liquid amount'/>
|
||||
<flag-bit name='pile' comment='stockpile?'/>
|
||||
<flag-bit name='dig' count='3'
|
||||
refers-to='(enum-to-key $tile_dig_designation $)'/>
|
||||
<flag-bit name='smooth' count='2'/>
|
||||
<flag-bit name='hidden'/>
|
||||
|
||||
<flag-bit name='geolayer_index' count='4'/>
|
||||
<flag-bit name='light'/>
|
||||
<flag-bit name='subterranean'/>
|
||||
<flag-bit name='outside'/>
|
||||
<flag-bit name='biome' count='4'/>
|
||||
|
||||
<flag-bit name='liquid_type'
|
||||
refers-to='(enum-to-key $tile_liquid $)'/>
|
||||
|
||||
<flag-bit name='water_table' comment='aquifer'/>
|
||||
<flag-bit name='rained'/>
|
||||
|
||||
<flag-bit name='traffic' count='2'
|
||||
refers-to='(enum-to-key $tile_traffic $)'/>
|
||||
|
||||
<flag-bit name='flow_forbid'/>
|
||||
<flag-bit name='liquid_static'/>
|
||||
<flag-bit name='feature_local'/>
|
||||
<flag-bit name='feature_global'/>
|
||||
<flag-bit name='water_stagnant'/>
|
||||
<flag-bit name='water_salt'/>
|
||||
</bitfield-type>
|
||||
|
||||
<bitfield-type type-name='tile_occupancy'>
|
||||
<flag-bit name='building' count='3'/>
|
||||
<flag-bit name='unit' comment='standing'/>
|
||||
<flag-bit name='unit_grounded' comment='prone'/>
|
||||
<flag-bit name='item'/>
|
||||
<flag-bit name='edge_flow_in'
|
||||
comment='if set on an edge tile, water or magma will flow in'/>
|
||||
<flag-bit name='moss'/>
|
||||
<flag-bit name='arrow_color' count='4'/>
|
||||
<flag-bit name='arrow_variant'/>
|
||||
<flag-bit name='unk13'/>
|
||||
<flag-bit name='monster_lair'
|
||||
comment='A monster lair. Items placed wont be moved.'/>
|
||||
<flag-bit name='no_grow'
|
||||
comment='seems to be set on terrain tiles where grass growth is impossible'/>
|
||||
</bitfield-type>
|
||||
|
||||
<enum-type type-name='block_flags'>
|
||||
<enum-item name='Designated' comment='for jobs etc'/>
|
||||
<enum-item name='UpdateTemperature'/>
|
||||
<enum-item name='UpdateLiquid'/>
|
||||
<enum-item name='UpdateLiquidTwice'
|
||||
comment='Protects UpdateLiquid from being cleared the first time.'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='block_burrow'>
|
||||
<int32_t name='id' ref-target='burrow'/>
|
||||
|
||||
<static-array name='tile_bitmask' count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
|
||||
<pointer name="link" type-name='block_burrow_link'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='block_burrow_link'>
|
||||
<pointer name='item' type-name='block_burrow'/>
|
||||
<pointer name='prev' type-name='block_burrow_link'/>
|
||||
<pointer name='next' type-name='block_burrow_link'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='map_block'>
|
||||
<df-flagarray name='flags' index-enum='block_flags'/>
|
||||
|
||||
<stl-vector name='block_events'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='block_burrows' type-name='block_burrow_link'/>
|
||||
|
||||
<int32_t name='local_feature'/>
|
||||
<int32_t name='global_feature'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int32_t name='unk3' comment='undef'/>
|
||||
<int32_t name='unk4'/>
|
||||
<int32_t name='unk5'/>
|
||||
|
||||
<stl-vector name='items'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='effects'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='unk7'/>
|
||||
<int32_t name='unk8' comment='undef'/>
|
||||
|
||||
<stl-vector name='plants'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<int16_t name='map_x'/>
|
||||
<int16_t name='map_y'/>
|
||||
<int16_t name='map_z'/>
|
||||
<int16_t name='region_x'/>
|
||||
<int16_t name='region_y'/>
|
||||
|
||||
<static-array name='tiletype' count='16'>
|
||||
<static-array count='16'>
|
||||
<int16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='designation' count='16'>
|
||||
<static-array count='16'>
|
||||
<compound type-name='tile_designation'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='occupancy' count='16'>
|
||||
<static-array count='16'>
|
||||
<compound type-name='tile_occupancy'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk9' count='16'>
|
||||
<static-array count='16'>
|
||||
<int8_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='pathfinding' count='16'>
|
||||
<static-array count='16'>
|
||||
<int32_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='unk10' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='unk11' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='unk12' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<static-array name='temperature_1' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='temperature_2' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<static-array name='unk13' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
<static-array name='unk14' count='16'>
|
||||
<static-array count='16'>
|
||||
<uint16_t/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<static-array name='region_offset' count='9'>
|
||||
<uint8_t/>
|
||||
</static-array>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='cave_column_link'>
|
||||
<pointer name='item'/>
|
||||
<pointer name='prev' type-name='cave_column_link'/>
|
||||
<pointer name='next' type-name='cave_column_link'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='map_block_column'>
|
||||
<int16_t name="unk_0"/>
|
||||
<int16_t name="unk_2"/>
|
||||
<int16_t name="unk_4"/>
|
||||
|
||||
<stl-vector name="unk_8">
|
||||
<pointer>
|
||||
<static-array name='unk1' count='8' type-name='int16_t'/>
|
||||
<static-array name='unk2' count='4' type-name='uint8_t'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<int16_t name="z_base"/>
|
||||
|
||||
<static-array name='cave_columns' count='16'>
|
||||
<static-array count='16'>
|
||||
<compound type-name='cave_column_link'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='column_rectangles'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<int16_t name='unk_c2c'/>
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<int16_t name='tile_min_x'/>
|
||||
<int16_t name='tile_min_y'/>
|
||||
<int16_t name='unk_c3c' comment='uninitialized'/>
|
||||
<int16_t name='unk_c3e'/>
|
||||
<int16_t name='unk_c40'/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,341 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='material_common'>
|
||||
<stl-string name='id'/>
|
||||
<stl-string name='gem_name1'/>
|
||||
<stl-string name='gem_name2'/>
|
||||
<stl-string name='stone_name'/>
|
||||
|
||||
<code-helper name='describe'> (describe-material $) </code-helper>
|
||||
|
||||
<compound name='heat'>
|
||||
<uint16_t name='spec_heat'/>
|
||||
<uint16_t name='heatdam_point'/>
|
||||
<uint16_t name='colddam_point'/>
|
||||
<uint16_t name='ignite_point'/>
|
||||
<uint16_t name='melting_point'/>
|
||||
<uint16_t name='boiling_point'/>
|
||||
<uint16_t name='mat_fixed_temp'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='solid_density'/>
|
||||
<int32_t name='liquid_density'/>
|
||||
<int32_t name='molar_mass'/>
|
||||
|
||||
<static-array name='state_color' type-name='int32_t' count='6'/>
|
||||
<static-array name='state_name' type-name='stl-string' count='6'/>
|
||||
<static-array name='state_adj' type-name='stl-string' count='6'/>
|
||||
|
||||
<compound name='strength'>
|
||||
<int32_t name='absorption'/>
|
||||
<int32_t name='bending_yield'/>
|
||||
<int32_t name='shear_yield'/>
|
||||
<int32_t name='torsion_yield'/>
|
||||
<int32_t name='impact_yield'/>
|
||||
<int32_t name='tensile_yield'/>
|
||||
<int32_t name='compressive_yield'/>
|
||||
|
||||
<int32_t name='bending_fracture'/>
|
||||
<int32_t name='shear_fracture'/>
|
||||
<int32_t name='torsion_fracture'/>
|
||||
<int32_t name='impact_fracture'/>
|
||||
<int32_t name='tensile_fracture'/>
|
||||
<int32_t name='compressive_fracture'/>
|
||||
|
||||
<int32_t name='bending_strain_at_yield'/>
|
||||
<int32_t name='shear_strain_at_yield'/>
|
||||
<int32_t name='torsion_strain_at_yield'/>
|
||||
<int32_t name='impact_strain_at_yield'/>
|
||||
<int32_t name='tensile_strain_at_yield'/>
|
||||
<int32_t name='compressive_strain_at_yield'/>
|
||||
|
||||
<int32_t name='max_edge'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='material_value'/>
|
||||
|
||||
<df-flagarray name='mat_flags'/>
|
||||
|
||||
<int16_t name='extract_storage'/>
|
||||
<int16_t name='butcher_special_type'/>
|
||||
<int16_t name='butcher_special_subtype'/>
|
||||
|
||||
<static-array name='meat_name' type-name='stl-string' count='3'/>
|
||||
<static-array name='block_name' type-name='stl-string' count='2'/>
|
||||
|
||||
<stl-vector name='material_reaction_product_id'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='material_reaction_product_matType' type-name='int16_t'/>
|
||||
<stl-vector name='material_reaction_product_matIndex' type-name='int32_t'/>
|
||||
<static-array name='material_reaction_product_str' count='3'>
|
||||
<stl-vector>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<int16_t name='hardens_with_water_matType'/>
|
||||
<int32_t name='hardens_with_water_matIndex'/>
|
||||
<static-array name='hardens_with_water_str' type-name='stl-string' count='3'/>
|
||||
|
||||
<stl-vector name='reaction_class'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<uint8_t name='tile'/>
|
||||
|
||||
<static-array name='basic_color' type-name='int16_t' count='2'/>
|
||||
<static-array name='build_color' type-name='int16_t' count='3'/>
|
||||
<static-array name='tile_color' type-name='int16_t' count='3'/>
|
||||
|
||||
<uint8_t name='item_symbol'/>
|
||||
|
||||
<int16_t name='powder_dye'/> // color token index
|
||||
<int16_t name='temp_diet_info'/>
|
||||
|
||||
<stl-vector name='syndrome'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='soap_level'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='material'>
|
||||
<compound type-name='material_common'/>
|
||||
|
||||
<code-helper name='find-instance'>(material-by-id $ $$)</code-helper>
|
||||
<code-helper name='describe'> (describe-material $) </code-helper>
|
||||
|
||||
<stl-string name='prefix'/>
|
||||
|
||||
<static-array name='food_mat_index' count='37'>
|
||||
<int32_t refers-to='(food-mat-by-idx $$._key $)'
|
||||
comment='When valid, refers to itself.'/>
|
||||
</static-array>
|
||||
|
||||
<stl-string name='powder_dye_str' comment='temporary'/>
|
||||
<static-array name='state_color_str' type-name='stl-string' count='6'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='material_template'>
|
||||
<compound type-name='material_common'/>
|
||||
|
||||
<code-helper name='describe'> (describe-material $) </code-helper>
|
||||
|
||||
<stl-string name='powder_dye_str' comment='temporary'/>
|
||||
<static-array name='state_color_str' type-name='stl-string' count='6'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='material_plant' key-field='id'>
|
||||
<stl-string name='id'/>
|
||||
|
||||
<code-helper name='find-instance'>$global.world.raws.plants.all[$]</code-helper>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<stl-string name='name'/>
|
||||
<stl-string name='name_plural'/>
|
||||
<stl-string name='adj'/>
|
||||
|
||||
<stl-string name='seed_singular'/>
|
||||
<stl-string name='seed_plural'/>
|
||||
<stl-string name='leaves_singular'/>
|
||||
<stl-string name='leaves_plural'/>
|
||||
|
||||
<uint8_t name='unk1'/>
|
||||
<uint8_t name='unk2'/>
|
||||
|
||||
<compound name='tiles'>
|
||||
<uint8_t name='picked_tile'/>
|
||||
<uint8_t name='dead_picked_tile'/>
|
||||
<uint8_t name='shrub_tile'/>
|
||||
<uint8_t name='dead_shrub_tile'/>
|
||||
<uint8_t name='leaves_tile'/>
|
||||
<uint8_t name='tree_tile'/>
|
||||
<uint8_t name='dead_tree_tile'/>
|
||||
<uint8_t name='sapling_tile'/>
|
||||
<uint8_t name='dead_sapling_tile'/>
|
||||
<static-array type-name='uint8_t' name='grass_tiles' count='16'/>
|
||||
<static-array type-name='uint8_t' name='alt_grass_tiles' count='12'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='growdur'/>
|
||||
<int32_t name='value'/>
|
||||
|
||||
<compound name='colors'>
|
||||
<static-array type-name='int8_t' name='picked_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='dead_picked_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='shrub_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='dead_shrub_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='seed_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='leaves_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='dead_leaves_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='tree_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='dead_tree_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='sapling_color' count='3'/>
|
||||
<static-array type-name='int8_t' name='dead_sapling_color' count='3'/>
|
||||
|
||||
<static-array type-name='int8_t' name='grass_colors_0' count='20'/>
|
||||
<static-array type-name='int8_t' name='grass_colors_1' count='20'/>
|
||||
<static-array type-name='int8_t' name='grass_colors_2' count='20'/>
|
||||
</compound>
|
||||
|
||||
<static-array type-name='int32_t' name='alt_period' count='2'/>
|
||||
|
||||
<int8_t name='shrub_drown_level'/>
|
||||
<int8_t name='tree_drown_level'/>
|
||||
<int8_t name='sapling_drown_level'/>
|
||||
<int16_t name='frequency'/>
|
||||
<int16_t name='clustersize'/>
|
||||
<stl-vector name='prefstring'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='material'>
|
||||
<pointer type-name='material'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='material_defs'>
|
||||
<int16_t name='material_type_basic_mat'/>
|
||||
<int16_t name='material_type_tree'/>
|
||||
<int16_t name='material_type_drink'/>
|
||||
<int16_t name='material_type_seed'/>
|
||||
<int16_t name='material_type_thread'/>
|
||||
<int16_t name='material_type_mill'/>
|
||||
<int16_t name='material_type_extract_vial'/>
|
||||
<int16_t name='material_type_extract_barrel'/>
|
||||
<int16_t name='material_type_extract_still_vial'/>
|
||||
<int16_t name='material_type_leaves'/>
|
||||
|
||||
<int32_t name='material_idx_basic_mat'/>
|
||||
<int32_t name='material_idx_tree'/>
|
||||
<int32_t name='material_idx_drink'/>
|
||||
<int32_t name='material_idx_seed'/>
|
||||
<int32_t name='material_idx_thread'/>
|
||||
<int32_t name='material_idx_mill'/>
|
||||
<int32_t name='material_idx_extract_vial'/>
|
||||
<int32_t name='material_idx_extract_barrel'/>
|
||||
<int32_t name='material_idx_extract_still_vial'/>
|
||||
<int32_t name='material_idx_leaves'/>
|
||||
|
||||
<static-array type-name='stl-string' name='material_str_basic_mat' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_tree' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_drink' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_seed' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_thread' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_mill' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_extract_vial' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_extract_barrel' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_extract_still_vial' count='3'/>
|
||||
<static-array type-name='stl-string' name='material_str_leaves' count='3'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='underground_depth_min'/>
|
||||
<int32_t name='underground_depth_max'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='material_inorganic' key-field='id'>
|
||||
<stl-string name='id'/>
|
||||
|
||||
<code-helper name='find-instance'>$global.world.raws.inorganics.all[$]</code-helper>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<stl-vector name='metal_ore_str' comment='only during parsing'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<stl-vector type-name='int16_t' name='metal_ore_matIndex'/>
|
||||
<stl-vector type-name='int16_t' name='metal_ore_probability'/>
|
||||
|
||||
<stl-vector name='thread_metal_str' comment='only during parsing'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<stl-vector type-name='int16_t' name='thread_metal_matIndex'/>
|
||||
<stl-vector type-name='int16_t' name='thread_metal_probability'/>
|
||||
|
||||
<stl-vector type-name='int32_t' name='unk1'/>
|
||||
|
||||
<stl-vector name='environment_spec_str' comment='only during parsing'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<stl-vector type-name='int16_t' name='environment_spec_matIndex'/>
|
||||
<stl-vector type-name='int16_t' name='environment_spec_inclusion_type'/>
|
||||
<stl-vector type-name='int8_t' name='environment_spec_probability'/>
|
||||
<stl-vector type-name='int16_t' name='environment_location'/>
|
||||
<stl-vector type-name='int16_t' name='environment_type'/>
|
||||
<stl-vector type-name='int8_t' name='environment_probability'/>
|
||||
|
||||
<int32_t name='unk2'/>
|
||||
<compound name='material' type-name='material'/>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='organic_mat_category'>
|
||||
<enum-item name='Meat'/>
|
||||
<enum-item name='Fish'/>
|
||||
<enum-item name='UnpreparedFish'/>
|
||||
<enum-item name='Eggs'/>
|
||||
<enum-item name='Plants'/>
|
||||
<enum-item name='PlantDrink'/>
|
||||
<enum-item name='CreatureDrink'/>
|
||||
<enum-item name='PlantCheese'/>
|
||||
<enum-item name='CreatureCheese'/>
|
||||
<enum-item name='Seed'/>
|
||||
<enum-item name='Leaf'/>
|
||||
<enum-item name='PlantPowder'/>
|
||||
<enum-item name='CreaturePowder'/>
|
||||
<enum-item name='Glob'/>
|
||||
<enum-item name='PlantLiquid'/>
|
||||
<enum-item name='CreatureLiquid'/>
|
||||
<enum-item name='MiscLiquid'/>
|
||||
<enum-item name='Leather'/>
|
||||
<enum-item name='Silk'/>
|
||||
<enum-item name='PlantFiber'/>
|
||||
<enum-item name='Bone'/>
|
||||
<enum-item name='Shell'/>
|
||||
<enum-item name='Wood'/>
|
||||
<enum-item name='Horn'/>
|
||||
<enum-item name='Pearl'/>
|
||||
<enum-item name='Tooth'/>
|
||||
<enum-item name='EdibleCheese'/>
|
||||
<enum-item name='AnyDrink'/>
|
||||
<enum-item name='EdiblePlant'/>
|
||||
<enum-item name='CookableLiquid'/>
|
||||
<enum-item name='CookablePowder'/>
|
||||
<enum-item name='CookableSeed'/>
|
||||
<enum-item name='CookableLeaf'/>
|
||||
<enum-item name='Paste'/>
|
||||
<enum-item name='Pressed'/>
|
||||
<enum-item name='Yarn'/>
|
||||
<enum-item name='MetalThread'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='special_mat_table'>
|
||||
<static-array name='organic_types' count='37' index-enum='organic_mat_category'>
|
||||
<stl-vector type-name='int16_t' index-refers-to='(food-mat-by-idx $$._key $)'/>
|
||||
</static-array>
|
||||
<static-array name='organic_indexes' count='37' index-enum='organic_mat_category'>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
</static-array>
|
||||
<static-array name='organic_unknown' count='37' comment='everything 0'
|
||||
index-enum='organic_mat_category'>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='builtin' count='659'>
|
||||
<pointer type-name='material'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='extract_types'>
|
||||
<int16_t ref-target='material' aux-value='$$._parent.extract_indexes[$._key]'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='extract_indexes' type-name='int32_t'/>
|
||||
<stl-vector name='extract_unknown' type-name='int32_t'/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,238 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='squad_uniform_spec'>
|
||||
<int32_t name="item" ref-target='item'/>
|
||||
|
||||
<enum base-type='int16_t' name="item_type" type-name='item_type'/>
|
||||
<int16_t name="item_subtype" refers-to='(item-subtype-target $$._parent.item_type $)'/>
|
||||
|
||||
<int16_t name="material_class"/>
|
||||
|
||||
<int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/>
|
||||
<int32_t name='matindex'/>
|
||||
|
||||
<int32_t name="color"/>
|
||||
|
||||
<stl-vector name="assigned">
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name="indiv_choice" comment='1 weapon, 2 melee, 4 ranged'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='squad_ammo_spec'>
|
||||
<enum base-type='int16_t' name="item_type" type-name='item_type'/>
|
||||
<int16_t name="item_subtype" refers-to='(item-subtype-target $$._parent.item_type $)'/>
|
||||
|
||||
<int16_t name="material_class"/>
|
||||
|
||||
<int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/>
|
||||
<int32_t name='matindex'/>
|
||||
|
||||
<int32_t name="amount"/>
|
||||
|
||||
<bitfield name='flags' base-type='uint32_t'>
|
||||
<flag-bit name='use_combat'/>
|
||||
<flag-bit name='use_training'/>
|
||||
</bitfield>
|
||||
|
||||
<stl-vector name="assigned">
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
|
||||
<bitfield-type type-name='squad_use_flags' base-type='uint32_t'>
|
||||
<flag-bit name='sleep'/>
|
||||
<flag-bit name='train'/>
|
||||
<flag-bit name='indiv_eq'/>
|
||||
<flag-bit name='squad_eq'/>
|
||||
</bitfield-type>
|
||||
|
||||
<enum-type type-name='uniform_category'>
|
||||
<enum-item name='body'/>
|
||||
<enum-item name='head'/>
|
||||
<enum-item name='pants'/>
|
||||
<enum-item name='gloves'/>
|
||||
<enum-item name='shoes'/>
|
||||
<enum-item name='shield'/>
|
||||
<enum-item name='weapon'/>
|
||||
</enum-type>
|
||||
|
||||
<bitfield-type type-name='uniform_flags' base-type='uint32_t'>
|
||||
<flag-bit name='replace_clothing'/>
|
||||
<flag-bit name='exact_matches'/>
|
||||
</bitfield-type>
|
||||
|
||||
<struct-type type-name='squad_position' key-field='occupant'>
|
||||
<int32_t name='occupant' ref-target='historical_figure'/>
|
||||
|
||||
<stl-vector name="unk_4"/>
|
||||
|
||||
<compound name='preferences'>
|
||||
<stl-vector name="bed">
|
||||
<int32_t ref-target='building'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="armor_stand">
|
||||
<int32_t ref-target='building'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="box">
|
||||
<int32_t ref-target='building'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
<stl-vector name="unk_44"/>
|
||||
|
||||
<static-array name='uniform' count='7' index-enum='uniform_category'>
|
||||
<stl-vector>
|
||||
<pointer type-name='squad_uniform_spec'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-string name="unk_c4"/>
|
||||
|
||||
<compound name='flags' type-name='uniform_flags'/>
|
||||
|
||||
<stl-vector name='assigned_items'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name="quiver" ref-target='item'/>
|
||||
<int32_t name="backpack" ref-target='item'/>
|
||||
<int32_t name="flask" ref-target='item'/>
|
||||
|
||||
-- May be invalid:
|
||||
<int32_t name="activity1" ref-target='activity_entry'/>
|
||||
<int32_t name="activity2" ref-target='activity_entry'/>
|
||||
<int32_t name="activity3" ref-target='activity_entry'/>
|
||||
|
||||
<int32_t name="unk_10c"/>
|
||||
<int32_t name="unk_110"/>
|
||||
<int32_t name="unk_114"/>
|
||||
<int32_t name="unk_118"/>
|
||||
<int32_t name="unk_11c"/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='squad' key-field='id'>
|
||||
<int32_t name='id'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.squads.all $id $)</code-helper>
|
||||
|
||||
<compound name='name' type-name='language_name'/>
|
||||
<stl-string name='unk'/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
</code-helper>
|
||||
|
||||
<stl-vector name='positions'>
|
||||
<pointer type-name='squad_position'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_9c"/>
|
||||
|
||||
<stl-vector name="schedule">
|
||||
<pointer>
|
||||
<static-array count='12'>
|
||||
<stl-string name='name'/>
|
||||
|
||||
<int16_t name='sleep_mode' comment='0 room, 1 barrack will, 2 barrack need'/>
|
||||
<int16_t name='uniform_mode' comment='0 uniformed, 1 civ clothes'/>
|
||||
|
||||
<stl-vector name='orders'>
|
||||
<pointer>
|
||||
<pointer name="order"/>
|
||||
<int32_t name="min_count"/>
|
||||
<stl-vector name="unk_8">
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
<int32_t name="unk_18"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='order_assignments'>
|
||||
<int32_t refers-to='$$._parent._parent.orders[$]'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name="cur_alert_idx"/>
|
||||
|
||||
<stl-vector name="rooms">
|
||||
<pointer>
|
||||
<int32_t name='building_id' ref-target='building'/>
|
||||
<compound name='mode' type-name='squad_use_flags'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_d0"/>
|
||||
<stl-vector name="unk_e0"/>
|
||||
|
||||
<int32_t name="uniform_priority"/>
|
||||
<int32_t name="activity" ref-target='activity_entry'/>
|
||||
|
||||
<stl-vector name="ammunition">
|
||||
<pointer type-name='squad_ammo_spec'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_108"/>
|
||||
<stl-vector name="unk_118"/>
|
||||
|
||||
<stl-vector name="ammo_items">
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name="ammo_units">
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
<int16_t name="carry_food"/>
|
||||
<int16_t name="carry_water"/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='entity_uniform' key-field='id'>
|
||||
<int32_t name="id"/>
|
||||
<int16_t name="unk_4"/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
</code-helper>
|
||||
|
||||
<static-array name='uniform_item_types' count='7' index-enum='uniform_category'>
|
||||
<stl-vector>
|
||||
<enum base-type='int16_t' type-name='item_type'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<static-array name='uniform_item_subtypes' count='7' index-enum='uniform_category'>
|
||||
<stl-vector>
|
||||
<int16_t refers-to='(item-subtype-target $$._parent._parent._parent.uniform_item_types[$$._parent._key][$$._key] $)'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<static-array name='uniform_item_info' count='7' index-enum='uniform_category'>
|
||||
<stl-vector name="unk_e8">
|
||||
<pointer>
|
||||
<int16_t name="unk_0"/>
|
||||
<int16_t name="color"/>
|
||||
<int32_t name="unk_4"/>
|
||||
<int32_t name="unk_8"/>
|
||||
<int32_t name="unk_c"/>
|
||||
<int32_t name="indiv_choice"/>
|
||||
<int16_t name="mattype" ref-target='material' aux-value='$$.matindex'/>
|
||||
<int32_t name="matindex"/>
|
||||
<int16_t name="material_class"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-string name="name"/>
|
||||
|
||||
<compound name='flags' type-name='uniform_flags'/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,62 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='proj_list_link'>
|
||||
<pointer name='item' type-name='projectile'/>
|
||||
<pointer name='prev' type-name='proj_list_link'/>
|
||||
<pointer name='next' type-name='proj_list_link'/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='projectile' original-name='projst' key-field='id'>
|
||||
<pointer name='link' type-name='proj_list_link'/>
|
||||
|
||||
<int32_t name='id'/>
|
||||
<pointer name='firer' type-name='unit'/>
|
||||
|
||||
<int16_t name='origin_x'/>
|
||||
<int16_t name='origin_y'/>
|
||||
<int16_t name='origin_z'/>
|
||||
<int16_t name='target_x'/>
|
||||
<int16_t name='target_y'/>
|
||||
<int16_t name='target_z'/>
|
||||
<int16_t name='cur_x'/>
|
||||
<int16_t name='cur_y'/>
|
||||
<int16_t name='cur_z'/>
|
||||
<int16_t name='prev_x'/>
|
||||
<int16_t name='prev_y'/>
|
||||
<int16_t name='prev_z'/>
|
||||
|
||||
<int32_t name='distance_flown'/>
|
||||
|
||||
<int32_t name='unk14'/>
|
||||
<int32_t name='unk15'/>
|
||||
<int32_t name='unk16'/>
|
||||
|
||||
<bool name='collided' comment='or falling?'/>
|
||||
|
||||
<int16_t name='fall_counter' comment='counts down from delay to 0, then it moves'/>
|
||||
<int16_t name='fall_delay'/>
|
||||
|
||||
<int32_t name='unk20'/>
|
||||
<int32_t name='unk21'/>
|
||||
<int32_t name='unk22'/>
|
||||
<int32_t name='unk23'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='proj_itemst' inherits-from='projectile'>
|
||||
<pointer name='item' type-name='item'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='proj_unitst' inherits-from='projectile'>
|
||||
<pointer name='unit' type-name='unit' comment='?'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='proj_magicst' inherits-from='projectile'>
|
||||
<pointer name='unk' comment='?'/>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,237 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='world_raws'>
|
||||
-- Materials
|
||||
|
||||
<stl-vector name='material_templates'>
|
||||
<pointer type-name='material_template'/>
|
||||
</stl-vector>
|
||||
|
||||
-- Inorganic
|
||||
|
||||
<stl-vector name='inorganics'>
|
||||
<pointer type-name='material_inorganic'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='inorganics_subset'>
|
||||
<pointer type-name='material_inorganic'/>
|
||||
</stl-vector>
|
||||
|
||||
-- Plants
|
||||
|
||||
<compound name='plants'>
|
||||
dtor 852cc20
|
||||
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='material_plant'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bushes'>
|
||||
<pointer type-name='material_plant'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bushes_idx' index-refers-to='$$._parent.bushes[$]'>
|
||||
<int32_t ref-target='material_plant'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='trees'>
|
||||
<pointer type-name='material_plant'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='trees_idx' index-refers-to='$$._parent.trees[$]'>
|
||||
<int32_t ref-target='material_plant'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='grasses'>
|
||||
<pointer type-name='material_plant'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='grasses_idx' index-refers-to='$$._parent.grasses[$]'>
|
||||
<int32_t ref-target='material_plant'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Creature RAWs
|
||||
|
||||
<stl-vector name='tissue_templates' type-name='pointer'/>
|
||||
|
||||
dtor 89bab50
|
||||
<stl-vector name='misc_templates' type-name='pointer'/>
|
||||
|
||||
dtor 8527e40
|
||||
<stl-vector name='body_templates' type-name='pointer'/>
|
||||
|
||||
<stl-vector name='part_name_pairs'>
|
||||
<pointer key-field='id'>
|
||||
<stl-string name='id'/>
|
||||
<stl-string name='human_singular'/>
|
||||
<stl-string name='animal_singular'/>
|
||||
<stl-string name='human_plural'/>
|
||||
<stl-string name='animal_plural'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
dtor 89ba980
|
||||
<stl-vector name='mutant_templates' type-name='pointer'/>
|
||||
|
||||
-- Creatures
|
||||
|
||||
<compound name='creatures'>
|
||||
dtor 81448c0
|
||||
|
||||
<stl-vector name='alphabetic'>
|
||||
<pointer type-name='creature_raw'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='creature_raw'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='unk1'/>
|
||||
|
||||
<stl-vector name='list_creature' type-name='int32_t'
|
||||
comment='Together with list_caste, a list of all caste indexes in order.'/>
|
||||
<stl-vector name='list_caste' type-name='int32_t'/>
|
||||
</compound>
|
||||
|
||||
-- Item RAWs
|
||||
|
||||
<compound name='itemdefs'>
|
||||
dtor 852e080
|
||||
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='weapons'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='trapcomps'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='toys'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='tools'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<static-array name='tools_by_type' count='14'>
|
||||
<stl-vector>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
<stl-vector name='instruments'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='armor'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='ammo'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='siege_ammo'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='gloves'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='shoes'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='shields'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='helms'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='pants'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='food'>
|
||||
<pointer type-name='itemdef'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Sapient species
|
||||
|
||||
<stl-vector name='species'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
-- Language RAWs
|
||||
|
||||
dtor 852bc90
|
||||
|
||||
<stl-vector name='language_words'>
|
||||
<pointer type-name='language_word'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='language_symbols'>
|
||||
<pointer type-name='language_symbol'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='translations'>
|
||||
<pointer type-name='language_translation'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array name='unknown_54c88' count='2'>
|
||||
<static-array count='58'>
|
||||
<static-array count='12'>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
-- Words
|
||||
|
||||
<stl-vector name='color_words'>
|
||||
<pointer key-field='id'>
|
||||
<stl-string name="id"/>
|
||||
<stl-vector name="unk_1c"/>
|
||||
<stl-vector name="unk_2c"/>
|
||||
<stl-string name="name"/>
|
||||
<int16_t name="unk_58"/>
|
||||
<s-float name="unk_5c"/>
|
||||
<s-float name="unk_60"/>
|
||||
<s-float name="unk_64"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name='shape_words'>
|
||||
<pointer key-field='id'>
|
||||
<stl-string name="id"/>
|
||||
<stl-vector name="unk_1c"/>
|
||||
<stl-vector name="unk_2c"/>
|
||||
<stl-string name="name"/>
|
||||
<stl-string name="name_plural"/>
|
||||
<stl-vector name="unk_74"/>
|
||||
<int8_t name="unk_84"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name='all_color_words' type-name='pointer'/>
|
||||
|
||||
-- Reaction RAWs
|
||||
|
||||
<stl-vector name='reactions'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
-- Workshops
|
||||
|
||||
<compound name='buildings'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='building_def'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='workshops'>
|
||||
<pointer type-name='building_def'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='furnaces'>
|
||||
<pointer type-name='building_def'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='unk3'/>
|
||||
</compound>
|
||||
|
||||
-- Material index
|
||||
|
||||
<compound name='mat_table' type-name='special_mat_table'/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,109 @@
|
||||
<data-definition>
|
||||
<class-type type-name='general_ref' original-name='general_refst'/>
|
||||
|
||||
<class-type type-name='general_ref_artifact' inherits-from='general_ref'
|
||||
original-name='general_ref_artifactst'>
|
||||
<int32_t name='artifact_id' ref-target='artifact_record'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_nemesis' inherits-from='general_ref'
|
||||
original-name='general_ref_nemesisst'>
|
||||
<int32_t name='nemesis_id' ref-target='nemesis_record'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_item' inherits-from='general_ref'
|
||||
original-name='general_ref_itemst'>
|
||||
<int32_t name='item_id' ref-target='item'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_item_type' inherits-from='general_ref'
|
||||
original-name='general_ref_item_typest'>
|
||||
<enum base-type='int32_t' name='type' type-name='item_type'/>
|
||||
<int32_t name='subtype' refers-to='(item-subtype-target $$._parent.type $)'/>
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='unk2'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_coinbatch' inherits-from='general_ref'
|
||||
original-name='general_ref_coinbatchst'>
|
||||
<int32_t name='batch'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_mapsquare' inherits-from='general_ref'
|
||||
original-name='general_ref_mapsquarest'>
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='unk2'/>
|
||||
<int32_t name='unk3'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_projectile' inherits-from='general_ref'
|
||||
original-name='general_ref_projectilest'>
|
||||
<int32_t name='projectile_id'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_unit' inherits-from='general_ref'
|
||||
original-name='general_ref_unitst'>
|
||||
<int32_t name='unit_id' ref-target='unit'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_building' inherits-from='general_ref'
|
||||
original-name='general_ref_buildingst'>
|
||||
<int32_t name='building_id' ref-target='building'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_building_well_tag' inherits-from='general_ref_building'
|
||||
original-name='general_ref_building_well_tagst'>
|
||||
<bool name='unk'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_entity' inherits-from='general_ref'
|
||||
original-name='general_ref_entityst'>
|
||||
<int32_t name='entity_id' ref-target='historical_entity'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_entity_art_image' inherits-from='general_ref'
|
||||
original-name='general_ref_entity_art_imagest'>
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
</class-type>
|
||||
|
||||
<class-type type-name='general_ref_is_artifactst' inherits-from='general_ref_artifact'/>
|
||||
<class-type type-name='general_ref_is_nemesisst' inherits-from='general_ref_nemesis'/>
|
||||
<class-type type-name='general_ref_contains_unitst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_contains_itemst' inherits-from='general_ref_item'/>
|
||||
<class-type type-name='general_ref_contained_in_itemst' inherits-from='general_ref_item'/>
|
||||
<class-type type-name='general_ref_unit_milkeest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_traineest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_itemownerst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_tradebringerst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_holderst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_workerst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_cageest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_beateest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_foodreceiverst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_kidnapeest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_patientst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_infantst' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_slaughtereest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_unit_sheareest' inherits-from='general_ref_unit'/>
|
||||
<class-type type-name='general_ref_building_civzone_assignedst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_triggerst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_triggertargetst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_chainst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_cagedst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_holderst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_use_target_1st' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_use_target_2st' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_destinationst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_building_nest_boxst' inherits-from='general_ref_building'/>
|
||||
<class-type type-name='general_ref_entity_stolenst' inherits-from='general_ref_entity'/>
|
||||
<class-type type-name='general_ref_entity_offeredst' inherits-from='general_ref_entity'/>
|
||||
<class-type type-name='general_ref_entity_itemownerst' inherits-from='general_ref_entity'/>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,254 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='stockpile_settings_food'>
|
||||
<stl-vector type-name='bool' name='meat'
|
||||
index-refers-to='(food-mat-by-idx $Meat $)'/>
|
||||
<stl-vector type-name='bool' name='fish'
|
||||
index-refers-to='(food-mat-by-idx $Fish $)'/>
|
||||
<stl-vector type-name='bool' name='unprepared_fish'
|
||||
index-refers-to='(food-mat-by-idx $UnpreparedFish $)'/>
|
||||
<stl-vector type-name='bool' name='egg'
|
||||
index-refers-to='(food-mat-by-idx $Eggs $)'/>
|
||||
<stl-vector type-name='bool' name='plants'
|
||||
index-refers-to='(food-mat-by-idx $Plants $)'/>
|
||||
<stl-vector type-name='bool' name='drink_plant'
|
||||
index-refers-to='(food-mat-by-idx $PlantDrink $)'/>
|
||||
<stl-vector type-name='bool' name='drink_animal'
|
||||
index-refers-to='(food-mat-by-idx $CreatureDrink $)'/>
|
||||
<stl-vector type-name='bool' name='cheese_plant'
|
||||
index-refers-to='(food-mat-by-idx $PlantCheese $)'/>
|
||||
<stl-vector type-name='bool' name='cheese_animal'
|
||||
index-refers-to='(food-mat-by-idx $CreatureCheese $)'/> also 26
|
||||
<stl-vector type-name='bool' name='seeds'
|
||||
index-refers-to='(food-mat-by-idx $Seed $)'/> also 31
|
||||
<stl-vector type-name='bool' name='leaves'
|
||||
index-refers-to='(food-mat-by-idx $Leaf $)'/> also 32
|
||||
<stl-vector type-name='bool' name='powder_plant'
|
||||
index-refers-to='(food-mat-by-idx $PlantPowder $)'/>
|
||||
<stl-vector type-name='bool' name='powder_creature'
|
||||
index-refers-to='(food-mat-by-idx $CreaturePowder $)'/>
|
||||
<stl-vector type-name='bool' name='glob'
|
||||
index-refers-to='(food-mat-by-idx $Glob $)'/>
|
||||
<stl-vector type-name='bool' name='glob_paste'
|
||||
index-refers-to='(food-mat-by-idx $Paste $)'/>
|
||||
<stl-vector type-name='bool' name='glob_pressed'
|
||||
index-refers-to='(food-mat-by-idx $Pressed $)'/>
|
||||
<stl-vector type-name='bool' name='liquid_plant'
|
||||
index-refers-to='(food-mat-by-idx $PlantLiquid $)'/>
|
||||
<stl-vector type-name='bool' name='liquid_animal'
|
||||
index-refers-to='(food-mat-by-idx $CreatureLiquid $)'/>
|
||||
<stl-vector type-name='bool' name='liquid_misc'
|
||||
index-refers-to='(food-mat-by-idx $MiscLiquid $)'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='stockpile_settings_refuse'>
|
||||
<stl-vector type-name='bool' name='type' index-enum='item_type'/>
|
||||
<stl-vector type-name='bool' name='corpses'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='body_parts'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='skulls'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='bones'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='hair'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='shells'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='teeth'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector type-name='bool' name='horns'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='stockpile_category'>
|
||||
<enum-item name='Animals'/>
|
||||
<enum-item name='Food'/>
|
||||
<enum-item name='Furniture'/>
|
||||
<enum-item name='Corpses'/>
|
||||
<enum-item name='Refuse'/>
|
||||
<enum-item name='Stone'/>
|
||||
|
||||
<enum-item name='Unused6'/>
|
||||
|
||||
<enum-item name='Ammo'/>
|
||||
<enum-item name='Coins'/>
|
||||
<enum-item name='Bars'/>
|
||||
<enum-item name='Gems'/>
|
||||
<enum-item name='Goods'/>
|
||||
<enum-item name='Leather'/>
|
||||
<enum-item name='Cloth'/>
|
||||
<enum-item name='Wood'/>
|
||||
<enum-item name='Weapons'/>
|
||||
<enum-item name='Armor'/>
|
||||
|
||||
<enum-item name='Custom'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='stockpile_settings'>
|
||||
<bitfield name='flags' base-type='uint32_t'>
|
||||
<flag-bit name='animals'/>
|
||||
<flag-bit name='food'/>
|
||||
<flag-bit name='furniture'/>
|
||||
<flag-bit name='corpses'/>
|
||||
<flag-bit name='refuse'/>
|
||||
<flag-bit name='stone'/>
|
||||
<flag-bit name='ammo'/>
|
||||
<flag-bit name='coins'/>
|
||||
|
||||
<flag-bit name='bars'/>
|
||||
<flag-bit name='gems'/>
|
||||
<flag-bit name='goods'/>
|
||||
<flag-bit name='leather'/>
|
||||
<flag-bit name='cloth'/>
|
||||
<flag-bit name='wood'/>
|
||||
<flag-bit name='weapons'/>
|
||||
<flag-bit name='armor'/>
|
||||
</bitfield>
|
||||
|
||||
<compound name='animals'>
|
||||
<bool name='animals_empty_cages'/>
|
||||
<bool name='animals_empty_traps'/>
|
||||
<stl-vector type-name='bool' name='enabled'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
</compound>
|
||||
|
||||
<compound name='food'>
|
||||
<compound type-name='stockpile_settings_food' name='type'/>
|
||||
<bool name='prepared_meals'/>
|
||||
</compound>
|
||||
|
||||
<compound name='furniture'>
|
||||
<stl-vector type-name='bool' name='type' index-enum='item_type'/>
|
||||
<stl-vector type-name='bool' name='other_mats'/> 16
|
||||
<stl-vector type-name='bool' name='mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<static-array type-name='bool' name='quality_core' count='7' index-enum='item_quality'/>
|
||||
<static-array type-name='bool' name='quality_total' count='7' index-enum='item_quality'/>
|
||||
<bool name='sand_bags'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='unk1'/>
|
||||
|
||||
<compound name='refuse'>
|
||||
<compound type-name='stockpile_settings_refuse' name='type'/>
|
||||
<bool name='fresh_raw_hide'/>
|
||||
<bool name='rotten_raw_hide'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector type-name='bool' name='stone'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
|
||||
<stl-vector type-name='bool' name='unk2'/>
|
||||
|
||||
<compound name='ammo'>
|
||||
<stl-vector type-name='bool' name='type'
|
||||
index-refers-to='$global.world.raws.itemdefs.ammo[$]'/>
|
||||
<stl-vector type-name='bool' name='other_mats'/> 2
|
||||
<stl-vector type-name='bool' name='mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<static-array type-name='bool' name='quality_core' count='7' index-enum='item_quality'/>
|
||||
<static-array type-name='bool' name='quality_total' count='7' index-enum='item_quality'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector type-name='bool' name='coins'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
|
||||
<stl-vector type-name='bool' name='bars_other_mats'/> 5
|
||||
<stl-vector type-name='bool' name='blocks_other_mats'/> 5
|
||||
<stl-vector type-name='bool' name='bars_mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<stl-vector type-name='bool' name='blocks_mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
|
||||
<compound name='gems'>
|
||||
<stl-vector type-name='bool' name='rough_other_mats'
|
||||
index-refers-to='(material-by-id $ -1)'/> 659
|
||||
<stl-vector type-name='bool' name='cut_other_mats'
|
||||
index-refers-to='(material-by-id $ -1)'/>
|
||||
<stl-vector type-name='bool' name='rough_mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<stl-vector type-name='bool' name='cut_mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
</compound>
|
||||
|
||||
<compound name='finished_goods'>
|
||||
<stl-vector type-name='bool' name='type' index-enum='item_type'/>
|
||||
<stl-vector type-name='bool' name='other_mats'/> 17
|
||||
<stl-vector type-name='bool' name='mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<static-array type-name='bool' name='quality_core' count='7' index-enum='item_quality'/>
|
||||
<static-array type-name='bool' name='quality_total' count='7' index-enum='item_quality'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector type-name='bool' name='leather'
|
||||
index-refers-to='(food-mat-by-idx $Leather $)'/>
|
||||
|
||||
<compound name='cloth'>
|
||||
<stl-vector type-name='bool' name='thread_silk'
|
||||
index-refers-to='(food-mat-by-idx $Silk $)'/>
|
||||
<stl-vector type-name='bool' name='thread_plant'
|
||||
index-refers-to='(food-mat-by-idx $PlantFiber $)'/>
|
||||
<stl-vector type-name='bool' name='thread_yarn'
|
||||
index-refers-to='(food-mat-by-idx $Yarn $)'/>
|
||||
<stl-vector type-name='bool' name='thread_metal'
|
||||
index-refers-to='(food-mat-by-idx $MetalThread $)'/>
|
||||
<stl-vector type-name='bool' name='cloth_silk'
|
||||
index-refers-to='(food-mat-by-idx $Silk $)'/>
|
||||
<stl-vector type-name='bool' name='cloth_plant'
|
||||
index-refers-to='(food-mat-by-idx $PlantFiber $)'/>
|
||||
<stl-vector type-name='bool' name='cloth_yarn'
|
||||
index-refers-to='(food-mat-by-idx $Yarn $)'/>
|
||||
<stl-vector type-name='bool' name='cloth_metal'
|
||||
index-refers-to='(food-mat-by-idx $MetalThread $)'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector type-name='bool' name='wood'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
|
||||
<compound name='weapons'>
|
||||
<stl-vector type-name='bool' name='weapon_type'
|
||||
index-refers-to='$global.world.raws.itemdefs.weapons[$]'/>
|
||||
<stl-vector type-name='bool' name='trapcomp_type'
|
||||
index-refers-to='$global.world.raws.itemdefs.trapcomps[$]'/>
|
||||
<stl-vector type-name='bool' name='other_mats'/> 11
|
||||
<stl-vector type-name='bool' name='mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<static-array type-name='bool' name='quality_core' count='7' index-enum='item_quality'/>
|
||||
<static-array type-name='bool' name='quality_total' count='7' index-enum='item_quality'/>
|
||||
<bool name='usable'/>
|
||||
<bool name='unusable'/>
|
||||
</compound>
|
||||
|
||||
<compound name='armor'>
|
||||
<stl-vector type-name='bool' name='body'
|
||||
index-refers-to='$global.world.raws.itemdefs.armor[$]'/>
|
||||
<stl-vector type-name='bool' name='head'
|
||||
index-refers-to='$global.world.raws.itemdefs.helms[$]'/>
|
||||
<stl-vector type-name='bool' name='feet'
|
||||
index-refers-to='$global.world.raws.itemdefs.shoes[$]'/>
|
||||
<stl-vector type-name='bool' name='hands'
|
||||
index-refers-to='$global.world.raws.itemdefs.gloves[$]'/>
|
||||
<stl-vector type-name='bool' name='legs'
|
||||
index-refers-to='$global.world.raws.itemdefs.pants[$]'/>
|
||||
<stl-vector type-name='bool' name='shield'
|
||||
index-refers-to='$global.world.raws.itemdefs.shields[$]'/>
|
||||
<stl-vector type-name='bool' name='other_mats'/> 11
|
||||
<stl-vector type-name='bool' name='mats'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<static-array type-name='bool' name='quality_core' count='7' index-enum='item_quality'/>
|
||||
<static-array type-name='bool' name='quality_total' count='7' index-enum='item_quality'/>
|
||||
<bool name='usable'/>
|
||||
<bool name='unusable'/>
|
||||
</compound>
|
||||
|
||||
<bool name='allow_organic'/>
|
||||
<bool name='allow_inorganic'/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,604 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='dipscript_info' key-field='code'>
|
||||
<int32_t name='unk1' comment='uninit'/>
|
||||
<stl-string name='script_file' comment='data/dipscript/dwarf_liaison'/>
|
||||
<stl-vector name='script_steps' type-name='pointer'/>
|
||||
<stl-vector name='unknown' comment='null'/>
|
||||
<stl-string name='code' comment='DWARF_LIAISON etc'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='burrow' key-field='id'>
|
||||
<int32_t name='id'/>
|
||||
<stl-string name='name'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.ui.burrows.list $id $)</code-helper>
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
</code-helper>
|
||||
|
||||
<uint8_t name='tile'/>
|
||||
<int16_t name='fg_color'/>
|
||||
<int16_t name='bg_color'/>
|
||||
<stl-vector name='unk1' type-name='int32_t'/>
|
||||
<stl-vector name='unk2' type-name='int32_t'/>
|
||||
<stl-vector name='unk3' type-name='int32_t'/>
|
||||
<stl-vector name='units'>
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
|
||||
<enum-type type-name='ui_sidebar_mode'>
|
||||
<enum-item name='Default'/>
|
||||
<enum-item name='Squads'/>
|
||||
|
||||
-- 2
|
||||
|
||||
<enum-item name='DesignateMine'/>
|
||||
<enum-item name='DesignateRemoveRamps'/>
|
||||
<enum-item name='DesignateUpStair'/>
|
||||
<enum-item name='DesignateDownStair'/>
|
||||
<enum-item name='DesignateUpDownStair'/>
|
||||
<enum-item name='DesignateUpRamp'/>
|
||||
<enum-item name='DesignateChannel'/>
|
||||
<enum-item name='DesignateGatherPlants'/>
|
||||
<enum-item name='DesignateRemoveDesignation'/>
|
||||
<enum-item name='DesignateSmooth'/>
|
||||
<enum-item name='DesignateEngrave'/>
|
||||
<enum-item name='DesignateCarveFortification'/>
|
||||
|
||||
-- 14
|
||||
|
||||
<enum-item name='Stockpiles'/>
|
||||
<enum-item name='Build'/>
|
||||
<enum-item name='QueryBuilding'/>
|
||||
|
||||
-- 17
|
||||
|
||||
<enum-item name='Orders'/>
|
||||
<enum-item name='OrdersForbid'/>
|
||||
<enum-item name='OrdersRefuse'/>
|
||||
<enum-item name='OrdersWorkshop'/>
|
||||
<enum-item name='OrdersZone'/>
|
||||
|
||||
-- 22
|
||||
|
||||
<enum-item name='BuildingItems'/>
|
||||
<enum-item name='ViewUnits'/>
|
||||
<enum-item name='LookAround'/>
|
||||
|
||||
-- 25
|
||||
|
||||
<enum-item name='DesignateItemsClaim'/>
|
||||
<enum-item name='DesignateItemsForbid'/>
|
||||
<enum-item name='DesignateItemsMelt'/>
|
||||
<enum-item name='DesignateItemsUnmelt'/>
|
||||
<enum-item name='DesignateItemsDump'/>
|
||||
<enum-item name='DesignateItemsUndump'/>
|
||||
<enum-item name='DesignateItemsHide'/>
|
||||
<enum-item name='DesignateItemsUnhide'/>
|
||||
|
||||
-- 33
|
||||
|
||||
<enum-item name='DesignateChopTrees'/>
|
||||
<enum-item name='DesignateToggleEngravings'/>
|
||||
|
||||
-- 35
|
||||
|
||||
<enum-item name='Hotkeys'/>
|
||||
|
||||
-- 36
|
||||
|
||||
<enum-item name='DesignateTrafficHigh'/>
|
||||
<enum-item name='DesignateTrafficNormal'/>
|
||||
<enum-item name='DesignateTrafficLow'/>
|
||||
<enum-item name='DesignateTrafficRestricted'/>
|
||||
|
||||
-- 40
|
||||
|
||||
<enum-item name='Zones'/>
|
||||
<enum-item name='ZonesPenInfo'/>
|
||||
<enum-item name='ZonesPitInfo'/>
|
||||
<enum-item name='ZonesHospitalInfo'/>
|
||||
|
||||
-- 44
|
||||
|
||||
<enum-item name='DesignateRemoveConstruction'/>
|
||||
|
||||
<enum-item name='DepotAccess'/>
|
||||
<enum-item name='NotesPoints'/>
|
||||
<enum-item name='NotesRoutes'/>
|
||||
<enum-item name='Burrows'/>
|
||||
</enum-type>
|
||||
|
||||
<struct-type type-name='cursor'>
|
||||
<int32_t name='x'/>
|
||||
<int32_t name='y'/>
|
||||
<int32_t name='z'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='selection_rect'>
|
||||
<int32_t name='start_x'/>
|
||||
<int32_t name='start_y'/>
|
||||
<int32_t name='start_z'/>
|
||||
<int32_t name='end_x'
|
||||
comment='only valid for an instant while its being completed'/>
|
||||
<int32_t name='end_y'/>
|
||||
<int32_t name='end_z'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='ui'>
|
||||
ctor 86e33c0 x
|
||||
dtor 8534190
|
||||
|
||||
<padding size='16'/>
|
||||
<stl-vector name='unk10'/>
|
||||
<padding size='76'/>
|
||||
<stl-vector name='unk68' type-name='pointer'/>
|
||||
<padding size='388'/>
|
||||
<stl-vector name='currency_value' type-name='int32_t'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
<padding size='812'/>
|
||||
<stl-vector name='unk530' type-name='int32_t'/>
|
||||
<padding size='7516'/>
|
||||
<stl-vector name='unk2298' type-name='bool'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector name='unk22a4' type-name='bool'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector name='unk22b0' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<stl-vector name='unk22bc' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<padding size='16'/>
|
||||
<stl-vector name='unk22d8' type-name='int32_t'/>
|
||||
<padding size='4'/>
|
||||
<stl-vector name='unk22e8'/>
|
||||
|
||||
<stl-vector name='dip_meeting_vec'>
|
||||
<pointer type-name='meeting_diplomat'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='dip_meeting_info'>
|
||||
<pointer>
|
||||
<int32_t name='civ_id' ref-target='historical_entity'/>
|
||||
<int16_t name='unk1'/>
|
||||
<int32_t name='diplomat_id' ref-target='historical_figure'/>
|
||||
<int32_t name='unk2' comment='-1'/>
|
||||
<padding size='32' comment='0'/>
|
||||
<pointer name='dipscript' type-name='dipscript_info'/>
|
||||
<padding size='16' comment='0'/>
|
||||
<stl-string name='unk3'/>
|
||||
<stl-string name='unk4'/>
|
||||
<padding size='112' comment='0'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk230c' comment='really a wild guess'>
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
<padding size='4'/>
|
||||
|
||||
<stl-vector name='invasions' comment='goblins...'>
|
||||
<pointer>
|
||||
<int32_t name='id'/>
|
||||
<int32_t name='civ_id' ref-target='historical_entity'/>
|
||||
<int32_t name='is_active1' comment='0 unless active'/>
|
||||
<int32_t name='is_active2'/>
|
||||
<int32_t name='size' comment='just a guess'/>
|
||||
<int32_t name='duration_counter'/>
|
||||
<int16_t name='unk4a'/>
|
||||
<int16_t name='unk4b'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<int32_t name='next_invasion_id'/>
|
||||
|
||||
<stl-vector name='crimes'>
|
||||
<pointer>
|
||||
<enum name='mode' base-type='int16_t'>
|
||||
<enum-item name='ProductionOrderViolation'/>
|
||||
<enum-item name='ExportViolation'/>
|
||||
<enum-item name='JobOrderViolation'/>
|
||||
<enum-item name='ConspiracyToSlowLabor'/>
|
||||
<enum-item name='Murder'/>
|
||||
<enum-item name='DisorderlyBehavior'/>
|
||||
<enum-item name='BuildingDestruction'/>
|
||||
<enum-item name='Vandalism'/>
|
||||
</enum>
|
||||
<int16_t name='unk2' comment='uninit'/>
|
||||
|
||||
<int16_t name='unk3'/>
|
||||
<int16_t name='unk4'/>
|
||||
<int32_t name='unk5'/>
|
||||
|
||||
<pointer name='criminal' type-name='unit'/>
|
||||
<pointer name='victim' type-name='unit'/>
|
||||
<int32_t name='punishment_assigned'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='punishments'>
|
||||
<pointer>
|
||||
<pointer name="criminal" type-name='unit'/>
|
||||
<pointer name="officer" type-name='unit'/>
|
||||
<int16_t name="beating"/>
|
||||
<int16_t name="hammer_strikes"/>
|
||||
<int32_t name="prison_counter"/>
|
||||
<int16_t name="unk_10" comment='10080'/>
|
||||
<pointer name="chain" type-name='building'/>
|
||||
<stl-vector name="victims">
|
||||
<pointer type-name="unit"/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='pet_meeting_vec'>
|
||||
<pointer type-name='meeting_pet'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk2350' type-name='pointer'/>
|
||||
<stl-vector name='unk235c' type-name='pointer'/>
|
||||
|
||||
<stl-vector name='dipscripts'>
|
||||
<pointer type-name='dipscript_info'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk2374' type-name='pointer'/>
|
||||
|
||||
<compound name='kitchen'>
|
||||
<stl-vector name='item_types' type-name='int16_t'/>
|
||||
<stl-vector name='item_subtypes' type-name='int16_t'/>
|
||||
<stl-vector name='mat_types'>
|
||||
<int16_t ref-target='material' aux-value='$$._parent.mat_indices[$._key]'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='mat_indices' type-name='int32_t'/>
|
||||
<stl-vector name='exc_types' type-name='int8_t'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='economic_stone' type-name='bool'
|
||||
index-refers-to='(material-by-id 0 $)'/>
|
||||
|
||||
<padding size='4'/>
|
||||
<int16_t name='unk23cc'/>
|
||||
<int16_t name='unk23ce'/>
|
||||
<int32_t name='unk23d0'/>
|
||||
<int32_t name='unk23d4'/>
|
||||
|
||||
<int32_t name='group_id' ref-target='historical_entity'/>
|
||||
<int32_t name='race_id' ref-target='creature_raw'/>
|
||||
|
||||
<stl-vector name='unk23e0' type-name='int16_t'/>
|
||||
<stl-vector name='unk23ec' type-name='int8_t'/>
|
||||
|
||||
<static-array name='unk23f8' count='2'>
|
||||
<static-array count='30'>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<compound name='stockpile'>
|
||||
<int32_t name='reserved_bins'/>
|
||||
<int32_t name='reserved_barrels'/>
|
||||
|
||||
<compound name='custom_settings' type-name='stockpile_settings'/>
|
||||
</compound>
|
||||
|
||||
<static-array name='unk2a8c' count='4'>
|
||||
<static-array count='768'>
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='unk2'/>
|
||||
</static-array>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk5a8c' type-name='int16_t'/>
|
||||
<stl-vector name='unk5a98' type-name='int16_t'/>
|
||||
<stl-vector name='unk5aa4' type-name='int16_t'/>
|
||||
|
||||
<static-array name='unk5ab0' count='5'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk5aec' type-name='int16_t'/>
|
||||
|
||||
<static-array name='unk5af8' count='5'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk5b34' type-name='int16_t'/>
|
||||
|
||||
<static-array name='unk5b40' count='5'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk5b7c' type-name='int16_t'/>
|
||||
|
||||
<static-array name='unk5b88' count='7'>
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
|
||||
<compound name='waypoints'>
|
||||
<stl-vector name='points'>
|
||||
<pointer key-field='name'>
|
||||
<int32_t name='id'/>
|
||||
<uint8_t name='tile'/>
|
||||
<int16_t name='fg_color'/>
|
||||
<int16_t name='bg_color'/>
|
||||
<stl-string name='name'/>
|
||||
<stl-string name='comment'/>
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
<int16_t name='z'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name='routes'>
|
||||
<pointer key-field='name'>
|
||||
<int32_t name='id'/>
|
||||
<stl-string name='name'/>
|
||||
<stl-vector name='points'>
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<int16_t name='sym_selector'/>
|
||||
<int16_t/>
|
||||
<int32_t name='cur_point_index'/>
|
||||
<bool name='in_edit_name_mode'/>
|
||||
<int8_t/>
|
||||
<uint8_t name='sym_tile'/>
|
||||
<int16_t name='sym_fg_color'/>
|
||||
<int16_t name='sym_bg_color'/>
|
||||
<stl-vector name='unk5c04'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<int32_t name='next_point_id'/>
|
||||
<int32_t name='next_route_id'/>
|
||||
<int32_t name='sel_route_idx'/>
|
||||
<int32_t name='sel_route_waypt_idx'/>
|
||||
<bool name='in_edit_waypts_mode'/>
|
||||
</compound>
|
||||
|
||||
<compound name='burrows'>
|
||||
<stl-vector name='list'>
|
||||
<pointer type-name='burrow'/>
|
||||
</stl-vector>
|
||||
<int32_t name='next_id'/>
|
||||
<int32_t name='sel_index1'/>
|
||||
<int32_t name='sel_index2'/>
|
||||
<bool name='in_add_units_mode'/>
|
||||
<stl-vector name='list_units'>
|
||||
<pointer type-name='unit'/>
|
||||
</stl-vector>
|
||||
<stl-bit-vector name='sel_units' index-refers-to='$$._parent.list_units[$]'/>
|
||||
<int32_t name='unit_cursor_pos'/>
|
||||
<bool name='in_define_mode'/>
|
||||
<int16_t name='rect_start_x'/>
|
||||
<int16_t name='rect_start_y'/>
|
||||
<int16_t name='rect_start_z'/>
|
||||
<int32_t name='brush_mode'/>
|
||||
<int16_t name='sym_selector'/>
|
||||
<int16_t name='sym_tile'/>
|
||||
<int16_t name='sym_fg_color'/>
|
||||
<int16_t name='sym_bg_color'/>
|
||||
</compound>
|
||||
|
||||
<compound name='alerts'>
|
||||
<stl-vector name='list'>
|
||||
<pointer key-field='name'>
|
||||
<int32_t name='id'/>
|
||||
<stl-string name='name'/>
|
||||
<stl-vector/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<int32_t name='next_id'/>
|
||||
<int32_t name='civ_alert_idx' refers-to='$$._parent.list[$]'/>
|
||||
</compound>
|
||||
|
||||
<compound name='equipment'>
|
||||
<static-array name='items_by_type1' count='112' index-enum='item_type'>
|
||||
<stl-vector>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<static-array name='items_unassigned' count='112' index-enum='item_type'>
|
||||
<stl-vector>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
<static-array name='items_assigned' count='112' index-enum='item_type'>
|
||||
<stl-vector>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<int32_t name='unk6c4c'/>
|
||||
|
||||
<stl-vector name='work_weapons' comment='i.e. woodcutter axes, and miner picks'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='work_units'>
|
||||
<int32_t ref-target='unit'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='hunter_ammunition'>
|
||||
<pointer type-name='squad_ammo_spec'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk6c74'/>
|
||||
<stl-vector name='unk6c80'/>
|
||||
</compound>
|
||||
|
||||
<compound name='main'>
|
||||
<static-array name='hotkeys' count='16'>
|
||||
<stl-string name='name'/>
|
||||
<int16_t name='cmd'/>
|
||||
<int32_t name='x'/>
|
||||
<int32_t name='y'/>
|
||||
<int32_t name='z'/>
|
||||
</static-array>
|
||||
|
||||
<int32_t name='traffic_cost_high'/>
|
||||
<int32_t name='traffic_cost_normal'/>
|
||||
<int32_t name='traffic_cost_low'/>
|
||||
<int32_t name='traffic_cost_restricted'/>
|
||||
|
||||
<stl-vector name='unk6ddc'>
|
||||
<pointer>
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int32_t name='unk3'/>
|
||||
<int32_t name='unk4'/>
|
||||
<int32_t name='unk5'/>
|
||||
<int16_t name='unk6'/>
|
||||
<int32_t name='unk7'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<pointer name='unk6de8' type-name='historical_entity'/>
|
||||
|
||||
<enum base-type='int32_t' name='mode' type-name='ui_sidebar_mode'/>
|
||||
|
||||
<int32_t name='selected_traffic_cost'
|
||||
comment='For changing the above costs.'/>
|
||||
|
||||
<int32_t name='unk6df4'/>
|
||||
|
||||
<int16_t name='selected_hotkey'/>
|
||||
<bool name='in_rename_hotkey'/>
|
||||
</compound>
|
||||
|
||||
<compound name='squads'>
|
||||
<stl-vector name='list' has-bad-pointers='true'
|
||||
comment='valid only when ui is displayed'>
|
||||
<pointer type-name='squad'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk6e08'/>
|
||||
|
||||
<stl-bit-vector name='sel_squads' index-refers-to='$$._parent.list[$]'/>
|
||||
|
||||
<stl-vector name='indiv_selected'>
|
||||
<int32_t ref-target='historical_figure'/>
|
||||
</stl-vector>
|
||||
<bool name='in_select_indiv'/>
|
||||
<int32_t name='sel_indiv_squad' refers-to='$$._parent.list[$]'/>
|
||||
|
||||
<padding size='8'/>
|
||||
|
||||
<int32_t name='unk48'/>
|
||||
<pointer name='unk4c' type-name='squad'/>
|
||||
|
||||
<bool name='in_move_order'/>
|
||||
<int32_t name='point_list_scroll'/>
|
||||
|
||||
<bool name='in_kill_order'/>
|
||||
|
||||
<stl-vector name='kill_rect_targets'>
|
||||
<pointer type-name='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
<padding size='4'/>
|
||||
|
||||
<bool name='in_kill_list'/>
|
||||
<stl-vector name='kill_targets'>
|
||||
<pointer type-name='unit'/>
|
||||
</stl-vector>
|
||||
<stl-bit-vector name='sel_kill_targets' index-refers-to='$$._parent.kill_target[$]'/>
|
||||
<padding size='4'/>
|
||||
|
||||
<bool name='in_kill_rect'/>
|
||||
<int16_t name='rect_start_x'/>
|
||||
<int16_t name='rect_start_y'/>
|
||||
<int16_t name='rect_start_z'/>
|
||||
</compound>
|
||||
|
||||
<padding size='4'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='build_item_selector'>
|
||||
<stl-vector name='requirement'>
|
||||
<pointer>
|
||||
<enum base-type='int16_t' name="item_type" type-name='item_type'/>
|
||||
<int16_t name="unk_2"/>
|
||||
<int16_t name="unk_4"/>
|
||||
<int32_t name="unk_8"/>
|
||||
<int32_t name="unk_c"/>
|
||||
<pointer name="item_vector">
|
||||
<stl-vector>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
<int8_t name="unk_14"/>
|
||||
<int32_t name="unk_18"/>
|
||||
<int8_t name="unk_1c"/>
|
||||
<int32_t name="unk_20"/>
|
||||
<int8_t name="unk_24"/>
|
||||
<int32_t name="unk_28"/>
|
||||
<int8_t name="unk_2c"/>
|
||||
<int32_t name="unk_30"/>
|
||||
<int8_t name="unk_34"/>
|
||||
<stl-string name='unk38'/>
|
||||
<stl-string name='unk3c'/>
|
||||
<int32_t name="unk_40"/>
|
||||
<int16_t name="unk_44"/>
|
||||
<int8_t name="unk_46"/>
|
||||
<int32_t name="unk_48"/>
|
||||
<int32_t name="unk_4c"/>
|
||||
<stl-vector name='unk50'/>
|
||||
<int8_t name="unk_5c"/>
|
||||
<int16_t name="unk_5e"/>
|
||||
<int16_t name="unk_60"/>
|
||||
<int16_t name="unk_62"/>
|
||||
<int16_t name="unk_64"/>
|
||||
<int32_t name="unk_68"/>
|
||||
<int32_t name="unk_6c"/>
|
||||
<int32_t name="unk_70"/>
|
||||
<int32_t name="unk_74"/>
|
||||
<stl-vector name='unk78'/>
|
||||
<int8_t name="unk_84"/>
|
||||
<stl-vector name='candidates'>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk_94' type-name='int8_t'/>
|
||||
<stl-vector name='unk_a0' type-name='int16_t'/>
|
||||
<stl-vector name='unk_ac' type-name='int8_t'/>
|
||||
<int32_t name="unk_b8"/>
|
||||
<int16_t name="unk_bc"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='choices' type-name='pointer'/>
|
||||
|
||||
<int32_t name="unk_18"/>
|
||||
<int16_t name="unk_1c"/>
|
||||
<int16_t name="unk_1e"/>
|
||||
<int32_t name="unk_20"/>
|
||||
<int32_t name="unk_24"/>
|
||||
<int16_t name="unk_28"/>
|
||||
<int16_t name="sel_index"/>
|
||||
<int32_t name="unk_2c"/>
|
||||
|
||||
<stl-vector name='unk3'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk4'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
<padding size='3848'/>
|
||||
<int32_t name='unk5_1'/>
|
||||
<int32_t name='unk5_2'/>
|
||||
<int8_t name='unk5_3a'/>
|
||||
<int8_t name='unk5_3b'/>
|
||||
<int8_t name='unk5_3c'/>
|
||||
<int8_t name='unk5_3d'/>
|
||||
<int32_t name='unk5_4'/>
|
||||
<stl-vector name='unk6'/>
|
||||
<stl-vector name='unk7'/>
|
||||
dtor: 0x85272c0
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,703 @@
|
||||
<data-definition>
|
||||
<bitfield-type type-name='unit_flags1' base-type='uint32_t'>
|
||||
<flag-bit name='move_state'
|
||||
comment='Can the dwarf move or are they waiting for their movement timer'/>
|
||||
<flag-bit name='dead'
|
||||
comment='Dead (might also be set for incoming/leaving critters that are alive)'/>
|
||||
<flag-bit name='has_mood' comment='Currently in mood'/>
|
||||
<flag-bit name='had_mood' comment='Had a mood already'/>
|
||||
|
||||
<flag-bit name='marauder' comment='wide class of invader/inside creature attackers'/>
|
||||
<flag-bit name='drowning' comment='Is currently drowning'/>
|
||||
<flag-bit name='merchant' comment='An active merchant'/>
|
||||
<flag-bit name='forest'
|
||||
comment='used for units no longer linked to merchant/diplomacy, they just try to leave mostly'/>
|
||||
|
||||
<flag-bit name='left' comment='left the map'/>
|
||||
<flag-bit name='rider' comment='Is riding an another creature'/>
|
||||
<flag-bit name='incoming'/>
|
||||
<flag-bit name='diplomat'/>
|
||||
|
||||
<flag-bit name='zombie'/>
|
||||
<flag-bit name='skeleton'/>
|
||||
<flag-bit name='can_swap' comment='Can swap tiles during movement (prevents multiple swaps)'/>
|
||||
<flag-bit name='on_ground' comment='The creature is laying on the floor, can be conscious'/>
|
||||
|
||||
<flag-bit name='projectile' comment='Launched into the air? Funny.'/>
|
||||
<flag-bit name='active_invader' comment='Active invader (for organized ones)'/>
|
||||
<flag-bit name='hidden_in_ambush'/>
|
||||
<flag-bit name='invader_origin' comment='Invader origin (could be inactive and fleeing)'/>
|
||||
|
||||
<flag-bit name='coward' comment='Will flee if invasion turns around'/>
|
||||
<flag-bit name='hidden_ambusher' comment='Active marauder/invader moving inward?'/>
|
||||
<flag-bit name='invades' comment='Marauder resident/invader moving in all the way'/>
|
||||
<flag-bit name='check_flows' comment='Check against flows next time you get a chance'/>
|
||||
|
||||
<flag-bit name='ridden'/>
|
||||
<flag-bit name='caged'/>
|
||||
<flag-bit name='tame'/>
|
||||
<flag-bit name='chained'/>
|
||||
|
||||
<flag-bit name='royal_guard'/>
|
||||
<flag-bit name='fortress_guard'/>
|
||||
<flag-bit name='suppress_wield'/>
|
||||
<flag-bit name='important_historical_figure' comment='Is an important historical figure'/>
|
||||
</bitfield-type>
|
||||
|
||||
<bitfield-type type-name='unit_flags2' base-type='uint32_t'>
|
||||
<flag-bit name='swimming'/>
|
||||
<flag-bit name='sparring'/>
|
||||
<flag-bit name='no_notify' comment='Do not notify about level gains (for embark etc)'/>
|
||||
<flag-bit name='unused'/>
|
||||
|
||||
<flag-bit name='calculated_nerves'/>
|
||||
<flag-bit name='calculated_bodyparts'/>
|
||||
<flag-bit name='important_historical_figure'
|
||||
comment='Is important historical figure (slight variation)'/>
|
||||
<flag-bit name='killed'
|
||||
comment='Has been killed by kill function (slightly different from dead, not necessarily violent death)'/>
|
||||
|
||||
<flag-bit name='cleanup_1' comment='Must be forgotten by forget function (just cleanup)'/>
|
||||
<flag-bit name='cleanup_2' comment='Must be deleted (cleanup)'/>
|
||||
<flag-bit name='cleanup_3' comment='Recently forgotten (cleanup)'/>
|
||||
<flag-bit name='for_trade' comment='Offered for trade'/>
|
||||
|
||||
<flag-bit name='trade_resolved'/>
|
||||
<flag-bit name='has_breaks'/>
|
||||
<flag-bit name='gutted'/>
|
||||
<flag-bit name='circulatory_spray'/>
|
||||
|
||||
<flag-bit name='locked_in_for_trading'
|
||||
comment="Locked in for trading (it's a projectile on the other set of flags, might be what the flying was)"/>
|
||||
<flag-bit name='slaughter' comment='marked for slaughter'/>
|
||||
<flag-bit name='underworld' comment='Underworld creature'/>
|
||||
<flag-bit name='resident' comment='Current resident'/>
|
||||
|
||||
<flag-bit name='cleanup_4'
|
||||
comment='Marked for special cleanup as unused load from unit block on disk'/>
|
||||
<flag-bit name='calculated_insulation' comment='Insulation from clothing calculated'/>
|
||||
<flag-bit name='visitor_uninvited' comment='Uninvited guest'/>
|
||||
<flag-bit name='visitor'/>
|
||||
|
||||
<flag-bit name='calculated_inventory' comment='Inventory order calculated'/>
|
||||
<flag-bit name='vision_good' comment='Vision -- have good part'/>
|
||||
<flag-bit name='vision_damaged' comment='Vision -- have damaged part'/>
|
||||
<flag-bit name='vision_missing' comment='Vision -- have missing part'/>
|
||||
|
||||
<flag-bit name='breathing_good' comment='Breathing -- have good part'/>
|
||||
<flag-bit name='breathing_problem' comment='Breathing -- having a problem'/>
|
||||
<flag-bit name='roaming_wilderness_population_source'/>
|
||||
<flag-bit name='roaming_wilderness_population_source_not_a_map_feature'/>
|
||||
</bitfield-type>
|
||||
|
||||
<bitfield-type type-name='unit_flags3' base-type='uint32_t'>
|
||||
<flag-bit name='unk0' comment='Is 1 for new and dead creatures, periodicaly set to 0 for non-dead creatures.'/>
|
||||
<flag-bit name='unk1' comment='Is 1 for new creatures, periodically set to 0 for non-dead creatures.'/>
|
||||
<flag-bit name='unk2' comment='Is set to 1 every tick for non-dead creatures.'/>
|
||||
<flag-bit name='unk3' comment='Is periodically set to 0 for non-dead creatures.'/>
|
||||
|
||||
<flag-bit name='announce_titan' comment='Announces creature like an FB or titan.'/>
|
||||
<flag-bit name='unk5'/>
|
||||
<flag-bit name='unk6'/>
|
||||
<flag-bit name='unk7'/>
|
||||
|
||||
<flag-bit name='unk8' comment='Is set to 1 every tick for non-dead creatures.'/>
|
||||
<flag-bit name='unk9' comment='Is set to 0 every tick for non-dead creatures.'/>
|
||||
<flag-bit name='scuttle'>
|
||||
<comment>
|
||||
Scuttle creature: causes creature to be killed, leaving a behind
|
||||
corpse and generating negative thoughts like a real kill.
|
||||
</comment>
|
||||
</flag-bit>
|
||||
<flag-bit name='unk11'/>
|
||||
|
||||
<flag-bit name='ghostly'/>
|
||||
</bitfield-type>
|
||||
|
||||
<struct-type type-name='unit' key-field='id'>
|
||||
<compound type-name='language_name' name='name'/>
|
||||
|
||||
<code-helper name='find-instance'>(find-by-id $global.world.units.all $id $)</code-helper>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
(awhen (find-creature $.race)
|
||||
(fmt "~:(~A ~A~)" $it.caste[$.caste].caste_id $it.creature_id))
|
||||
</code-helper>
|
||||
|
||||
<stl-string name='custom_profession'/>
|
||||
|
||||
<enum base-type='int16_t' name='profession' type-name='profession'/>
|
||||
<enum base-type='int16_t' name='profession2' type-name='profession'/>
|
||||
|
||||
<uint32_t name='race' ref-target='creature_raw'/>
|
||||
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
<int16_t name='z'/>
|
||||
|
||||
<int16_t name='old_x'>
|
||||
<comment>
|
||||
E.g. for a dead miner, holds the place where he
|
||||
was likely hanging around when he got the command
|
||||
to mine in an aquifer.
|
||||
</comment>
|
||||
</int16_t>
|
||||
<int16_t name='old_y'/>
|
||||
<int16_t name='old_z'/>
|
||||
|
||||
<compound name='unknown1'>
|
||||
<uint32_t name='unk_9c'/>
|
||||
<int16_t name='unk_a0'/>
|
||||
<padding size='2'/>
|
||||
<int16_t name='unk_a4a'/>
|
||||
<int16_t name='unk_a4b'/>
|
||||
</compound>
|
||||
|
||||
<compound name='path'>
|
||||
<int16_t name='dest_x'/>
|
||||
<int16_t name='dest_y'/>
|
||||
<int16_t name='dest_z'/>
|
||||
<int16_t name='unk_ae' comment='-1 unless dest valid'/>
|
||||
|
||||
<stl-vector name='path_x' type-name='int16_t'/>
|
||||
<stl-vector name='path_y' type-name='int16_t'/>
|
||||
<stl-vector name='path_z' type-name='int16_t'/>
|
||||
</compound>
|
||||
|
||||
<compound name='flags1' type-name='unit_flags1'/>
|
||||
<compound name='flags2' type-name='unit_flags2'/>
|
||||
<compound name='flags3' type-name='unit_flags3'/>
|
||||
|
||||
<compound name='unknown2'>
|
||||
<int8_t name='unk_ec'/>
|
||||
<int32_t name='unk_f0'/>
|
||||
<int16_t name='unk_f4'/>
|
||||
<int16_t name='unused_f6'/>
|
||||
</compound>
|
||||
|
||||
<uint16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
<uint8_t name='sex'/>
|
||||
|
||||
<int32_t name='id'/>
|
||||
|
||||
<int16_t name='unk_100'/>
|
||||
<int32_t name='unk_104'/>
|
||||
|
||||
<int32_t name='civ_id' ref-target='historical_entity'/>
|
||||
<int32_t name='population_id' ref-target='entity_population'/>
|
||||
|
||||
<compound name='unknown3'>
|
||||
<int32_t name='unk_110'/>
|
||||
|
||||
<stl-vector name='unk_114'/>
|
||||
<stl-vector name='unk_124'/>
|
||||
<stl-vector name='unk_134'/>
|
||||
|
||||
<uint32_t name='unk_144'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='meetings'>
|
||||
<pointer type-name='meeting_ref'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='refs'>
|
||||
<pointer type-name='general_ref'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='military'>
|
||||
<int32_t name='squad_index' ref-target='squad'/>
|
||||
<int32_t name='squad_position'/>
|
||||
<int32_t name='unk_170'/>
|
||||
<int32_t name='draft_timer'/>
|
||||
<int16_t name='is_military'
|
||||
comment='if dead, may be military, but not in squad'/>
|
||||
|
||||
<stl-vector name='uniform_civilian'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='uniform_military'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='uniform_unk1'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='uniform_unk2'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name='pickup_equipment_bit'/>
|
||||
|
||||
<stl-vector name='uniform_unk3'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='uniform_alien' comment='for goblins, elves'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='individual_drills'>
|
||||
<int32_t ref-target='activity_entry'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
<compound name='unknown4'>
|
||||
<int16_t name='unk_1f0_a'/>
|
||||
<int16_t name='unk_1f0_b'/>
|
||||
<int16_t name='unk_1f4'/>
|
||||
<int32_t name='unk_1f8'/>
|
||||
<int32_t name='unk_1fc'/>
|
||||
<int32_t name='unk_200'/>
|
||||
<int16_t name='unk_204'/>
|
||||
<uint32_t name='animal_leave_countdown'
|
||||
comment='once 0, it heads for the edge and leaves'/>
|
||||
<uint32_t name='unk_20c'/>
|
||||
</compound>
|
||||
|
||||
<int16_t name='mood'/>
|
||||
<int16_t name='unk_18e'/>
|
||||
|
||||
<compound name='relations'>
|
||||
<uint32_t name='pregnancy_timer'/>
|
||||
<pointer name='pregnancy_ptr'/>
|
||||
<int16_t name='unk_21c_a'/>
|
||||
<int16_t name='unk_21c_b'/>
|
||||
<uint32_t name='unk_220'/>
|
||||
<int32_t name='birth_year'/>
|
||||
<int32_t name='birth_time'/>
|
||||
<int32_t name='old_year' comment='could there be a death of old age time??'/>
|
||||
<int32_t name='old_time'/>
|
||||
<pointer type-name='unit' name='following'/>
|
||||
<uint16_t name='unk_238'/>
|
||||
|
||||
<int32_t name='pet_owner_id' ref-target='unit'/>
|
||||
<int32_t name='married_id' ref-target='unit'
|
||||
comment='not used in relationship screen..'/>
|
||||
<int32_t name='mother_id' ref-target='unit'/>
|
||||
<int32_t name='father_id' ref-target='unit'/>
|
||||
<int32_t name='last_attacker_id' ref-target='unit'/>
|
||||
<int32_t name='enemy_group_leader_id' ref-target='unit'/>
|
||||
<int32_t name='unk_254'/>
|
||||
<int32_t name='unk_258'/>
|
||||
<int32_t name='unk_25c_mother'/>
|
||||
<int32_t name='lover_id' ref-target='unit'/>
|
||||
<int16_t name='unk_264'/>
|
||||
</compound>
|
||||
|
||||
<compound name='last_hit'>
|
||||
<int32_t name='item' ref-target='item'/>
|
||||
<enum base-type='int16_t' name='item_type' type-name='item_type'/>
|
||||
<int16_t name='item_subtype' refers-to='(item-subtype-target $$._parent.item_type $)'/>
|
||||
|
||||
<int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/>
|
||||
<int32_t name='matindex'/>
|
||||
|
||||
-- If shot by a ranged weapon:
|
||||
<int32_t name='bow_item' ref-target='item'/>
|
||||
<enum base-type='int16_t' name='bow_item_type' type-name='item_type'/>
|
||||
<int16_t name='bow_item_subtype' refers-to='(item-subtype-target $$._parent.bow_item_type $)'/>
|
||||
<int16_t name='bow_mattype' ref-target='material' aux-value='$$.bow_matindex'/>
|
||||
<int32_t name='bow_matindex'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='inventory'>
|
||||
<pointer key-field='item'>
|
||||
<pointer name='item' type-name='item'/>
|
||||
<int16_t name='mode' comment='0 carried, 1 weapon, 2 worn, 9 sewn'/>
|
||||
<int16_t name='body_part_id'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='owned_items'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='traded_items' comment='items brought to trade depot'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='owned_buildings'>
|
||||
<pointer type-name='building'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='corpse_parts' comment='entries remain even when items are destroyed'>
|
||||
<int32_t ref-target='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<compound name='job'>
|
||||
<uint32_t name='unk_2d8'/>
|
||||
<uint32_t name='unk_2dc'/>
|
||||
<pointer type-name='unit' name='hunt_target'/>
|
||||
<pointer type-name='building' name='destroy_target'/>
|
||||
<int16_t name='unk_2e8'/> // fight related
|
||||
<int16_t name='unk_2ea'/> // fight related
|
||||
<uint16_t name='unk_2ec'/>
|
||||
<uint16_t name='unk_2ee'/>
|
||||
<uint16_t name='unk_2f0_cntr'/> // increments every tick
|
||||
<pointer comment='df_job' name='current_job' type-name='job'/>
|
||||
<uint16_t name='unk_2f8'/>
|
||||
<uint32_t name='unk_2fc'/>
|
||||
<uint32_t name='unk_300'/>
|
||||
<uint32_t name='unk_304'/>
|
||||
</compound>
|
||||
|
||||
<compound name='body'>
|
||||
<stl-vector name='body_part_308' type-name='uint32_t'/> // 87*0 ?
|
||||
|
||||
<stl-vector name='unk_318'/>
|
||||
|
||||
<stl-vector name='body_layer_328' type-name='uint32_t'/>
|
||||
<stl-vector name='body_layer_338' type-name='uint32_t'/> // 238*0
|
||||
<stl-vector name='body_layer_348' type-name='uint32_t'/> // 238*0
|
||||
<stl-vector name='body_layer_358' type-name='uint32_t'/> // 238*0
|
||||
<stl-vector name='body_layer_368' type-name='uint32_t'/> // 238*0
|
||||
<stl-vector name='body_layer_378' type-name='uint32_t'/> // 238*0
|
||||
|
||||
<stl-vector name='body_layer_388' type-name='pointer'/>
|
||||
|
||||
<uint32_t name='unk_398'/>
|
||||
<int32_t name='unk_39c'/>
|
||||
<int32_t name='unk_3a0'/>
|
||||
<int32_t name='unk_3a4'/>
|
||||
<int32_t name='unk_3a8'/>
|
||||
<int32_t name='unk_3ac'/>
|
||||
<int32_t name='unk_3b0'/>
|
||||
<int32_t name='unk_3b4'/>
|
||||
<int32_t name='unk_3b8'/>
|
||||
<int32_t name='unk_3bc'/>
|
||||
<int32_t name='unk_3c0'/>
|
||||
|
||||
<pointer name='body_plan' comment='points to the body_parts field of caste_raw'>
|
||||
<stl-vector name='body_parts'>
|
||||
<pointer type-name='body_part_raw'/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
|
||||
<uint16_t name='unk_3c8'/>
|
||||
|
||||
<static-array type-name='unit_attribute' name='physical_attrs' count='6'/>
|
||||
|
||||
<uint32_t name='unk_474'/>
|
||||
<uint32_t name='unk_478'/>
|
||||
<uint32_t name='unk_47c'/>
|
||||
<uint32_t name='unk_480'/>
|
||||
<uint32_t name='unk_484'/>
|
||||
<uint32_t name='unk_488'/>
|
||||
|
||||
<uint32_t name='blood_max'/>
|
||||
<uint32_t name='blood_count'/> // 490
|
||||
<uint32_t name='unk_494'/>
|
||||
|
||||
<stl-vector name='spatters'/>
|
||||
</compound>
|
||||
|
||||
<compound name='unknown6'>
|
||||
<stl-vector type-name='uint16_t' name='unk_4a8'/>
|
||||
<stl-vector type-name='uint16_t' name='unk_4b8'/>
|
||||
<uint32_t name='unk_4c8'/>
|
||||
<stl-vector type-name='int16_t' name='unk_4cc'/>
|
||||
<stl-vector type-name='int32_t' name='unk_4dc'/>
|
||||
<stl-vector type-name='int32_t' name='unk_4ec'/>
|
||||
<stl-vector type-name='int32_t' name='unk_4fc'/>
|
||||
<stl-vector type-name='int16_t' name='unk_50c'/>
|
||||
<pointer name='unk_51c'/>
|
||||
<uint16_t name='unk_520'/>
|
||||
<pointer name='unk_524'/>
|
||||
<uint16_t name='unk_528'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector type-name='uint32_t' name='appearance'/>
|
||||
|
||||
<compound name='counters'>
|
||||
<int32_t name='think_counter'/> // 53c decrements every job_counter reroll, set when changing jobs
|
||||
<int32_t name='job_counter'/> // 540 current_job unit/walk done when reach -1, decremented every tick
|
||||
<int32_t name='unk_544'/> // if set, decrements every job_counter reroll
|
||||
<int16_t name='unk_548'/>
|
||||
<int16_t name='winded'/>
|
||||
<int16_t name='stunned'/> // 54c decrements every tick, unstun at 0
|
||||
<int16_t name='unconscious'/>
|
||||
<int16_t name='unk_550'/>
|
||||
<int16_t name='webbed'/>
|
||||
|
||||
<int16_t name='unk_x554'/> // coords ? (-30.000x3)
|
||||
<int16_t name='unk_y556'/>
|
||||
<int16_t name='unk_z558'/>
|
||||
<int16_t name='unk_x55a'/> // coords again
|
||||
<int16_t name='unk_y55c'/>
|
||||
<int16_t name='unk_z55e'/>
|
||||
|
||||
<int16_t name='soldier_mood_countdown'/>
|
||||
<enum name='soldier_mood' base-type='int16_t'>
|
||||
<enum-item name='None' value='-1'/>
|
||||
<enum-item name='MartialTrance'/>
|
||||
<enum-item name='Enranged'/>
|
||||
<enum-item name='Tantrum'/>
|
||||
</enum>
|
||||
|
||||
<uint32_t name='unk_564'/>
|
||||
<uint32_t name='unk_568'/>
|
||||
<uint32_t name='unk_56c'/>
|
||||
<uint32_t name='unk_570'/>
|
||||
<uint32_t name='unk_574'/>
|
||||
<uint32_t name='unk_578'/>
|
||||
<uint32_t name='unk_57c'/>
|
||||
|
||||
<uint32_t name='hunger_timer'/>
|
||||
<uint32_t name='thirst_timer'/>
|
||||
<uint32_t name='sleepiness_timer'/>
|
||||
|
||||
<uint32_t name='unk_58c'/> // counter, decrement to 0
|
||||
<uint32_t name='unk_590'/> // same as 58c
|
||||
<uint32_t name='unk_594'/>
|
||||
<uint32_t name='unk_cntdn_598'/> // fluctuate
|
||||
<uint32_t name='unk_59c'/>
|
||||
</compound>
|
||||
|
||||
<compound name='status'>
|
||||
<stl-vector name='misc_traits'>
|
||||
<pointer type-name='unit_misc_trait'/>
|
||||
</stl-vector>
|
||||
|
||||
<pointer name='unk_5b0'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
</pointer>
|
||||
|
||||
<uint32_t name='unk_5b4'/> // 0x3e8 (1000)
|
||||
<uint32_t name='unk_5b8'/> // 0x3e8 (1000)
|
||||
|
||||
<stl-vector name='unk_5bc'/>
|
||||
<stl-vector name='unk_5cc'/>
|
||||
<int8_t name='unk_5dc'/>
|
||||
|
||||
<compound type-name='language_name' name='artifact_name'/>
|
||||
<stl-vector name='souls'>
|
||||
<pointer type-name='unit_soul'/>
|
||||
</stl-vector>
|
||||
<pointer name='current_soul' type-name='unit_soul'/>
|
||||
<stl-vector name='unk_660'/>
|
||||
|
||||
<static-array type-name='bool' name='labors' index-enum='unit_labor' count='94'/>
|
||||
|
||||
<stl-vector name='unk_6d0'/>
|
||||
<stl-vector name='unk_6e0'/> // item ids?
|
||||
|
||||
<stl-vector name='recent_events'/> // 6f0: dined in a legendary dinning room, etc
|
||||
|
||||
<stl-vector name='unk_700'/>
|
||||
|
||||
<uint32_t name='happiness'/> // 710
|
||||
<uint16_t name='unk_714'/>
|
||||
|
||||
<stl-vector name='unk_718'/>
|
||||
<stl-vector name='unk_728'/>
|
||||
<stl-vector name='relationships'/> // 738
|
||||
<stl-vector name='unk_748'/>
|
||||
|
||||
<uint16_t name='unk_758'/>
|
||||
<int16_t name='unk_x75a'/> // coords (-30000*3)
|
||||
<int16_t name='unk_y75c'/>
|
||||
<int16_t name='unk_z75e'/>
|
||||
<stl-vector type-name='uint16_t' name='unk_760'/>
|
||||
<stl-vector type-name='uint16_t' name='unk_770'/>
|
||||
<stl-vector type-name='uint16_t' name='unk_780'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='hist_figure_id' ref-target='historical_figure'/>
|
||||
|
||||
<compound name='status2'>
|
||||
<uint16_t name='able_stand'/> // 794
|
||||
<uint16_t name='able_stand_impair'/> // 796
|
||||
<uint16_t name='able_grasp'/> // 798
|
||||
<uint16_t name='able_grasp_impair'/> // 79a
|
||||
<uint32_t name='unk_79c'/>
|
||||
<uint32_t name='unk_7a0'/>
|
||||
|
||||
<stl-vector name='body_part_temperature'>
|
||||
<pointer>
|
||||
<uint16_t name='whole'/>
|
||||
<uint16_t name='fraction' comment='the unit is 1/temp_factor in body part'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<uint32_t name='unk_7b4'/>
|
||||
<uint32_t name='unk_7b8'/>
|
||||
<uint8_t name='unk_7bc'/>
|
||||
|
||||
<int32_t name='unk_7c0'/>
|
||||
</compound>
|
||||
|
||||
<compound name='unknown8'>
|
||||
<stl-vector name='unk_7c4'/>
|
||||
<stl-vector name='unk_7d4' type-name='int32_t'/>
|
||||
<stl-vector name='unk_7e4' type-name='int16_t'/>
|
||||
<stl-vector name='unk_7f4' type-name='int32_t'/> // combat log?
|
||||
<stl-vector name='unk_804' type-name='int32_t'/>
|
||||
<stl-vector name='unk_814' type-name='int32_t'/>
|
||||
|
||||
<uint32_t name='unk_824'/>
|
||||
<uint32_t name='unk_828'/>
|
||||
<uint32_t name='unk_82c'/>
|
||||
<uint32_t name='unk_830'/>
|
||||
<uint32_t name='unk_834'/>
|
||||
<uint32_t name='unk_838'/>
|
||||
|
||||
<pointer name='unk_83c'/>
|
||||
|
||||
<stl-vector name='unk_840' type-name='pointer'/> // item related
|
||||
|
||||
<stl-vector name='unk_850'/>
|
||||
<stl-vector name='unk_860' type-name='int32_t'/>
|
||||
|
||||
<int32_t name='unk_870'/>
|
||||
<int32_t name='unk_874_cntr'/> // age ? incremented every tick
|
||||
|
||||
<stl-vector name='body_part_878' type-name='uint8_t'/>
|
||||
<stl-vector name='body_part_888' type-name='uint8_t'/>
|
||||
<stl-vector name='body_part_898' type-name='uint32_t'/>
|
||||
<stl-vector name='body_part_8a8' type-name='uint8_t'/>
|
||||
<stl-vector name='body_part_8b8' type-name='uint16_t'/>
|
||||
<stl-vector name='body_part_8c8' type-name='uint16_t'/>
|
||||
<stl-vector name='body_part_8d8' type-name='uint16_t'/>
|
||||
|
||||
<stl-vector name='unk_8e8'/> // items ids?
|
||||
|
||||
<stl-vector type-name='uint16_t' name='unk_8f8'/> // same size as 8e8, soldier related?
|
||||
|
||||
<stl-vector name='body_layer_908' type-name='uint32_t'/>
|
||||
|
||||
<int32_t name='unk_918'/>
|
||||
<int32_t name='unk_91c'/>
|
||||
<int32_t name='unk_920'/>
|
||||
|
||||
<uint32_t name='unk_924'/>
|
||||
<uint32_t name='unk_928'/>
|
||||
</compound>
|
||||
|
||||
<stl-vector name='burrows'>
|
||||
<int32_t ref-target='burrow'/>
|
||||
</stl-vector>
|
||||
|
||||
<uint32_t name='unk_93c'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='unit_attribute'>
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int32_t name='unk3'/>
|
||||
<int32_t name='unk4'/>
|
||||
<int32_t name='unk5'/>
|
||||
<int32_t name='unk6'/>
|
||||
<int32_t name='unk7'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='unit_misc_trait' key-field='id'>
|
||||
<enum base-type='int16_t' name='id'>
|
||||
<enum-item name='ClaimedRecently' value='12'/>
|
||||
<enum-item name='WantsDrink'/>
|
||||
<enum-item name='LikesOutdoors'/>
|
||||
<enum-item name='Hardened'/>
|
||||
</enum>
|
||||
|
||||
<code-helper name='describe'>(fmt "value=~A" $.value)</code-helper>
|
||||
|
||||
<int32_t name='value'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='unit_soul'>
|
||||
<int32_t name='unit_id' ref-target='unit'/>
|
||||
|
||||
<compound name='name' type-name='language_name'/>
|
||||
|
||||
<uint32_t name='race' ref-target='creature_raw'/>
|
||||
<uint8_t name='sex'/>
|
||||
<uint16_t name='caste' ref-target='caste_raw' aux-value='$$.race'/>
|
||||
|
||||
<code-helper name='describe'>
|
||||
(describe-obj $.name)
|
||||
(awhen (find-creature $.race)
|
||||
(fmt "~:(~A ~A~)" $it.caste[$.caste].caste_id $it.creature_id))
|
||||
</code-helper>
|
||||
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int32_t name='unk3'/>
|
||||
<int32_t name='unk4'/>
|
||||
|
||||
<static-array type-name='unit_attribute' name='mental_attrs' count='13'/>
|
||||
|
||||
<stl-vector name='skills'>
|
||||
<pointer type-name='unit_skill'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='preferences'>
|
||||
<pointer type-name='unit_preference'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array type-name='uint16_t' name='traits' count='30'/>
|
||||
|
||||
<stl-vector name='unk5'>
|
||||
<pointer>
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='unk2'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='unk6'/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='unit_skill' key-field='id'>
|
||||
<enum base-type='int16_t' name="id" type-name='job_skill'/>
|
||||
|
||||
<int32_t name="rating"/>
|
||||
<uint32_t name="experience"/>
|
||||
<int32_t name="unk_c"/>
|
||||
<int32_t name="rusty"/>
|
||||
<int32_t name="unk_14"/>
|
||||
<int32_t name="unk_18"/>
|
||||
<int32_t name="unk_1c"/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='unit_preference' key-field='type'>
|
||||
<enum base-type='int16_t' name="type">
|
||||
<enum-item name='LikeMaterial'/>
|
||||
<enum-item name='LikeCreature'/>
|
||||
<enum-item name='LikeFood'/>
|
||||
<enum-item name='HateCreature'/>
|
||||
<enum-item name='LikeItem'/>
|
||||
<enum-item name='LikePlant'/>
|
||||
<enum-item name='LikePlant2' comment='likely 2nd prefstring'/>
|
||||
<enum-item name='LikeColor'/>
|
||||
<enum-item name='LikeShape'/>
|
||||
</enum>
|
||||
|
||||
<compound is-union='true'>
|
||||
<enum base-type='int16_t' name="item_type" type-name='item_type'/>
|
||||
<int16_t name='creature_id' ref-target='creature_raw'/>
|
||||
<int16_t name='color_id' refers-to='$global.world.raws.color_words[$]'/>
|
||||
<int16_t name='shape_id' refers-to='$global.world.raws.shape_words[$]'/>
|
||||
<int16_t name='plant_id' ref-target='material_plant'/>
|
||||
</compound>
|
||||
|
||||
<int16_t name="item_subtype" refers-to='(item-subtype-target $$._parent.item_type $)'/>
|
||||
|
||||
<int16_t name='mattype' ref-target='material' aux-value='$$.matindex'/>
|
||||
<int32_t name='matindex'/>
|
||||
|
||||
<bool name='active'/>
|
||||
|
||||
<uint32_t name='unk'/>
|
||||
</struct-type>
|
||||
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,88 @@
|
||||
<data-definition>
|
||||
<enum-type type-name='interface_breakdown_types'>
|
||||
<enum-item name='NONE'/>
|
||||
<enum-item name='QUIT'/>
|
||||
<enum-item name='STOPSCREEN'/>
|
||||
<enum-item name='TOFIRST'/>
|
||||
</enum-type>
|
||||
|
||||
<class-type type-name='viewscreen' original-name='viewscreenst'>
|
||||
<pointer name='child' type-name='viewscreen'/>
|
||||
<pointer name='parent' type-name='viewscreen'/>
|
||||
<enum base-type='int8_t' name='breakdown_level' type-name='interface_breakdown_types'/>
|
||||
<int8_t name='option_key_pressed'/>
|
||||
</class-type>
|
||||
|
||||
<struct-type type-name='interface'>
|
||||
<int32_t name='original_fps'/>
|
||||
|
||||
<compound name='view' type-name='viewscreen'/>
|
||||
|
||||
<uint32_t name='flag'/>
|
||||
<int32_t name='shutdown_interface_tickcount'/>
|
||||
<int32_t name='shutdown_interface_for_ms'/>
|
||||
|
||||
<int8_t name='supermovie_on'/>
|
||||
<int32_t name='supermovie_pos'/>
|
||||
<int32_t name='supermovie_delayrate'/>
|
||||
<int32_t name='supermovie_delaystep'/>
|
||||
|
||||
<stl-vector name='supermovie_sound'>
|
||||
<pointer type-name='stl-string'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array name='supermovie_sound_time' count='16' comment='SOUND_CHANNELNUM'>
|
||||
<static-array count='200' type-name='int32_t'/>
|
||||
</static-array>
|
||||
|
||||
<padding name='supermoviebuffer' size='800000'/>
|
||||
<padding name='supermoviebuffer_comp' size='1000000'/>
|
||||
|
||||
<int32_t name='currentblocksize'/>
|
||||
<int32_t name='nextfilepos'/>
|
||||
<int8_t name='first_movie_write'/>
|
||||
<stl-string name='movie_file'/>
|
||||
</struct-type>
|
||||
|
||||
<class-type type-name='viewscreen_titlest' inherits-from='viewscreen'>
|
||||
<static-string name='str_histories' size='256'/>
|
||||
<static-string name='menu_items' size='256'/>
|
||||
<enum base-type='int16_t' name="sel_subpage">
|
||||
<enum-item name='None'/>
|
||||
<enum-item name='StartGame'/>
|
||||
<enum-item name='Unk2'/>
|
||||
<enum-item name='Arena'/>
|
||||
<enum-item name='About'/>
|
||||
</enum>
|
||||
<int32_t name="sel_menu_line"/>
|
||||
<int32_t name="sel_submenu_line"/>
|
||||
<int8_t name="unk_218"/>
|
||||
<stl-vector name="unk_21c">
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_228"/>
|
||||
<stl-vector name="unk_234"/>
|
||||
<stl-vector name="start_savegames">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-vector name="continue_savegames">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-string name="str_slaves"/>
|
||||
<stl-string name="str_chapter"/>
|
||||
<stl-string name="str_copyright"/>
|
||||
<stl-string name="str_version"/>
|
||||
<stl-string name="str_unk"/>
|
||||
<stl-string name="str_programmed"/>
|
||||
<stl-string name="str_designed"/>
|
||||
<stl-string name="str_visit"/>
|
||||
<stl-string name="str_site"/>
|
||||
</class-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,374 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='world_site_unk130'>
|
||||
<int32_t name="index"/>
|
||||
|
||||
<stl-vector name="unk_4">
|
||||
<pointer>
|
||||
<int32_t name="unk_0"/>
|
||||
<int32_t name="index"/>
|
||||
<int32_t name="unk_8"/>
|
||||
<stl-vector name="unk_c">
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='world_site' key-field='id'
|
||||
instance-vector='$global.world.world_data.sites'>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
|
||||
<code-helper name='describe'>(describe-obj $.name)</code-helper>
|
||||
|
||||
<int32_t name="civ_id" ref-target='historical_entity'/>
|
||||
<int32_t name="owner1" ref-target='historical_entity'/>
|
||||
<int32_t name="owner2" ref-target='historical_entity'/>
|
||||
|
||||
<int16_t name="unk_78"/>
|
||||
<int16_t name="unk_7a"/>
|
||||
<int16_t name="unk_7c"/>
|
||||
|
||||
<int32_t name="id"/>
|
||||
|
||||
<stl-vector name="unk_84">
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_94"/>
|
||||
|
||||
<stl-vector name="animals">
|
||||
<pointer>
|
||||
<int16_t name="unk_0"/>
|
||||
<int16_t name="race" ref-target='creature_raw'/>
|
||||
<int32_t name="count"/>
|
||||
<int32_t name="unk_8"/>
|
||||
<int32_t name="owner" ref-target='historical_entity'/>
|
||||
<int32_t name="unk_10"/>
|
||||
<int32_t name="unk_14"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="inhabitants">
|
||||
<pointer>
|
||||
<int32_t name="count"/>
|
||||
<int32_t name="race" ref-target='creature_raw'/>
|
||||
<int32_t name="unk_8"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_c4"/>
|
||||
<stl-vector name="unk_d4"/>
|
||||
|
||||
<int32_t name="index"/>
|
||||
|
||||
<int16_t name="unk_e8"/>
|
||||
<int16_t name="unk_ea"/>
|
||||
<int16_t name="unk_ec"/>
|
||||
<int16_t name="unk_ee"/>
|
||||
|
||||
<int32_t name="unk_f0"/>
|
||||
<int32_t name="unk_f4"/>
|
||||
<int32_t name="unk_f8"/>
|
||||
<int32_t name="unk_fc"/>
|
||||
<int32_t name="unk_100"/>
|
||||
|
||||
<uint32_t name="unk_104"/>
|
||||
<uint32_t name="unk_108"/>
|
||||
|
||||
<int32_t name="unk_10c"/>
|
||||
<int32_t name="unk_110"/>
|
||||
<int32_t name="unk_114"/>
|
||||
<int32_t name="unk_118"/>
|
||||
<int32_t name="unk_11c"/>
|
||||
<int32_t name="unk_120"/>
|
||||
<int32_t name="unk_124"/>
|
||||
<int32_t name="unk_128"/>
|
||||
<int32_t name="unk_12c"/>
|
||||
<int32_t name="unk_130"/>
|
||||
<int32_t name="unk_134"/>
|
||||
<int32_t name="unk_138"/>
|
||||
|
||||
<stl-vector name="unk_13c">
|
||||
<pointer>
|
||||
<int32_t name="unk_0"/>
|
||||
<int32_t name="unk_4"/>
|
||||
<int32_t name="unk_8"/>
|
||||
<int32_t name="unk_c"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<df-flagarray name='flags'/>
|
||||
|
||||
<stl-vector name="unk_154"/>
|
||||
|
||||
<int32_t name="unk_164"/>
|
||||
<int32_t name="unk_168"/>
|
||||
<int32_t name="unk_16c"/>
|
||||
<int32_t name="unk_170"/>
|
||||
<int32_t name="unk_174"/>
|
||||
|
||||
<int16_t name="unk_178"/>
|
||||
<int16_t name="unk_17a"/>
|
||||
<int16_t name="unk_17c"/>
|
||||
|
||||
<int32_t name="unk_180"/>
|
||||
|
||||
<pointer name="unk_184">
|
||||
<int16_t name="unk_0"/>
|
||||
<stl-vector name="unk_4"/>
|
||||
<int32_t name="unk_14"/>
|
||||
<int32_t name="unk_18"/>
|
||||
<int32_t name="unk_1c"/>
|
||||
</pointer>
|
||||
|
||||
<pointer name="unk_188" type-name='world_site_unk130'/>
|
||||
|
||||
<stl-vector name="unk_18c"/>
|
||||
<stl-vector name="unk_19c"/>
|
||||
</struct-type>
|
||||
|
||||
<struct-type type-name='world_data'>
|
||||
<compound name='name' type-name='language_name' comment='name of the world'/>
|
||||
|
||||
<static-array name='unk1' count='15' type-name='int8_t'/>
|
||||
|
||||
<int32_t name='num_sites'/>
|
||||
<int32_t name='cur_site_id'/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int16_t name='world_width'/>
|
||||
<int16_t name='world_height'/>
|
||||
|
||||
<stl-vector name='unk2'>
|
||||
<pointer>
|
||||
<int16_t name="unk_0"/>
|
||||
<int16_t name="unk_2"/>
|
||||
<int16_t name="unk_4"/>
|
||||
<int16_t name="unk_6"/>
|
||||
<int16_t name="unk_8"/>
|
||||
<int32_t name="unk_c"/>
|
||||
<int32_t name="unk_10"/>
|
||||
<stl-vector name="unk_14">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<int32_t name="unk_24"/>
|
||||
<df-flagarray name='flags'/>
|
||||
<stl-vector name="unk_30"/>
|
||||
<stl-vector name="unk_40"/>
|
||||
<stl-vector name="unk_50"/>
|
||||
<stl-vector name="unk_60"/>
|
||||
<int16_t name="unk_70"/>
|
||||
<int16_t name="unk_72"/>
|
||||
<int16_t name="unk_74"/>
|
||||
<int16_t name="unk_76"/>
|
||||
<int16_t name="unk_78"/>
|
||||
<int32_t name="unk_7c"/>
|
||||
<int32_t name="unk_80"/>
|
||||
<int32_t name="unk_84"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<int32_t name='world_width2'/>
|
||||
<int32_t name='world_height2'/>
|
||||
|
||||
<pointer type-name='uint32_t' is-array='true'/>
|
||||
<pointer type-name='uint32_t' is-array='true'/>
|
||||
<pointer type-name='uint32_t' is-array='true'/>
|
||||
<pointer type-name='uint8_t' is-array='true'/>
|
||||
|
||||
<stl-vector name='unk4' type-name='pointer'/>
|
||||
|
||||
<int32_t name="unk_dc"/>
|
||||
<int32_t name="unk_e0"/>
|
||||
<int32_t name="unk_e4"/>
|
||||
|
||||
<int32_t name="unk_e8"/>
|
||||
<int32_t name="unk_ec"/>
|
||||
<int32_t name="unk_f0"/>
|
||||
|
||||
<compound name='construction_squares'>
|
||||
<int16_t name="width"/>
|
||||
<int16_t name="height"/>
|
||||
|
||||
<pointer name="table" is-array='true'>
|
||||
<pointer is-array='true'>
|
||||
<stl-vector>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</pointer>
|
||||
</compound>
|
||||
|
||||
<stl-vector name="constructions">
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<int32_t name="next_construction_id"/>
|
||||
|
||||
<static-array name="unk_110" count='2'>
|
||||
<pointer name="table" is-array='true'>
|
||||
<pointer is-array='true'>
|
||||
<stl-vector name='unk1'>
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk2'>
|
||||
<pointer type-name='int8_t' is-array='true'/>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</pointer>
|
||||
<int16_t name="width"/>
|
||||
<int16_t name="height"/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name="sites">
|
||||
<pointer type-name='world_site'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="site_unk130">
|
||||
<pointer type-name='world_site_unk130'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_140">
|
||||
<pointer>
|
||||
<int32_t name='index'/>
|
||||
<static-array name='resource_allotments' count='100'>
|
||||
<stl-vector>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
<int32_t name='unk1'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int32_t name='unk3'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_150">
|
||||
<pointer>
|
||||
<int32_t name="index"/>
|
||||
<int32_t name="unk_4"/>
|
||||
<stl-vector name="unk_8">
|
||||
<pointer>
|
||||
<int32_t name="index"/>
|
||||
<int32_t name="unk_4"/>
|
||||
<int32_t name="unk_8"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_18">
|
||||
<pointer>
|
||||
<int32_t name="index"/>
|
||||
<int32_t name="unk_4"/>
|
||||
<int32_t name="unk_8"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_28">
|
||||
<pointer>
|
||||
<int32_t name="unk_0"/>
|
||||
<int32_t name="unk_4"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name="unk_160">
|
||||
<pointer>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_170">
|
||||
<pointer>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_180">
|
||||
<pointer>
|
||||
<int16_t name='unk1'/>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_190">
|
||||
<pointer>
|
||||
<int16_t name='unk1'/>
|
||||
<int16_t name='index'/>
|
||||
<stl-vector name="unk_4">
|
||||
<pointer>
|
||||
<int16_t name="unk_0"/>
|
||||
<int32_t name="unk_4"/>
|
||||
<stl-vector name="unk_8">
|
||||
<int32_t/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_18">
|
||||
<int16_t/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_28">
|
||||
<int8_t/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_38">
|
||||
<int8_t/>
|
||||
</stl-vector>
|
||||
<int32_t name="index"/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_1a0">
|
||||
<pointer>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_1b0">
|
||||
<pointer>
|
||||
<compound name='name' type-name='language_name'/>
|
||||
</pointer>
|
||||
</stl-vector>
|
||||
|
||||
<pointer name="unk_1c0"/>
|
||||
<pointer name="unk_1c4"/>
|
||||
<padding name="unk_1c8" size="4"/>
|
||||
<stl-vector name="unk_1cc"/>
|
||||
<pointer name="unk_1dc"/>
|
||||
<pointer name="unk_1e0"/>
|
||||
<pointer name="unk_1e4"/>
|
||||
<pointer name="unk_1e8"/>
|
||||
<pointer name="unk_1ec"/>
|
||||
<pointer name="unk_1f0"/>
|
||||
|
||||
<stl-vector name="active_site">
|
||||
<pointer type-name='world_site'/>
|
||||
</stl-vector>
|
||||
|
||||
<pointer name="unk_204"/>
|
||||
<pointer name="unk_208"/>
|
||||
<int32_t name="unk_20c"/>
|
||||
<stl-vector name="unk_210"/>
|
||||
<stl-vector name="unk_220"/>
|
||||
<stl-vector name="unk_230"/>
|
||||
<stl-vector name="unk_240">
|
||||
<int16_t/>
|
||||
</stl-vector>
|
||||
<stl-vector name="unk_250">
|
||||
<int16_t/>
|
||||
</stl-vector>
|
||||
<padding name="unk_260" size="4"/>
|
||||
<int8_t name="unk_264"/>
|
||||
<padding name="unk_265" size="3"/>
|
||||
<padding name="unk_268" size="4"/>
|
||||
<int8_t name="unk_26c"/>
|
||||
<padding name="unk_26d" size="3"/>
|
||||
<padding name="unk_270" size="4"/>
|
||||
<stl-vector name="unk_274"/>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,503 @@
|
||||
<data-definition>
|
||||
<struct-type type-name='world'>
|
||||
dtor 89fff80
|
||||
|
||||
<static-array name='unk0' count='21'>
|
||||
dtor 8532540
|
||||
|
||||
<stl-vector>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='unk_fc'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk_108'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk_114'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
--
|
||||
|
||||
<stl-vector name='manager_orders'>
|
||||
<pointer type-name='manager_order'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='mandates'>
|
||||
<pointer type-name='mandate'/>
|
||||
</stl-vector>
|
||||
|
||||
-- Entities
|
||||
|
||||
<compound name='entities'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='historical_entity'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='historical_entity'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Unknown
|
||||
|
||||
<padding size='80004' comment='0 bytes; same size on Windows'/>
|
||||
|
||||
-- Units
|
||||
|
||||
<compound name='units'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='unit'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array name='other' count='4'>
|
||||
<stl-vector>
|
||||
<pointer type-name='unit'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='unit'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Unknown
|
||||
|
||||
<stl-vector name='unk_13a1c'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-vector name='unk_13a28'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
|
||||
-- Nemesis
|
||||
|
||||
<compound name='nemesis'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='nemesis_record'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='nemesis_record'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
<bool name='unk4'/>
|
||||
|
||||
-- Items
|
||||
|
||||
<compound name='items'>
|
||||
dtor 852f4b0
|
||||
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array name='other' count='127'>
|
||||
<stl-vector>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='item'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='bad_tag' type-name='int32_t'/>
|
||||
</compound>
|
||||
|
||||
-- Artifacts
|
||||
|
||||
<compound name='artifacts'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='artifact_record'/>
|
||||
</stl-vector>
|
||||
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='artifact_record'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Jobs and projectiles
|
||||
|
||||
<compound name='job_list' type-name='job_list_link'/>
|
||||
|
||||
<compound name='proj_list' type-name='proj_list_link'/>
|
||||
|
||||
-- Buildings
|
||||
|
||||
<compound name='buildings'>
|
||||
dtor 85316f0
|
||||
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='building'/>
|
||||
</stl-vector>
|
||||
|
||||
<static-array name='other' count='86'>
|
||||
<stl-vector>
|
||||
<pointer type-name='building'/>
|
||||
</stl-vector>
|
||||
</static-array>
|
||||
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='building'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
<bool name='unk5a'/>
|
||||
<bool name='unk5b'/>
|
||||
|
||||
-- Machines (connected groups of gears and so on)
|
||||
|
||||
<compound name='machines'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='machine'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='machine'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Unknown
|
||||
|
||||
<compound name='unk_144d4'>
|
||||
<stl-vector name='all' type-name='pointer'/>
|
||||
<stl-vector name='bad' has-bad-pointers='true' type-name='pointer'/>
|
||||
</compound>
|
||||
|
||||
<padding size='84'/>
|
||||
|
||||
<compound name='unk_material_info_14540'>
|
||||
<stl-vector name='unk_plant_1' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<stl-vector name='unk_plant_2' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<stl-vector name='unk_creature_1' type-name='bool'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector name='unk_creature_2' type-name='bool'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector name='unk_creature_3' type-name='bool'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector name='unk_plant_3' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<stl-vector name='unk_plant_4' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<padding size='8' comment='0'/>
|
||||
<stl-vector name='unk_plant_5' type-name='bool'
|
||||
index-refers-to='(find-plant-raw $)'/>
|
||||
<stl-vector name='unk_creature_4' type-name='bool'
|
||||
index-refers-to='(find-creature $)'/>
|
||||
<stl-vector name='unk_builtin' type-name='bool'
|
||||
index-refers-to='(material-by-id $ -1)'/>
|
||||
<padding size='16' comment='0'/>
|
||||
</compound>
|
||||
|
||||
-- Plants
|
||||
|
||||
<compound name='plants'>
|
||||
<stl-vector name='all' type-name='pointer'/>
|
||||
<static-array name='other' count='5'>
|
||||
<stl-vector type-name='pointer'/>
|
||||
</static-array>
|
||||
</compound>
|
||||
|
||||
-- Unknown
|
||||
|
||||
<padding name='unk_14618' size='12' comment='linked list'/>
|
||||
|
||||
-- Unknown
|
||||
|
||||
<padding size='500' comment='bool array?'/>
|
||||
<static-array name='unk_14818' type-name='int8_t' count='250000'/>
|
||||
<int32_t name='unk_518a8'/>
|
||||
|
||||
<compound name='unk_518ac'>
|
||||
<stl-vector name='all'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
<compound name='squads'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='squad'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='squad'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
<compound name='unk_518dc'>
|
||||
<stl-vector name='all'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Drills
|
||||
|
||||
<compound name='activities'>
|
||||
<stl-vector name='all'>
|
||||
<pointer type-name='activity_entry'/>
|
||||
</stl-vector>
|
||||
<stl-vector name='bad' has-bad-pointers='true'>
|
||||
<pointer type-name='activity_entry'/>
|
||||
</stl-vector>
|
||||
</compound>
|
||||
|
||||
-- Reports and announcements
|
||||
|
||||
<compound name='status'>
|
||||
dtor 85356e0
|
||||
<stl-vector name='reports' type-name='pointer'/>
|
||||
<stl-vector name='announcements' type-name='pointer'/>
|
||||
<stl-vector name='unk_vec' type-name='pointer'/>
|
||||
|
||||
<int32_t name='next_report_id'/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
|
||||
<static-array name='slots' count='100'>
|
||||
<comment>Written to by code at 0x80fd7b0</comment>
|
||||
<int16_t name='id'/>
|
||||
<padding name='info' size='24' alignment='4'
|
||||
comment='Weird garbage. Possibly types change for different entries.'/>
|
||||
<stl-string name='unk3a'/>
|
||||
<stl-string name='unk3b'/>
|
||||
<stl-string name='unk3c'/>
|
||||
<stl-string name='unk3d'/>
|
||||
<int32_t name='unk4'/>
|
||||
</static-array>
|
||||
|
||||
<static-array name='slot_id_used' type-name='int16_t' count='34'/>
|
||||
<static-array name='slot_id_idx1' type-name='int16_t' count='34'/>
|
||||
<static-array name='slot_id_idx2' type-name='int16_t' count='34'/>
|
||||
|
||||
<int16_t name='slots_used'/>
|
||||
</compound>
|
||||
|
||||
<pointer name='selected_building' type-name='building'/>
|
||||
<enum base-type='int16_t' name='selected_stockpile_type' type-name='stockpile_category'/>
|
||||
<bool/>
|
||||
<padding size='8' alignment='4' comment='0'/>
|
||||
|
||||
<compound name='map'> 52cdc
|
||||
<stl-vector name='map_blocks'>
|
||||
<pointer type-name='map_block'/>
|
||||
</stl-vector>
|
||||
<pointer name='block_index'/>
|
||||
|
||||
<stl-vector name='map_block_columns'>
|
||||
<pointer type-name='map_block_column'/>
|
||||
</stl-vector>
|
||||
<pointer name='column_index'/>
|
||||
|
||||
<int32_t name='x_count_block'/>
|
||||
<int32_t name='y_count_block'/>
|
||||
<int32_t name='z_count_block'/>
|
||||
<int32_t name='x_count'/>
|
||||
<int32_t name='y_count'/>
|
||||
<int32_t name='z_count'/>
|
||||
<int32_t name='region_x'/>
|
||||
<int32_t name='region_y'/>
|
||||
<int32_t name='region_z'/>
|
||||
</compound>
|
||||
|
||||
<static-array name='unknown_52d20'
|
||||
count='2810' type-name='int16_t'/>
|
||||
|
||||
<pointer name='world_data' type-name='world_data'/>
|
||||
|
||||
<compound name='unk_54318'>
|
||||
<padding size='1180'/>
|
||||
<stl-vector comment='547b4'/>
|
||||
<stl-vector/>
|
||||
<padding size='8'/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<padding size='8'/>
|
||||
<bool/>
|
||||
<stl-string/> 547f8
|
||||
<padding size='24'/>
|
||||
<stl-vector comment='54814'/>
|
||||
<stl-vector/>
|
||||
<padding size='8'/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<padding size='8'/>
|
||||
<static-array count='10' comment='true array 54854'>
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
<static-array count='10' comment='true array 548cc'>
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
<static-array count='10' comment='true array'>
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
</compound>
|
||||
|
||||
<padding size='8' comment='0'/>
|
||||
<int32_t name='unk_54a0c'/>
|
||||
<int32_t name='unk_54a10'/>
|
||||
|
||||
-- RAWs
|
||||
|
||||
<compound name='raws' type-name='world_raws'/>
|
||||
|
||||
<compound name='unk_59dc4'>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='pointer'/>
|
||||
<static-array type-name='int16_t' count='32'/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int16_t'/>
|
||||
<stl-vector type-name='int32_t'/>
|
||||
<pointer name='unk_59e70'/>
|
||||
<int32_t name='unk_59e74'/>
|
||||
</compound>
|
||||
|
||||
<int32_t name='unk_59e78'/>
|
||||
|
||||
<compound name='unk_59e7c'>
|
||||
<stl-string name='unk_59e7c'/>
|
||||
<int32_t name="unk_5e200"/>
|
||||
<int32_t name="unk_5e204"/>
|
||||
<int32_t name="unk_5e208"/>
|
||||
<int32_t name="unk_5e20c"/>
|
||||
ctor 87ae880
|
||||
<stl-string name='unk_59e90'/>
|
||||
<padding size='16'/>
|
||||
<int32_t name="unk_5e23c"/>
|
||||
<int32_t name="unk_5e240"/>
|
||||
<stl-string name='unk_59eac'/>
|
||||
<bool/>
|
||||
<bool/>
|
||||
<bool/>
|
||||
<bool/>
|
||||
<padding size='900'/>
|
||||
<pointer name='unk_5a238'/> dtor 83bed90
|
||||
<int32_t name="unk_5e5ec"/>
|
||||
<int32_t name="unk_5e5f0"/>
|
||||
<int32_t name="unk_5e5f4"/>
|
||||
<int32_t name="unk_5e5f8"/>
|
||||
<int32_t name="unk_5e5fc"/>
|
||||
<int32_t name="unk_5e600"/>
|
||||
<int32_t name="unk_5e604"/>
|
||||
<int32_t name="unk_5e608"/>
|
||||
<bool/>
|
||||
</compound>
|
||||
|
||||
-- hist figures
|
||||
|
||||
<compound name='history' type-name='world_history'/>
|
||||
|
||||
<stl-vector name='entity_populations'>
|
||||
<pointer type-name='entity_population'/>
|
||||
</stl-vector>
|
||||
|
||||
<int32_t name="unk_5e7a0"/>
|
||||
|
||||
<int32_t name='frame_counter' comment='increases by 1 every time . is pressed'/>
|
||||
|
||||
<compound name='unk_5a39c'>
|
||||
<stl-vector name='unk_5a39c'/>
|
||||
|
||||
<static-array name='unk' count='80000'>
|
||||
<comment>Looks like a temporary buffer for pathfinding or something.</comment>
|
||||
<uint16_t name='unk1a'/>
|
||||
<uint16_t name='tag'/>
|
||||
<int32_t name='unk2'/>
|
||||
<int16_t name='x'/>
|
||||
<int16_t name='y'/>
|
||||
<int32_t name='z'/>
|
||||
</static-array>
|
||||
|
||||
<int32_t/>
|
||||
<int16_t name='x1'/>
|
||||
<int16_t name='y1'/>
|
||||
<int16_t name='z1'/>
|
||||
<int16_t name='x2'/>
|
||||
<int16_t name='y2'/>
|
||||
<int16_t name='z2'/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<int32_t/>
|
||||
<uint16_t/>
|
||||
<uint16_t name='tag'/>
|
||||
<bool/>
|
||||
<uint16_t/>
|
||||
<bool/>
|
||||
<int16_t/>
|
||||
<int16_t/>
|
||||
<bool/>
|
||||
<int32_t/>
|
||||
</compound>
|
||||
|
||||
<compound name='unk_192bd8'>
|
||||
<stl-string name='save_dir'/>
|
||||
<padding size='4'/>
|
||||
|
||||
<static-array count='19'> 192be0
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
</compound>
|
||||
|
||||
<int32_t name="unk_192cc4"/>
|
||||
|
||||
<compound name='unk_192cc8'>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
|
||||
<padding size='4'/>
|
||||
|
||||
<static-array count='105' comment='true array'>
|
||||
<stl-vector type-name='pointer'/>
|
||||
</static-array>
|
||||
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
<stl-vector/>
|
||||
|
||||
<static-array count='7'>
|
||||
<stl-vector/>
|
||||
</static-array>
|
||||
|
||||
<padding size='8'/>
|
||||
|
||||
<stl-vector/>
|
||||
</compound>
|
||||
|
||||
<compound name='unk_19325c'>
|
||||
<static-array count='3'>
|
||||
<stl-vector type-name='pointer'/>
|
||||
</static-array>
|
||||
|
||||
<padding size='12'/>
|
||||
</compound>
|
||||
</struct-type>
|
||||
</data-definition>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
indent-tabs-mode: nil
|
||||
nxml-child-indent: 4
|
||||
End:
|
||||
-->
|
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use XML::LibXML;
|
||||
|
||||
my $input_dir = $ARGV[0] || '.';
|
||||
my $output_dir = $ARGV[1] || 'codegen';
|
||||
my $separator = $ARGV[2] || "\n";
|
||||
|
||||
print "$output_dir/static.inc";
|
||||
|
||||
for my $filename (glob "$input_dir/*.xml") {
|
||||
my $parser = XML::LibXML->new();
|
||||
my $doc = $parser->parse_file($filename);
|
||||
|
||||
my @nodes = (
|
||||
$doc->findnodes('/data-definition/enum-type'),
|
||||
$doc->findnodes('/data-definition/bitfield-type'),
|
||||
$doc->findnodes('/data-definition/struct-type'),
|
||||
$doc->findnodes('/data-definition/class-type')
|
||||
);
|
||||
|
||||
for my $node (@nodes) {
|
||||
my $name = $node->getAttribute('type-name')
|
||||
or die "Unnamed type in $filename\n";
|
||||
print "$separator$output_dir/$name.h";
|
||||
}
|
||||
}
|
||||
|
||||
print $separator if $separator eq "\n";
|
||||
|
Loading…
Reference in New Issue