add TAVertexParameter/TAGlobalParameter

This commit is contained in:
Zack Buhman 2024-12-27 10:01:15 -06:00
parent c22c2581e1
commit 18e71d2aaa
6 changed files with 1208 additions and 0 deletions

View File

@ -5,3 +5,6 @@ python regs/holly.py ../dreamcast/regs/holly.csv > sega/dreamcast/holly/Holly.ja
python regs/bits_gen.py ../dreamcast/regs/core_bits.csv holly CoreBits > sega/dreamcast/holly/CoreBits.java python regs/bits_gen.py ../dreamcast/regs/core_bits.csv holly CoreBits > sega/dreamcast/holly/CoreBits.java
python regs/bits_gen.py ../dreamcast/regs/ta_bits.csv holly TABits > sega/dreamcast/holly/TABits.java python regs/bits_gen.py ../dreamcast/regs/ta_bits.csv holly TABits > sega/dreamcast/holly/TABits.java
python regs/bits_gen.py ../dreamcast/regs/isp_tsp.csv holly ISPTSP > sega/dreamcast/holly/ISPTSP.java python regs/bits_gen.py ../dreamcast/regs/isp_tsp.csv holly ISPTSP > sega/dreamcast/holly/ISPTSP.java
python regs/ta_parameters.py ../dreamcast/regs/vertex_parameter_format.csv holly TAVertexParameter > sega/dreamcast/holly/TAVertexParameter.java
python regs/ta_parameters.py ../dreamcast/regs/global_parameter_format.csv holly TAGlobalParameter > sega/dreamcast/holly/TAGlobalParameter.java

94
regs/sparse_struct.py Normal file
View File

@ -0,0 +1,94 @@
from dataclasses import dataclass
class EndOfInput(Exception):
pass
def next_row(ix, rows, advance):
if ix >= len(rows):
raise EndOfInput
if advance:
while rows[ix][0] == "":
ix += 1
if ix >= len(rows):
raise EndOfInput
row = rows[ix]
ix += 1
return ix, row
@dataclass
class FieldDeclaration:
offset: int
name: str
default: int
array_length: str
@dataclass
class StructDeclaration:
name: str
fields: list[FieldDeclaration]
size: int
def parse_type_declaration(ix, rows, expected_offset, expected_sizes):
ix, row = next_row(ix, rows, advance=True)
assert len(row) in {2, 3}, row
struct_name, *empty = row
assert all(e == "" for e in empty)
fields = []
last_offset = 0 - expected_offset
res_ix = 0
def terminate():
size = last_offset + expected_offset
assert size in expected_sizes, size
return ix, StructDeclaration(
struct_name,
fields,
size
)
seen_names = set()
while True:
try:
ix, row = next_row(ix, rows, advance=False)
except EndOfInput:
return terminate()
if row[0] == "":
return terminate()
else:
default = None
if len(row) == 2:
_offset, name = row
elif len(row) == 3:
_offset, name, _default = row
if _default.strip() != "":
default = int(_default, 16)
else:
assert False, row
offset = int(_offset, 16)
assert offset == last_offset + expected_offset, (hex(offset), hex(last_offset))
last_offset = offset
if name == "":
name = f"_res{res_ix}"
res_ix += 1
if fields and fields[-1].name == name:
assert offset == fields[-1].offset + (fields[-1].array_length * expected_offset)
fields[-1].array_length += 1
else:
assert name not in seen_names, row
seen_names.add(name)
fields.append(FieldDeclaration(offset, name, default, 1))
def parse(rows, expected_offset, expected_sizes):
ix = 0
declarations = []
while True:
try:
ix, declaration = parse_type_declaration(ix, rows, expected_offset, expected_sizes)
except EndOfInput:
break
declarations.append(declaration)
return declarations

View File

@ -0,0 +1,54 @@
def render_fields(get_type, fields):
for field in fields:
field_type = get_type(field.name)
assert field.array_length == 1
yield f"public {field_type} {field.name};"
def render_constructor(get_type, declaration):
initializer = f"public {declaration.name}("
padding = " " * len(initializer)
def start(i):
if i == 0:
return initializer
else:
return padding
constructor_fields = [f for f in declaration.fields
if (not f.name.startswith('_res')
and f.default is None
)]
for i, field in enumerate(constructor_fields):
s = start(i)
assert field.array_length <= 4, field
type = get_type(field.name) if field.array_length == 1 else "uint32_t"
comma = ',' if i + 1 < len(constructor_fields) else ''
yield s + f"{type} {field.name}" + comma
if constructor_fields:
yield padding + ') {'
else:
yield initializer + ') {'
for i, field in enumerate(declaration.fields):
value = field.name if not field.name.startswith('_res') else '0'
value = hex(field.default) if field.default is not None else value
s = ':' if i == 0 else ','
yield f"this.{field.name} = {value};"
yield "}"
array_fields = [f for f in declaration.fields
if f.array_length > 1]
def render_declaration(get_type, declaration):
yield f"public class {declaration.name} {{"
yield from render_fields(get_type, declaration.fields)
yield from render_constructor(get_type, declaration)
yield "}"
def render_declarations(get_type, package_name, class_name, declarations):
yield f"package sega.dreamcast.{package_name};"
yield ""
yield f"public class {class_name} {{"
for declaration in declarations:
yield from render_declaration(get_type, declaration)
yield "}"

69
regs/ta_parameters.py Normal file
View File

@ -0,0 +1,69 @@
import sys
from generate import renderer
from csv_input import read_input_headerless
from sparse_struct import parse
from sparse_struct_java import render_declarations
from pprint import pprint
_field_types = {
"parameter_control_word": "int",
"user_clip_": "int",
"object_pointer": "int",
"bounding_box_": "int",
"isp_tsp_instruction_word": "int",
"tsp_instruction_word": "int",
"texture_control_word": "int",
"data_size_for_sort_dma": "int",
"next_address_for_sort_dma": "int",
"face_color_": "float",
"face_offset_color_": "float",
"x": "float",
"y": "float",
"z": "float",
"base_color_": "float",
"base_color_0": "int",
"base_color_1": "int",
"offset_color_0": "int",
"offset_color_1": "int",
"base_intensity_": "int",
"u": "float",
"v": "float",
"u_v": "int",
"base_color": "int",
"offset_color": "int",
"offset_color_": "float",
"base_intensity": "float",
"offset_intensity": "float",
"a_": "float",
"b_": "float",
"c_": "float",
"d_": "float",
"a_u_a_v": "int",
"b_u_b_v": "int",
"c_u_c_v": "int",
"_res": "int"
}
def get_type(field_name: str):
match = None
match_len = 0
for name, type in _field_types.items():
if field_name.startswith(name) and len(name) >= match_len:
match = type
assert match_len != len(name), (name, match)
match_len = len(name)
assert match != None, field_name
return match
if __name__ == "__main__":
rows = read_input_headerless(sys.argv[1])
package_name = sys.argv[2]
class_name = sys.argv[3]
declarations = parse(rows,
expected_offset=4,
expected_sizes={32, 64})
render, out = renderer(indent_length=4)
render(render_declarations(get_type, package_name, class_name, declarations))
sys.stdout.write(out.getvalue())

View File

@ -0,0 +1,311 @@
package sega.dreamcast.holly;
public class TAGlobalParameter {
public class end_of_list {
public int parameter_control_word;
public int _res0;
public int _res1;
public int _res2;
public int _res3;
public int _res4;
public int _res5;
public int _res6;
public end_of_list(int parameter_control_word
) {
this.parameter_control_word = parameter_control_word;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this._res3 = 0;
this._res4 = 0;
this._res5 = 0;
this._res6 = 0;
}
}
public class user_tile_clip {
public int parameter_control_word;
public int _res0;
public int _res1;
public int _res2;
public int user_clip_x_min;
public int user_clip_y_min;
public int user_clip_x_max;
public int user_clip_y_max;
public user_tile_clip(int parameter_control_word,
int user_clip_x_min,
int user_clip_y_min,
int user_clip_x_max,
int user_clip_y_max
) {
this.parameter_control_word = parameter_control_word;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this.user_clip_x_min = user_clip_x_min;
this.user_clip_y_min = user_clip_y_min;
this.user_clip_x_max = user_clip_x_max;
this.user_clip_y_max = user_clip_y_max;
}
}
public class object_list_set {
public int parameter_control_word;
public int object_pointer;
public int _res0;
public int _res1;
public int bounding_box_x_min;
public int bounding_box_y_min;
public int bounding_box_x_max;
public int bounding_box_y_max;
public object_list_set(int parameter_control_word,
int object_pointer,
int bounding_box_x_min,
int bounding_box_y_min,
int bounding_box_x_max,
int bounding_box_y_max
) {
this.parameter_control_word = parameter_control_word;
this.object_pointer = object_pointer;
this._res0 = 0;
this._res1 = 0;
this.bounding_box_x_min = bounding_box_x_min;
this.bounding_box_y_min = bounding_box_y_min;
this.bounding_box_x_max = bounding_box_x_max;
this.bounding_box_y_max = bounding_box_y_max;
}
}
public class polygon_type_0 {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int tsp_instruction_word;
public int texture_control_word;
public int _res0;
public int _res1;
public int data_size_for_sort_dma;
public int next_address_for_sort_dma;
public polygon_type_0(int parameter_control_word,
int isp_tsp_instruction_word,
int tsp_instruction_word,
int texture_control_word,
int data_size_for_sort_dma,
int next_address_for_sort_dma
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this.tsp_instruction_word = tsp_instruction_word;
this.texture_control_word = texture_control_word;
this._res0 = 0;
this._res1 = 0;
this.data_size_for_sort_dma = data_size_for_sort_dma;
this.next_address_for_sort_dma = next_address_for_sort_dma;
}
}
public class polygon_type_1 {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int tsp_instruction_word;
public int texture_control_word;
public float face_color_alpha;
public float face_color_r;
public float face_color_g;
public float face_color_b;
public polygon_type_1(int parameter_control_word,
int isp_tsp_instruction_word,
int tsp_instruction_word,
int texture_control_word,
float face_color_alpha,
float face_color_r,
float face_color_g,
float face_color_b
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this.tsp_instruction_word = tsp_instruction_word;
this.texture_control_word = texture_control_word;
this.face_color_alpha = face_color_alpha;
this.face_color_r = face_color_r;
this.face_color_g = face_color_g;
this.face_color_b = face_color_b;
}
}
public class polygon_type_2 {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int tsp_instruction_word;
public int texture_control_word;
public int _res0;
public int _res1;
public int data_size_for_sort_dma;
public int next_address_for_sort_dma;
public float face_color_alpha;
public float face_color_r;
public float face_color_g;
public float face_color_b;
public float face_offset_color_alpha;
public float face_offset_color_r;
public float face_offset_color_g;
public float face_offset_color_b;
public polygon_type_2(int parameter_control_word,
int isp_tsp_instruction_word,
int tsp_instruction_word,
int texture_control_word,
int data_size_for_sort_dma,
int next_address_for_sort_dma,
float face_color_alpha,
float face_color_r,
float face_color_g,
float face_color_b,
float face_offset_color_alpha,
float face_offset_color_r,
float face_offset_color_g,
float face_offset_color_b
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this.tsp_instruction_word = tsp_instruction_word;
this.texture_control_word = texture_control_word;
this._res0 = 0;
this._res1 = 0;
this.data_size_for_sort_dma = data_size_for_sort_dma;
this.next_address_for_sort_dma = next_address_for_sort_dma;
this.face_color_alpha = face_color_alpha;
this.face_color_r = face_color_r;
this.face_color_g = face_color_g;
this.face_color_b = face_color_b;
this.face_offset_color_alpha = face_offset_color_alpha;
this.face_offset_color_r = face_offset_color_r;
this.face_offset_color_g = face_offset_color_g;
this.face_offset_color_b = face_offset_color_b;
}
}
public class polygon_type_3 {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int tsp_instruction_word_0;
public int texture_control_word_0;
public int tsp_instruction_word_1;
public int texture_control_word_1;
public int data_size_for_sort_dma;
public int next_address_for_sort_dma;
public polygon_type_3(int parameter_control_word,
int isp_tsp_instruction_word,
int tsp_instruction_word_0,
int texture_control_word_0,
int tsp_instruction_word_1,
int texture_control_word_1,
int data_size_for_sort_dma,
int next_address_for_sort_dma
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this.tsp_instruction_word_0 = tsp_instruction_word_0;
this.texture_control_word_0 = texture_control_word_0;
this.tsp_instruction_word_1 = tsp_instruction_word_1;
this.texture_control_word_1 = texture_control_word_1;
this.data_size_for_sort_dma = data_size_for_sort_dma;
this.next_address_for_sort_dma = next_address_for_sort_dma;
}
}
public class polygon_type_4 {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int tsp_instruction_word_0;
public int texture_control_word_0;
public int tsp_instruction_word_1;
public int texture_control_word_1;
public int data_size_for_sort_dma;
public int next_address_for_sort_dma;
public float face_color_alpha_0;
public float face_color_r_0;
public float face_color_g_0;
public float face_color_b_0;
public float face_color_alpha_1;
public float face_color_r_1;
public float face_color_g_1;
public float face_color_b_1;
public polygon_type_4(int parameter_control_word,
int isp_tsp_instruction_word,
int tsp_instruction_word_0,
int texture_control_word_0,
int tsp_instruction_word_1,
int texture_control_word_1,
int data_size_for_sort_dma,
int next_address_for_sort_dma,
float face_color_alpha_0,
float face_color_r_0,
float face_color_g_0,
float face_color_b_0,
float face_color_alpha_1,
float face_color_r_1,
float face_color_g_1,
float face_color_b_1
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this.tsp_instruction_word_0 = tsp_instruction_word_0;
this.texture_control_word_0 = texture_control_word_0;
this.tsp_instruction_word_1 = tsp_instruction_word_1;
this.texture_control_word_1 = texture_control_word_1;
this.data_size_for_sort_dma = data_size_for_sort_dma;
this.next_address_for_sort_dma = next_address_for_sort_dma;
this.face_color_alpha_0 = face_color_alpha_0;
this.face_color_r_0 = face_color_r_0;
this.face_color_g_0 = face_color_g_0;
this.face_color_b_0 = face_color_b_0;
this.face_color_alpha_1 = face_color_alpha_1;
this.face_color_r_1 = face_color_r_1;
this.face_color_g_1 = face_color_g_1;
this.face_color_b_1 = face_color_b_1;
}
}
public class sprite {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int tsp_instruction_word;
public int texture_control_word;
public int base_color;
public int offset_color;
public int data_size_for_sort_dma;
public int next_address_for_sort_dma;
public sprite(int parameter_control_word,
int isp_tsp_instruction_word,
int tsp_instruction_word,
int texture_control_word,
int base_color,
int offset_color,
int data_size_for_sort_dma,
int next_address_for_sort_dma
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this.tsp_instruction_word = tsp_instruction_word;
this.texture_control_word = texture_control_word;
this.base_color = base_color;
this.offset_color = offset_color;
this.data_size_for_sort_dma = data_size_for_sort_dma;
this.next_address_for_sort_dma = next_address_for_sort_dma;
}
}
public class modifier_volume {
public int parameter_control_word;
public int isp_tsp_instruction_word;
public int _res0;
public int _res1;
public int _res2;
public int _res3;
public int _res4;
public int _res5;
public modifier_volume(int parameter_control_word,
int isp_tsp_instruction_word
) {
this.parameter_control_word = parameter_control_word;
this.isp_tsp_instruction_word = isp_tsp_instruction_word;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this._res3 = 0;
this._res4 = 0;
this._res5 = 0;
}
}
}

View File

@ -0,0 +1,677 @@
package sega.dreamcast.holly;
public class TAVertexParameter {
public class polygon_type_0 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int _res0;
public int _res1;
public int base_color;
public int _res2;
public polygon_type_0(int parameter_control_word,
float x,
float y,
float z,
int base_color
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this._res0 = 0;
this._res1 = 0;
this.base_color = base_color;
this._res2 = 0;
}
}
public class polygon_type_1 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public float base_color_alpha;
public float base_color_r;
public float base_color_g;
public float base_color_b;
public polygon_type_1(int parameter_control_word,
float x,
float y,
float z,
float base_color_alpha,
float base_color_r,
float base_color_g,
float base_color_b
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.base_color_alpha = base_color_alpha;
this.base_color_r = base_color_r;
this.base_color_g = base_color_g;
this.base_color_b = base_color_b;
}
}
public class polygon_type_2 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int _res0;
public int _res1;
public float base_intensity;
public int _res2;
public polygon_type_2(int parameter_control_word,
float x,
float y,
float z,
float base_intensity
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this._res0 = 0;
this._res1 = 0;
this.base_intensity = base_intensity;
this._res2 = 0;
}
}
public class polygon_type_3 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public float u;
public float v;
public int base_color;
public int offset_color;
public polygon_type_3(int parameter_control_word,
float x,
float y,
float z,
float u,
float v,
int base_color,
int offset_color
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u = u;
this.v = v;
this.base_color = base_color;
this.offset_color = offset_color;
}
}
public class polygon_type_4 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int u_v;
public int _res0;
public int base_color;
public int offset_color;
public polygon_type_4(int parameter_control_word,
float x,
float y,
float z,
int u_v,
int base_color,
int offset_color
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_v = u_v;
this._res0 = 0;
this.base_color = base_color;
this.offset_color = offset_color;
}
}
public class polygon_type_5 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public float u;
public float v;
public int _res0;
public int _res1;
public float base_color_alpha;
public float base_color_r;
public float base_color_g;
public float base_color_b;
public float offset_color_alpha;
public float offset_color_r;
public float offset_color_g;
public float offset_color_b;
public polygon_type_5(int parameter_control_word,
float x,
float y,
float z,
float u,
float v,
float base_color_alpha,
float base_color_r,
float base_color_g,
float base_color_b,
float offset_color_alpha,
float offset_color_r,
float offset_color_g,
float offset_color_b
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u = u;
this.v = v;
this._res0 = 0;
this._res1 = 0;
this.base_color_alpha = base_color_alpha;
this.base_color_r = base_color_r;
this.base_color_g = base_color_g;
this.base_color_b = base_color_b;
this.offset_color_alpha = offset_color_alpha;
this.offset_color_r = offset_color_r;
this.offset_color_g = offset_color_g;
this.offset_color_b = offset_color_b;
}
}
public class polygon_type_6 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int u_v;
public int _res0;
public int _res1;
public int _res2;
public float base_color_alpha;
public float base_color_r;
public float base_color_g;
public float base_color_b;
public float offset_color_alpha;
public float offset_color_r;
public float offset_color_g;
public float offset_color_b;
public polygon_type_6(int parameter_control_word,
float x,
float y,
float z,
int u_v,
float base_color_alpha,
float base_color_r,
float base_color_g,
float base_color_b,
float offset_color_alpha,
float offset_color_r,
float offset_color_g,
float offset_color_b
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_v = u_v;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this.base_color_alpha = base_color_alpha;
this.base_color_r = base_color_r;
this.base_color_g = base_color_g;
this.base_color_b = base_color_b;
this.offset_color_alpha = offset_color_alpha;
this.offset_color_r = offset_color_r;
this.offset_color_g = offset_color_g;
this.offset_color_b = offset_color_b;
}
}
public class polygon_type_7 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public float u;
public float v;
public float base_intensity;
public float offset_intensity;
public polygon_type_7(int parameter_control_word,
float x,
float y,
float z,
float u,
float v,
float base_intensity,
float offset_intensity
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u = u;
this.v = v;
this.base_intensity = base_intensity;
this.offset_intensity = offset_intensity;
}
}
public class polygon_type_8 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int u_v;
public int _res0;
public float base_intensity;
public float offset_intensity;
public polygon_type_8(int parameter_control_word,
float x,
float y,
float z,
int u_v,
float base_intensity,
float offset_intensity
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_v = u_v;
this._res0 = 0;
this.base_intensity = base_intensity;
this.offset_intensity = offset_intensity;
}
}
public class polygon_type_9 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int base_color_0;
public int base_color_1;
public int _res0;
public int _res1;
public polygon_type_9(int parameter_control_word,
float x,
float y,
float z,
int base_color_0,
int base_color_1
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.base_color_0 = base_color_0;
this.base_color_1 = base_color_1;
this._res0 = 0;
this._res1 = 0;
}
}
public class polygon_type_10 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int base_intensity_0;
public int base_intensity_1;
public int _res0;
public int _res1;
public polygon_type_10(int parameter_control_word,
float x,
float y,
float z,
int base_intensity_0,
int base_intensity_1
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.base_intensity_0 = base_intensity_0;
this.base_intensity_1 = base_intensity_1;
this._res0 = 0;
this._res1 = 0;
}
}
public class polygon_type_11 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public float u_0;
public float v_0;
public int base_color_0;
public int offset_color_0;
public float u_1;
public float v_1;
public int base_color_1;
public int offset_color_1;
public int _res0;
public int _res1;
public int _res2;
public int _res3;
public polygon_type_11(int parameter_control_word,
float x,
float y,
float z,
float u_0,
float v_0,
int base_color_0,
int offset_color_0,
float u_1,
float v_1,
int base_color_1,
int offset_color_1
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_0 = u_0;
this.v_0 = v_0;
this.base_color_0 = base_color_0;
this.offset_color_0 = offset_color_0;
this.u_1 = u_1;
this.v_1 = v_1;
this.base_color_1 = base_color_1;
this.offset_color_1 = offset_color_1;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this._res3 = 0;
}
}
public class polygon_type_12 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int u_v_0;
public int _res0;
public int base_color_0;
public int offset_color_0;
public int u_v_1;
public int _res1;
public int base_color_1;
public int offset_color_1;
public int _res2;
public int _res3;
public int _res4;
public int _res5;
public polygon_type_12(int parameter_control_word,
float x,
float y,
float z,
int u_v_0,
int base_color_0,
int offset_color_0,
int u_v_1,
int base_color_1,
int offset_color_1
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_v_0 = u_v_0;
this._res0 = 0;
this.base_color_0 = base_color_0;
this.offset_color_0 = offset_color_0;
this.u_v_1 = u_v_1;
this._res1 = 0;
this.base_color_1 = base_color_1;
this.offset_color_1 = offset_color_1;
this._res2 = 0;
this._res3 = 0;
this._res4 = 0;
this._res5 = 0;
}
}
public class polygon_type_13 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public float u_0;
public float v_0;
public int base_intensity_0;
public float offset_intensity_0;
public float u_1;
public float v_1;
public int base_intensity_1;
public float offset_intensity_1;
public int _res0;
public int _res1;
public int _res2;
public int _res3;
public polygon_type_13(int parameter_control_word,
float x,
float y,
float z,
float u_0,
float v_0,
int base_intensity_0,
float offset_intensity_0,
float u_1,
float v_1,
int base_intensity_1,
float offset_intensity_1
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_0 = u_0;
this.v_0 = v_0;
this.base_intensity_0 = base_intensity_0;
this.offset_intensity_0 = offset_intensity_0;
this.u_1 = u_1;
this.v_1 = v_1;
this.base_intensity_1 = base_intensity_1;
this.offset_intensity_1 = offset_intensity_1;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this._res3 = 0;
}
}
public class polygon_type_14 {
public int parameter_control_word;
public float x;
public float y;
public float z;
public int u_v_0;
public int _res0;
public int base_intensity_0;
public float offset_intensity_0;
public int u_v_1;
public int _res1;
public int base_intensity_1;
public float offset_intensity_1;
public int _res2;
public int _res3;
public int _res4;
public int _res5;
public polygon_type_14(int parameter_control_word,
float x,
float y,
float z,
int u_v_0,
int base_intensity_0,
float offset_intensity_0,
int u_v_1,
int base_intensity_1,
float offset_intensity_1
) {
this.parameter_control_word = parameter_control_word;
this.x = x;
this.y = y;
this.z = z;
this.u_v_0 = u_v_0;
this._res0 = 0;
this.base_intensity_0 = base_intensity_0;
this.offset_intensity_0 = offset_intensity_0;
this.u_v_1 = u_v_1;
this._res1 = 0;
this.base_intensity_1 = base_intensity_1;
this.offset_intensity_1 = offset_intensity_1;
this._res2 = 0;
this._res3 = 0;
this._res4 = 0;
this._res5 = 0;
}
}
public class sprite_type_0 {
public int parameter_control_word;
public float a_x;
public float a_y;
public float a_z;
public float b_x;
public float b_y;
public float b_z;
public float c_x;
public float c_y;
public float c_z;
public float d_x;
public float d_y;
public int _res0;
public int _res1;
public int _res2;
public int _res3;
public sprite_type_0(int parameter_control_word,
float a_x,
float a_y,
float a_z,
float b_x,
float b_y,
float b_z,
float c_x,
float c_y,
float c_z,
float d_x,
float d_y
) {
this.parameter_control_word = parameter_control_word;
this.a_x = a_x;
this.a_y = a_y;
this.a_z = a_z;
this.b_x = b_x;
this.b_y = b_y;
this.b_z = b_z;
this.c_x = c_x;
this.c_y = c_y;
this.c_z = c_z;
this.d_x = d_x;
this.d_y = d_y;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this._res3 = 0;
}
}
public class sprite_type_1 {
public int parameter_control_word;
public float a_x;
public float a_y;
public float a_z;
public float b_x;
public float b_y;
public float b_z;
public float c_x;
public float c_y;
public float c_z;
public float d_x;
public float d_y;
public int _res0;
public int a_u_a_v;
public int b_u_b_v;
public int c_u_c_v;
public sprite_type_1(int parameter_control_word,
float a_x,
float a_y,
float a_z,
float b_x,
float b_y,
float b_z,
float c_x,
float c_y,
float c_z,
float d_x,
float d_y,
int a_u_a_v,
int b_u_b_v,
int c_u_c_v
) {
this.parameter_control_word = parameter_control_word;
this.a_x = a_x;
this.a_y = a_y;
this.a_z = a_z;
this.b_x = b_x;
this.b_y = b_y;
this.b_z = b_z;
this.c_x = c_x;
this.c_y = c_y;
this.c_z = c_z;
this.d_x = d_x;
this.d_y = d_y;
this._res0 = 0;
this.a_u_a_v = a_u_a_v;
this.b_u_b_v = b_u_b_v;
this.c_u_c_v = c_u_c_v;
}
}
public class modifier_volume {
public int parameter_control_word;
public float a_x;
public float a_y;
public float a_z;
public float b_x;
public float b_y;
public float b_z;
public float c_x;
public float c_y;
public float c_z;
public int _res0;
public int _res1;
public int _res2;
public int _res3;
public int _res4;
public int _res5;
public modifier_volume(int parameter_control_word,
float a_x,
float a_y,
float a_z,
float b_x,
float b_y,
float b_z,
float c_x,
float c_y,
float c_z
) {
this.parameter_control_word = parameter_control_word;
this.a_x = a_x;
this.a_y = a_y;
this.a_z = a_z;
this.b_x = b_x;
this.b_y = b_y;
this.b_z = b_z;
this.c_x = c_x;
this.c_y = c_y;
this.c_z = c_z;
this._res0 = 0;
this._res1 = 0;
this._res2 = 0;
this._res3 = 0;
this._res4 = 0;
this._res5 = 0;
}
}
}