Skip to content

Instantly share code, notes, and snippets.

@dextercd
Last active November 29, 2022 16:31
Show Gist options
  • Save dextercd/5a07270007308be17dba86cddc8ef007 to your computer and use it in GitHub Desktop.
Save dextercd/5a07270007308be17dba86cddc8ef007 to your computer and use it in GitHub Desktop.
Noita Load materials
/* WARNING: Could not reconcile some variable overlaps */
void load_material_xml(CellData *param_1_00,CXmlFileSys *filesys)
{
void **ppvVar1;
uint8_t uVar2;
char cVar3;
uint16_t uVar4;
bool filesys_state;
std_string *psVar4;
CellData *psVar5;
void *psVar7;
CellData *psVar6;
cell_type cVar8;
uint pcVar9;
int crackability;
uint uVar14;
undefined4 uVar5;
undefined4 *puVar15;
undefined4 *puVar16;
CXmlNode *pCVar6;
undefined4 extraout_ECX_04;
undefined4 extraout_ECX_08;
undefined4 extraout_ECX_09;
undefined4 extraout_ECX_10;
undefined4 extraout_ECX_11;
undefined4 extraout_ECX_12;
undefined4 extraout_ECX_13;
undefined4 extraout_ECX_14;
undefined4 extraout_ECX_15;
undefined4 extraout_ECX_16;
undefined4 extraout_ECX_17;
undefined4 extraout_ECX_18;
undefined4 extraout_ECX_19;
code *pcVar17;
code *pcVar18;
CellData *material;
int **unaff_FS_OFFSET;
float fVar7;
int local_1d0 [4];
int local_1c0 [40];
CXmlFileSys *local_120;
int *local_11c;
CellData *local_118;
int local_114;
void *local_110;
char local_109;
undefined local_108 [24];
std_string local_f0;
undefined local_d8 [24];
std_string local_c0;
std_string local_a8;
std_string local_90;
std_string local_78;
std_string local_60;
undefined local_48 [12];
uint *local_3c;
size_t sStack_38;
uint uStack_34;
std_string local_30;
std_string *local_18;
int *local_10;
undefined *puStack_c;
undefined4 local_8;
std_string *psVar12;
void *puVar1;
local_8 = 0xffffffff;
puStack_c = &LAB_00c8e95b;
local_10 = *unaff_FS_OFFSET;
psVar4 = (std_string *)(DAT_00f3a000 ^ (uint)&stack0xfffffffc);
*unaff_FS_OFFSET = (int *)&local_10;
pcVar18 = operator_delete_exref;
local_120 = filesys;
local_118 = param_1_00;
local_18 = psVar4;
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(param_1_00);
local_8 = 0;
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
std_string::from_char_star_length(&local_30,"name",4);
local_8 = CONCAT31(local_8._1_3_,1);
pCVar6 = filesys->myCurrentNode;
puVar1 = *(void **)(pCVar6->myAttributes + 0xc);
local_11c = (int *)pCVar6->myAttributes;
local_110 = (void *)FUN_00bc32c0(pCVar6->myAttributes + 0xc,&local_30);
if ((local_110 == (void *)local_11c[3]) ||
(crackability = std_string_cmp(&local_30,(std_string *)((int)local_110 + 0x10)),
(char)crackability != '\0')) {
local_110 = (void *)local_11c[3];
}
if (local_110 == puVar1) {
FUN_00c42160(local_11c,&local_30,&local_3c);
}
pcVar18 = operator_delete_exref;
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8 = 0xffffffff;
FUN_0042bc70();
filesys = local_120;
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"name");
local_109 = HasAttribute(filesys->myCurrentNode,&local_30);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
if (local_109 != '\0') {
char_star_to_std_string(local_48,"name");
local_8 = 2;
crackability = ceng::CXmlNode::GetAttributeValue
(filesys->myCurrentNode,(std_string *)local_48);
psVar5 = (CellData *)std_string_from_CAnyContainer((undefined *)&local_30,crackability);
std_string::move_assign(&param_1_00->name,(std_string *)psVar5);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_8 = 0xffffffff;
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
if (0xf < uStack_34) {
operator_delete(local_48._0_4_);
}
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(&param_1_00->ui_name);
local_8 = 3;
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
std_string::from_char_star_length(&local_30,"ui_name",7);
local_8 = CONCAT31(local_8._1_3_,4);
pCVar6 = filesys->myCurrentNode;
local_11c = (int *)pCVar6->myAttributes;
puVar1 = *(void **)(pCVar6->myAttributes + 0xc);
ppvVar1 = (void **)(pCVar6->myAttributes + 0xc);
psVar7 = (void *)FUN_00bc32c0(ppvVar1,&local_30);
if ((psVar7 == *ppvVar1) ||
(crackability = std_string_cmp(&local_30,(std_string *)((int)psVar7 + 0x10)),
local_110 = psVar7, (char)crackability != '\0')) {
local_110 = *ppvVar1;
}
if (local_110 == puVar1) {
FUN_00c42160(local_11c,&local_30,&local_3c);
}
pcVar17 = operator_delete_exref;
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8 = 0xffffffff;
FUN_0042bc70();
filesys = local_120;
}
else {
pcVar17 = operator_delete_exref;
if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"ui_name");
local_109 = HasAttribute(filesys->myCurrentNode,&local_30);
if (0xf < local_30.capacity) {
(*pcVar18)(local_30.buffer);
}
pcVar17 = operator_delete_exref;
if (local_109 != '\0') {
char_star_to_std_string(&local_30,"ui_name");
local_8 = 5;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar6 = (CellData *)std_string_from_CAnyContainer((undefined *)&local_60,crackability);
std_string::move_assign(&param_1_00->ui_name,(std_string *)psVar6);
destruct_string(&local_60);
local_8 = 0xffffffff;
destruct_string(&local_30);
pcVar17 = operator_delete_exref;
}
}
}
material = local_118;
if (((filesys->myStatus == reading) && ((local_118->ui_name).size == 0)) &&
((CellData *)&local_118->ui_name != local_118)) {
std_string::copy_construct?(&local_118->ui_name,&local_118->name,(int *)0x0,(int *)0xffffffff);
}
FUN_0048a4c0(local_108 + 0x18,material->cell_type);
local_8 = 6;
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(local_108 + 0x18);
local_8._0_1_ = 7;
char_star_to_std_string(&local_30,"cell_type");
local_8 = CONCAT31(local_8._1_3_,8);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8 = CONCAT31(local_8._1_3_,6);
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"cell_type");
local_109 = HasAttribute(filesys->myCurrentNode,&local_30);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
if (local_109 != '\0') {
char_star_to_std_string(&local_30,"cell_type");
local_8._0_1_ = 9;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign((std_string *)(local_108 + 0x18),psVar12);
destruct_string(&local_78);
local_8 = CONCAT31(local_8._1_3_,6);
destruct_string(&local_30);
}
}
cVar8 = cell_type_from_std_string(local_108 + 0x18);
material->cell_type = cVar8;
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->platform_type);
local_8._0_1_ = 10;
char_star_to_std_string(&local_30,"platform_type");
local_8 = CONCAT31(local_8._1_3_,0xb);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8 = CONCAT31(local_8._1_3_,6);
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"platform_type");
local_109 = HasAttribute(filesys->myCurrentNode,&local_30);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
if (local_109 != '\0') {
char_star_to_std_string(&local_30,"platform_type");
local_8._0_1_ = 0xc;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->platform_type = (int)puVar1;
local_8 = CONCAT31(local_8._1_3_,6);
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->gfx_glow);
local_8._0_1_ = 0xd;
char_star_to_std_string(&local_30,"gfx_glow");
local_8 = CONCAT31(local_8._1_3_,0xe);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8 = CONCAT31(local_8._1_3_,6);
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"gfx_glow");
local_109 = HasAttribute(filesys->myCurrentNode,&local_30);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
if (local_109 != '\0') {
char_star_to_std_string(&local_30,"gfx_glow");
local_8._0_1_ = 0xf;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->gfx_glow = (int)puVar1;
local_8 = CONCAT31(local_8._1_3_,6);
destruct_string(&local_30);
}
}
FUN_0044aac0();
local_8._0_1_ = 0x10;
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(&local_a8);
local_8._0_1_ = 0x11;
char_star_to_std_string(&local_30,"gfx_glow_color");
local_8 = CONCAT31(local_8._1_3_,0x12);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"gfx_glow_color");
local_109 = HasAttribute(filesys->myCurrentNode,&local_30);
if (0xf < local_30.capacity) {
(*pcVar17)(local_30.buffer);
}
if (local_109 != '\0') {
char_star_to_std_string(&local_30,"gfx_glow_color");
local_8._0_1_ = 0x13;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&local_a8,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
pcVar9 = ConvertStringToColor();
material->gfx_glow_color = pcVar9;
psVar12 = (std_string *)FUN_0044aac0();
std_string::move_assign(&local_a8,psVar12);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(&local_a8);
local_8._0_1_ = 0x14;
char_star_to_std_string(&local_30,"wang_color");
local_8 = CONCAT31(local_8._1_3_,0x15);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"wang_color");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"wang_color");
local_8._0_1_ = 0x16;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&local_a8,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
pcVar9 = ConvertStringToColor();
material->wang_color = pcVar9;
if (pcVar9 == 0xffeeffc0) {
FUN_00842b70(extraout_ECX_04);
material = local_118;
log_std_string(local_118);
FUN_0043d930("\n");
}
if (filesys->myStatus == reading) {
filesys->myLine = 0xa0;
char_star_to_std_string
(local_d8,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\cell s\\cellfactory.cpp"
);
local_8._0_1_ = 0x17;
if (filesys != (CXmlFileSys *)local_d8) {
std_string::copy_construct?
(&filesys->myFilename,(std_string *)(CXmlFileSys *)local_d8,(int *)0x0,
(int *)0xffffffff);
}
local_8._0_1_ = 0x10;
if (0xf < local_d8._20_4_) {
operator_delete(local_d8._0_4_);
}
char_star_to_std_string(&local_30,"Graphics");
local_8._0_1_ = 0x18;
local_109 = FUN_0042c240(&local_30);
local_8._0_1_ = 0x10;
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
if (local_109 != '\0') {
char_star_to_std_string(&local_30,"Graphics");
local_8 = CONCAT31(local_8._1_3_,0x19);
ceng::CXmlFileSys::FindChildByName(filesys,psVar4);
FUN_008a2ce0();
LAB_006882e5:
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
else if (filesys->myStatus == writing) {
filesys->myLine = 0xa0;
char_star_to_std_string
(local_108,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\cell s\\cellfactory.cpp"
);
local_8._0_1_ = 0x1a;
if (filesys != (CXmlFileSys *)local_108) {
std_string::copy_construct?
(&filesys->myFilename,(std_string *)(CXmlFileSys *)local_108,(int *)0x0,
(int *)0xffffffff);
}
local_8._0_1_ = 0x10;
destruct_string((std_string *)local_108);
char_star_to_std_string(&local_30,"Graphics");
local_8 = CONCAT31(local_8._1_3_,0x1b);
local_110 = (void *)FUN_008a2d80();
*(CXmlNode **)((int)local_110 + 4) = filesys->myCurrentNode;
FUN_00c42090(&local_110);
goto LAB_006882e5;
}
if ((filesys->myStatus == reading) && (material->default_primary_colour == 0)) {
material->default_primary_colour = material->wang_color;
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->cell_holes_in_texture);
local_8._0_1_ = 0x1c;
char_star_to_std_string(&local_30,"cell_holes_in_texture");
local_8 = CONCAT31(local_8._1_3_,0x1d);
FUN_0042be70(&local_30,&local_3c);
pcVar18 = operator_delete_exref;
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
pcVar18 = operator_delete_exref;
if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"cell_holes_in_texture");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
pcVar18 = operator_delete_exref;
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"cell_holes_in_texture");
local_8._0_1_ = 0x1e;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->cell_holes_in_texture = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
pcVar18 = operator_delete_exref;
}
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->stainable);
local_8._0_1_ = 0x1f;
char_star_to_std_string(&local_30,"stainable");
local_8 = CONCAT31(local_8._1_3_,0x20);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
(*pcVar18)(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"stainable");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"stainable");
local_8._0_1_ = 0x21;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->stainable = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->burnable);
local_8._0_1_ = 0x22;
char_star_to_std_string(&local_30,"burnable");
local_8 = CONCAT31(local_8._1_3_,0x23);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"burnable");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"burnable");
local_8._0_1_ = 0x24;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->burnable = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->on_fire);
local_8._0_1_ = 0x25;
char_star_to_std_string(&local_30,"on_fire");
local_8 = CONCAT31(local_8._1_3_,0x26);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"on_fire");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"on_fire");
local_8._0_1_ = 0x27;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->on_fire = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->fire_hp);
local_8._0_1_ = 0x28;
char_star_to_std_string(&local_30,"fire_hp");
local_8 = CONCAT31(local_8._1_3_,0x29);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"fire_hp");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"fire_hp");
local_8._0_1_ = 0x2a;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->fire_hp = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->autoignition_temperature);
local_8._0_1_ = 0x2b;
char_star_to_std_string(&local_30,"autoignition_temperature");
local_8 = CONCAT31(local_8._1_3_,0x2c);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"autoignition_temperature");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"autoignition_temperature");
local_8._0_1_ = 0x2d;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->autoignition_temperature = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->temperature_of_fire);
local_8._0_1_ = 0x2e;
char_star_to_std_string(&local_30,"temperature_of_fire");
local_8 = CONCAT31(local_8._1_3_,0x2f);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"temperature_of_fire");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"temperature_of_fire");
local_8._0_1_ = 0x30;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->temperature_of_fire = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->generates_smoke);
local_8._0_1_ = 0x31;
char_star_to_std_string(&local_30,"generates_smoke");
local_8 = CONCAT31(local_8._1_3_,0x32);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"generates_smoke");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"generates_smoke");
local_8._0_1_ = 0x33;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->generates_smoke = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->generates_flames);
local_8._0_1_ = 0x34;
char_star_to_std_string(&local_30,"generates_flames");
local_8 = CONCAT31(local_8._1_3_,0x35);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"generates_flames");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"generates_flames");
local_8._0_1_ = 0x36;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->generates_flames = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->requires_oxygen);
local_8._0_1_ = 0x37;
char_star_to_std_string(&local_30,"requires_oxygen");
local_8 = CONCAT31(local_8._1_3_,0x38);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"requires_oxygen");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"requires_oxygen");
local_8._0_1_ = 0x39;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->requires_oxygen = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(&material->on_fire_convert_to_material);
local_8._0_1_ = 0x3a;
char_star_to_std_string(&local_30,"on_fire_convert_to_material");
local_8 = CONCAT31(local_8._1_3_,0x3b);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"on_fire_convert_to_material");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"on_fire_convert_to_material");
local_8._0_1_ = 0x3c;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->on_fire_convert_to_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(&material->on_fire_flame_material);
local_8._0_1_ = 0x3d;
char_star_to_std_string(&local_30,"on_fire_flame_material");
local_8 = CONCAT31(local_8._1_3_,0x3e);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"on_fire_flame_material");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"on_fire_flame_material");
local_8._0_1_ = 0x3f;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->on_fire_flame_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_std_string(&material->on_fire_smoke_material);
local_8._0_1_ = 0x40;
char_star_to_std_string(&local_30,"on_fire_smoke_material");
local_8 = CONCAT31(local_8._1_3_,0x41);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"on_fire_smoke_material");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"on_fire_smoke_material");
local_8._0_1_ = 0x42;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->on_fire_smoke_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->durability);
local_8._0_1_ = 0x43;
char_star_to_std_string(&local_30,"durability");
local_8 = CONCAT31(local_8._1_3_,0x44);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"durability");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"durability");
local_8._0_1_ = 0x45;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->durability = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->lifetime);
local_8._0_1_ = 0x46;
char_star_to_std_string(&local_30,"lifetime");
local_8 = CONCAT31(local_8._1_3_,0x47);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"lifetime");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"lifetime");
local_8._0_1_ = 0x48;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->lifetime = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_float((int *)&local_3c,&material->density);
local_8._0_1_ = 0x49;
char_star_to_std_string(&local_30,"density");
local_8 = CONCAT31(local_8._1_3_,0x4a);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"density");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"density");
local_8._0_1_ = 0x4b;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
fVar7 = float_from_CAnyContainer(crackability);
material->density = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_float((int *)&local_3c,&material->liquid_gravity);
local_8._0_1_ = 0x4c;
char_star_to_std_string(&local_30,"liquid_gravity");
local_8 = CONCAT31(local_8._1_3_,0x4d);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_gravity");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_gravity");
local_8._0_1_ = 0x4e;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
fVar7 = float_from_CAnyContainer(crackability);
material->liquid_gravity = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->liquid_slime);
local_8._0_1_ = 0x4f;
char_star_to_std_string(&local_30,"liquid_slime");
local_8 = CONCAT31(local_8._1_3_,0x50);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_slime");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_slime");
local_8._0_1_ = 0x51;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->liquid_slime = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->liquid_sand);
local_8._0_1_ = 0x52;
char_star_to_std_string(&local_30,"liquid_sand");
local_8 = CONCAT31(local_8._1_3_,0x53);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_sand");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sand");
local_8._0_1_ = 0x54;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->liquid_sand = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->liquid_viscosity);
local_8._0_1_ = 0x55;
char_star_to_std_string(&local_30,"liquid_viscosity");
local_8 = CONCAT31(local_8._1_3_,0x56);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_viscosity");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_viscosity");
local_8._0_1_ = 0x57;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->liquid_viscosity = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->liquid_static);
local_8._0_1_ = 0x58;
char_star_to_std_string(&local_30,"liquid_static");
local_8 = CONCAT31(local_8._1_3_,0x59);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_static");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_static");
local_8._0_1_ = 0x5a;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->liquid_static = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_int((int *)&local_3c,&material->liquid_stains);
local_8._0_1_ = 0x5b;
char_star_to_std_string(&local_30,"liquid_stains");
local_8 = CONCAT31(local_8._1_3_,0x5c);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_stains");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_stains");
local_8._0_1_ = 0x5d;
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->liquid_stains = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
if (filesys->myStatus == writing) {
CAnyContainer_from_bool((int *)&local_3c,&material->liquid_stains_self);
local_8._0_1_ = 0x5e;
char_star_to_std_string(&local_30,"liquid_stains_self");
local_8 = CONCAT31(local_8._1_3_,0x5f);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
local_30.capacity = 0xf;
local_30.size = 0;
local_30.buffer = (char *)((uint)local_30.buffer & 0xffffff00);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else if (filesys->myStatus == reading) {
char_star_to_std_string(&local_30,"liquid_stains_self");
cVar3 = HasAttribute(filesys->myCurrentNode,&local_30);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_stains_self");
local_8._0_1_ = 0x60;
crackability = ceng::CXmlNode::GetAttributeValue(filesys->myCurrentNode,&local_30);
filesys_state = bool_from_CAnyContainer(crackability);
material->liquid_stains_self = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
char_star_to_std_string(&local_30,"liquid_stains_custom_color");
local_8._0_1_ = 0x61;
local_3c = &material->liquid_stains_custom_color;
sStack_38 = 0;
uStack_34 = 4;
FUN_007407c0(filesys,&local_3c,&local_30);
local_8._0_1_ = 0x10;
if (0xf < local_30.capacity) {
operator_delete(local_30.buffer);
}
if (filesys->myStatus == writing) {
CAnyContainer_from_float((int *)&local_3c,&material->liquid_sprite_stain_shaken_drop_chance);
local_8._0_1_ = 0x62;
char_star_to_std_string(&local_30,"liquid_sprite_stain_shaken_drop_chance");
local_8 = CONCAT31(local_8._1_3_,99);
FUN_0042be70(&local_30,&local_3c);
if (0xf < local_30.capacity) {
FUN_0041e4d0(local_30.buffer,extraout_ECX_08);
}
local_30.capacity = 0xf;
FUN_0041dfa0(0);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_sprite_stain_shaken_drop_chance");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sprite_stain_shaken_drop_chance");
psVar12 = &local_30;
local_8._0_1_ = 100;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->liquid_sprite_stain_shaken_drop_chance = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->liquid_sprite_stain_ignited_drop_chance);
local_8._0_1_ = 0x65;
char_star_to_std_string(&local_30,"liquid_sprite_stain_ignited_drop_chance");
local_8._0_1_ = 0x66;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_sprite_stain_ignited_drop_chance");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sprite_stain_ignited_drop_chance");
psVar12 = &local_30;
local_8._0_1_ = 0x67;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->liquid_sprite_stain_ignited_drop_chance = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int8(&material->liquid_sprite_stains_check_offset);
local_8._0_1_ = 0x68;
char_star_to_std_string(&local_30,"liquid_sprite_stains_check_offset");
local_8._0_1_ = 0x69;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_sprite_stains_check_offset");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sprite_stains_check_offset");
psVar12 = &local_30;
local_8._0_1_ = 0x6a;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int8_from_CAnyContainer(puVar1,psVar4);
material->liquid_sprite_stains_check_offset = (uint8_t)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->liquid_sprite_stains_status_threshold);
local_8._0_1_ = 0x6b;
char_star_to_std_string(&local_30,"liquid_sprite_stains_status_threshold");
local_8._0_1_ = 0x6c;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_sprite_stains_status_threshold");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sprite_stains_status_threshold");
psVar12 = &local_30;
local_8._0_1_ = 0x6d;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->liquid_sprite_stains_status_threshold = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int((int *)&local_3c,&material->liquid_sticks_to_ceiling);
local_8._0_1_ = 0x6e;
char_star_to_std_string(&local_30,"liquid_sticks_to_ceiling");
local_8._0_1_ = 0x6f;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_sticks_to_ceiling");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sticks_to_ceiling");
psVar12 = &local_30;
local_8._0_1_ = 0x70;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->liquid_sticks_to_ceiling = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->liquid_damping);
local_8._0_1_ = 0x71;
char_star_to_std_string(&local_30,"liquid_damping");
local_8._0_1_ = 0x72;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_damping");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_damping");
psVar12 = &local_30;
local_8._0_1_ = 0x73;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->liquid_damping = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->liquid_flow_speed);
local_8._0_1_ = 0x74;
char_star_to_std_string(&local_30,"liquid_flow_speed");
local_8._0_1_ = 0x75;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_flow_speed");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_flow_speed");
psVar12 = &local_30;
local_8._0_1_ = 0x76;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->liquid_flow_speed = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->liquid_sand_never_box2d);
local_8._0_1_ = 0x77;
char_star_to_std_string(&local_30,"liquid_sand_never_box2d");
local_8._0_1_ = 0x78;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"liquid_sand_never_box2d");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"liquid_sand_never_box2d");
psVar12 = &local_30;
local_8._0_1_ = 0x79;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->liquid_sand_never_box2d = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (((filesys_state) && (material->cell_type == liquid)) && (material->liquid_sand == false)) {
material->electrical_conductivity = true;
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int((int *)&local_3c,&material->crackability);
local_8._0_1_ = 0x7a;
char_star_to_std_string(&local_30,"crackability");
local_8._0_1_ = 0x7b;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"crackability");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"crackability");
psVar12 = &local_30;
local_8._0_1_ = 0x7c;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->crackability = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->electrical_conductivity);
local_8._0_1_ = 0x7d;
char_star_to_std_string(&local_30,"electrical_conductivity");
local_8._0_1_ = 0x7e;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"electrical_conductivity");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"electrical_conductivity");
psVar12 = &local_30;
local_8._0_1_ = 0x7f;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->electrical_conductivity = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->slippery);
local_8._0_1_ = 0x80;
char_star_to_std_string(&local_30,"slippery");
local_8._0_1_ = 0x81;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"slippery");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"slippery");
psVar12 = &local_30;
local_8._0_1_ = 0x82;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->slippery = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->stickyness);
local_8._0_1_ = 0x83;
char_star_to_std_string(&local_30,"stickyness");
local_8._0_1_ = 0x84;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"stickyness");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"stickyness");
psVar12 = &local_30;
local_8._0_1_ = 0x85;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->stickyness = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&material->cold_freezes_to_material);
local_8._0_1_ = 0x86;
char_star_to_std_string(&local_30,"cold_freezes_to_material");
local_8._0_1_ = 0x87;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"cold_freezes_to_material");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"cold_freezes_to_material");
psVar12 = &local_30;
local_8._0_1_ = 0x88;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar12,extraout_ECX_09);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->cold_freezes_to_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&material->warmth_melts_to_material);
local_8._0_1_ = 0x89;
char_star_to_std_string(&local_30,"warmth_melts_to_material");
local_8._0_1_ = 0x8a;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"warmth_melts_to_material");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"warmth_melts_to_material");
psVar12 = &local_30;
local_8._0_1_ = 0x8b;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar12,extraout_ECX_10);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->warmth_melts_to_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int16(&local_3c,(int *)&material->cold_freezes_chance_rev);
local_8._0_1_ = 0x8c;
char_star_to_std_string(&local_30,"cold_freezes_chance_rev");
local_8._0_1_ = 0x8d;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"cold_freezes_chance_rev");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"cold_freezes_chance_rev");
psVar12 = &local_30;
local_8._0_1_ = 0x8e;
pCVar6 = (CXmlNode *)FUN_0042be60();
ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
uVar4 = int16_from_CAnyContainer();
material->cold_freezes_chance_rev = uVar4;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int16(&local_3c,(int *)&material->warmth_melts_chance_rev);
local_8._0_1_ = 0x8f;
char_star_to_std_string(&local_30,"warmth_melts_chance_rev");
local_8._0_1_ = 0x90;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"warmth_melts_chance_rev");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"warmth_melts_chance_rev");
psVar12 = &local_30;
local_8._0_1_ = 0x91;
pCVar6 = (CXmlNode *)FUN_0042be60();
ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
uVar4 = int16_from_CAnyContainer();
material->warmth_melts_chance_rev = uVar4;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->cold_freezes_to_dont_do_reverse_reaction);
local_8._0_1_ = 0x92;
char_star_to_std_string(&local_30,"cold_freezes_to_dont_do_reverse_reaction");
local_8._0_1_ = 0x93;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"cold_freezes_to_dont_do_reverse_reaction");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"cold_freezes_to_dont_do_reverse_reaction");
psVar12 = &local_30;
local_8._0_1_ = 0x94;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->cold_freezes_to_dont_do_reverse_reaction = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_uint8((int *)&local_3c,&material->gas_speed);
local_8._0_1_ = 0x95;
char_star_to_std_string(&local_30,"gas_speed");
local_8._0_1_ = 0x96;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"gas_speed");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"gas_speed");
psVar12 = &local_30;
local_8._0_1_ = 0x97;
pCVar6 = (CXmlNode *)FUN_0042be60();
ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
uVar2 = uint8_from_CAnyContainer();
material->gas_speed = uVar2;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_uint8((int *)&local_3c,&material->gas_upwards_speed);
local_8._0_1_ = 0x98;
char_star_to_std_string(&local_30,"gas_upwards_speed");
local_8._0_1_ = 0x99;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"gas_upwards_speed");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"gas_upwards_speed");
psVar12 = &local_30;
local_8._0_1_ = 0x9a;
pCVar6 = (CXmlNode *)FUN_0042be60();
ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
uVar2 = uint8_from_CAnyContainer();
material->gas_upwards_speed = uVar2;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_uint8((int *)&local_3c,&material->gas_horizontal_speed);
local_8._0_1_ = 0x9b;
char_star_to_std_string(&local_30,"gas_horizontal_speed");
local_8._0_1_ = 0x9c;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"gas_horizontal_speed");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"gas_horizontal_speed");
psVar12 = &local_30;
local_8._0_1_ = 0x9d;
pCVar6 = (CXmlNode *)FUN_0042be60();
ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
uVar2 = uint8_from_CAnyContainer();
material->gas_horizontal_speed = uVar2;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_uint8((int *)&local_3c,&material->gas_downwards_speed);
local_8._0_1_ = 0x9e;
char_star_to_std_string(&local_30,"gas_downwards_speed");
local_8._0_1_ = 0x9f;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"gas_downwards_speed");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"gas_downwards_speed");
psVar12 = &local_30;
local_8._0_1_ = 0xa0;
pCVar6 = (CXmlNode *)FUN_0042be60();
ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
uVar2 = uint8_from_CAnyContainer();
material->gas_downwards_speed = uVar2;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->solid_friction);
local_8._0_1_ = 0xa1;
char_star_to_std_string(&local_30,"solid_friction");
local_8._0_1_ = 0xa2;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_friction");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_friction");
psVar12 = &local_30;
local_8._0_1_ = 0xa3;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->solid_friction = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->solid_restitution);
local_8._0_1_ = 0xa4;
char_star_to_std_string(&local_30,"solid_restitution");
local_8._0_1_ = 0xa5;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_restitution");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_restitution");
psVar12 = &local_30;
local_8._0_1_ = 0xa6;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->solid_restitution = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->solid_gravity_scale);
local_8._0_1_ = 0xa7;
char_star_to_std_string(&local_30,"solid_gravity_scale");
local_8._0_1_ = 0xa8;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_gravity_scale");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_gravity_scale");
psVar12 = &local_30;
local_8._0_1_ = 0xa9;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->solid_gravity_scale = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->solid_on_collision_splash_power);
local_8._0_1_ = 0xaa;
char_star_to_std_string(&local_30,"solid_on_collision_splash_power");
local_8._0_1_ = 0xab;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_on_collision_splash_power");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_on_collision_splash_power");
psVar12 = &local_30;
local_8._0_1_ = 0xac;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->solid_on_collision_splash_power = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&material->solid_on_collision_material);
local_8._0_1_ = 0xad;
char_star_to_std_string(&local_30,"solid_on_collision_material");
local_8._0_1_ = 0xae;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_on_collision_material");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_on_collision_material");
psVar12 = &local_30;
local_8._0_1_ = 0xaf;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar12,extraout_ECX_11);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->solid_on_collision_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->solid_on_collision_explode);
local_8._0_1_ = 0xb0;
char_star_to_std_string(&local_30,"solid_on_collision_explode");
local_8._0_1_ = 0xb1;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_on_collision_explode");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_on_collision_explode");
psVar12 = &local_30;
local_8._0_1_ = 0xb2;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->solid_on_collision_explode = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->solid_on_sleep_convert);
local_8._0_1_ = 0xb3;
char_star_to_std_string(&local_30,"solid_on_sleep_convert");
local_8._0_1_ = 0xb4;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_on_sleep_convert");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_on_sleep_convert");
psVar12 = &local_30;
local_8._0_1_ = 0xb5;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->solid_on_sleep_convert = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->solid_on_collision_convert);
local_8._0_1_ = 0xb6;
char_star_to_std_string(&local_30,"solid_on_collision_convert");
local_8._0_1_ = 0xb7;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_on_collision_convert");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_on_collision_convert");
psVar12 = &local_30;
local_8._0_1_ = 0xb8;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->solid_on_collision_convert = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int((int *)&local_3c,&material->solid_static_type);
local_8._0_1_ = 0xb9;
char_star_to_std_string(&local_30,"solid_static_type");
local_8._0_1_ = 0xba;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_static_type");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_static_type");
psVar12 = &local_30;
local_8._0_1_ = 0xbb;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->solid_static_type = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->solid_on_break_explode);
local_8._0_1_ = 0xbc;
char_star_to_std_string(&local_30,"solid_on_break_explode");
local_8._0_1_ = 0xbd;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_on_break_explode");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_on_break_explode");
psVar12 = &local_30;
local_8._0_1_ = 0xbe;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->solid_on_break_explode = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&material->solid_break_to_type);
local_8._0_1_ = 0xbf;
char_star_to_std_string(&local_30,"solid_break_to_type");
local_8._0_1_ = 0xc0;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_break_to_type");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_break_to_type");
psVar12 = &local_30;
local_8._0_1_ = 0xc1;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar12,extraout_ECX_12);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->solid_break_to_type,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->solid_go_through_sand);
local_8._0_1_ = 0xc2;
char_star_to_std_string(&local_30,"solid_go_through_sand");
local_8._0_1_ = 0xc3;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_go_through_sand");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_go_through_sand");
psVar12 = &local_30;
local_8._0_1_ = 0xc4;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->solid_go_through_sand = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->solid_collide_with_self);
local_8._0_1_ = 0xc5;
char_star_to_std_string(&local_30,"solid_collide_with_self");
local_8._0_1_ = 0xc6;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"solid_collide_with_self");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"solid_collide_with_self");
psVar12 = &local_30;
local_8._0_1_ = 199;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
filesys_state = bool_from_CAnyContainer(crackability);
material->solid_collide_with_self = filesys_state;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&material->convert_to_box2d_material);
local_8._0_1_ = 200;
char_star_to_std_string(&local_30,"convert_to_box2d_material");
local_8._0_1_ = 0xc9;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"convert_to_box2d_material");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"convert_to_box2d_material");
psVar12 = &local_30;
local_8._0_1_ = 0xca;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar12,extraout_ECX_13);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->convert_to_box2d_material,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int((int *)&local_3c,&material->hp);
local_8._0_1_ = 0xcb;
char_star_to_std_string(&local_30,"hp");
local_8._0_1_ = 0xcc;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"hp");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"hp");
psVar12 = &local_30;
local_8._0_1_ = 0xcd;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->hp = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int((int *)&local_3c,&material->vegetation_full_lifetime_growth);
local_8._0_1_ = 0xce;
char_star_to_std_string(&local_30,"vegetation_full_lifetime_growth");
local_8._0_1_ = 0xcf;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"vegetation_full_lifetime_growth");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"vegetation_full_lifetime_growth");
psVar12 = &local_30;
local_8._0_1_ = 0xd0;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->vegetation_full_lifetime_growth = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&material->vegetation_sprite);
local_8._0_1_ = 0xd1;
char_star_to_std_string(&local_30,"vegetation_sprite");
local_8._0_1_ = 0xd2;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"vegetation_sprite");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"vegetation_sprite");
psVar12 = &local_30;
local_8._0_1_ = 0xd3;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar12,extraout_ECX_14);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
psVar12 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&material->vegetation_sprite,psVar12);
destruct_string(&local_78);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->wang_noise_percent);
local_8._0_1_ = 0xd4;
char_star_to_std_string(&local_30,"wang_noise_percent");
local_8._0_1_ = 0xd5;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"wang_noise_percent");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"wang_noise_percent");
psVar12 = &local_30;
local_8._0_1_ = 0xd6;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->wang_noise_percent = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->wang_curvature);
local_8._0_1_ = 0xd7;
char_star_to_std_string(&local_30,"wang_curvature");
local_8._0_1_ = 0xd8;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"wang_curvature");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"wang_curvature");
psVar12 = &local_30;
local_8._0_1_ = 0xd9;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
fVar7 = float_from_CAnyContainer(crackability);
material->wang_curvature = fVar7;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_int((int *)&local_3c,&material->wang_noise_type);
local_8._0_1_ = 0xda;
char_star_to_std_string(&local_30,"wang_noise_type");
local_8._0_1_ = 0xdb;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0x10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"wang_noise_type");
psVar12 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar12);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"wang_noise_type");
psVar12 = &local_30;
local_8._0_1_ = 0xdc;
pCVar6 = (CXmlNode *)FUN_0042be60();
puVar1 = (void *)ceng::CXmlNode::GetAttributeValue(pCVar6,psVar12);
puVar1 = int_from_CAnyContainer(puVar1,(int)psVar4);
material->wang_noise_type = (int)puVar1;
local_8._0_1_ = 0x10;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if ((filesys_state) && (material->explosion_config != (void *)0x0)) {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
FUN_0042c3a0(0x101);
char_star_to_std_string
(&local_30,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\ce lls\\cellfactory.cpp"
);
local_8._0_1_ = 0xdd;
FUN_0042c3b0(&local_30);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
char_star_to_std_string(local_48,"ExplosionConfig");
local_8._0_1_ = 0xde;
cVar3 = FUN_0042c240(local_48);
local_8._0_1_ = 0x10;
destruct_string((std_string *)local_48);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"ExplosionConfig");
local_8._0_1_ = 0xdf;
FUN_00842dd0(material->explosion_config,&local_30);
destruct_string(&local_30);
}
}
else {
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
FUN_0042c3a0(0x101);
char_star_to_std_string
(&local_30,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\ cells\\cellfactory.cpp"
);
local_8._0_1_ = 0xe0;
FUN_0042c3b0(&local_30);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
char_star_to_std_string(local_48,"ExplosionConfig");
local_8._0_1_ = 0xe1;
FUN_00842df0(material->explosion_config,local_48);
destruct_string((std_string *)local_48);
}
}
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"ExplosionConfig");
local_8._0_1_ = 0xe2;
cVar3 = FUN_0042c240(&local_30);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
if (cVar3 == '\0') {
if ((undefined4 *)material->explosion_config != (undefined4 *)0x0) {
/* WARNING: Load size is inaccurate */
(***material->explosion_config)(1);
}
material->explosion_config = (void *)0x0;
}
else {
if (material->explosion_config == (void *)0x0) {
local_110 = operator_new(0x16c);
local_8._0_1_ = 0xe3;
if (local_110 == (void *)0x0) {
puVar1 = (void *)0x0;
}
else {
puVar1 = (void *)FUN_0048fd20();
}
local_8._0_1_ = 0x10;
material->explosion_config = puVar1;
}
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
FUN_0042c3a0(0x108);
char_star_to_std_string
(&local_30,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid \\cells\\cellfactory.cpp"
);
local_8._0_1_ = 0xe4;
FUN_0042c3b0(&local_30);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
char_star_to_std_string(local_48,"ExplosionConfig");
local_8._0_1_ = 0xe5;
cVar3 = FUN_0042c240(local_48);
local_8._0_1_ = 0x10;
destruct_string((std_string *)local_48);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"ExplosionConfig");
local_8._0_1_ = 0xe6;
FUN_00842dd0(material->explosion_config,&local_30);
destruct_string(&local_30);
}
}
else {
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
FUN_0042c3a0(0x108);
char_star_to_std_string
(&local_30,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\gr id\\cells\\cellfactory.cpp"
);
local_8._0_1_ = 0xe7;
FUN_0042c3b0(&local_30);
local_8._0_1_ = 0x10;
destruct_string(&local_30);
char_star_to_std_string(local_48,"ExplosionConfig");
local_8._0_1_ = 0xe8;
FUN_00842df0(material->explosion_config,local_48);
destruct_string((std_string *)local_48);
}
}
}
}
}
material->_100_minus_autoignition_temp = 100 - material->autoignition_temperature;
FUN_004296f0();
local_8._0_1_ = 0xe9;
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
local_110 = &material->field_0x23c;
cVar3 = FUN_00437990();
if (cVar3 == '\0') {
FUN_00429780(local_1d0);
local_8 = CONCAT31(local_8._1_3_,0xea);
pcVar9 = 0;
crackability = FUN_00437970();
if (crackability != 0) {
do {
puVar15 = (undefined4 *)FUN_004379a0(pcVar9);
FUN_00444d50(local_1c0,puVar15);
crackability = FUN_00437970();
if (pcVar9 != crackability - 1U) {
ostream_<<_char_star(local_1c0,", ");
}
pcVar9 = pcVar9 + 1;
uVar14 = FUN_00437970();
material = local_118;
} while (pcVar9 < uVar14);
}
psVar4 = (std_string *)FUN_00429840(&local_78);
std_string::move_assign((std_string *)(local_d8 + 0x18),psVar4);
destruct_string(&local_78);
local_8._0_1_ = 0xe9;
FUN_004296a0();
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(local_d8 + 0x18);
local_8._0_1_ = 0xeb;
char_star_to_std_string(&local_30,"tags");
local_8._0_1_ = 0xec;
FUN_0042be70(&local_30,&local_3c);
destruct_string(&local_30);
local_8._0_1_ = 0xe9;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_30,"tags");
psVar4 = &local_30;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_30,"tags");
psVar4 = &local_30;
local_8._0_1_ = 0xed;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar4,extraout_ECX_15);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
psVar4 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign((std_string *)(local_d8 + 0x18),psVar4);
destruct_string(&local_78);
local_8._0_1_ = 0xe9;
destruct_string(&local_30);
}
}
}
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if ((filesys_state) && (cVar3 = FUN_004375f0(), cVar3 == '\0')) {
FUN_00437a90();
char_star_to_std_string(&local_30,",");
local_8._0_1_ = 0xee;
FUN_0041cd40(local_d8 + 0x18);
FUN_00c3dc30(0);
local_8 = CONCAT31(local_8._1_3_,0xf0);
destruct_string(&local_30);
pcVar9 = 0;
crackability = FUN_00437970();
if (crackability != 0) {
do {
uVar5 = FUN_004379a0(pcVar9);
FUN_0041cd40(uVar5);
FUN_00c3e370();
local_8._0_1_ = 0xf1;
FUN_0043f1b0((undefined4 *)&material->field_0x23c,&local_60);
local_8 = CONCAT31(local_8._1_3_,0xf0);
destruct_string(&local_60);
pcVar9 = pcVar9 + 1;
uVar14 = FUN_00437970();
} while (pcVar9 < uVar14);
}
puVar15 = (undefined4 *)FUN_00438c50(&local_110);
puVar16 = (undefined4 *)FUN_007b9b80(&local_120);
FUN_00831180(*puVar16,*puVar15);
local_8._0_1_ = 0xe9;
FUN_00437930(&local_3c);
material = local_118;
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->danger_fire);
local_8._0_1_ = 0xf2;
char_star_to_std_string(&local_60,"danger_fire");
local_8._0_1_ = 0xf3;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 0xe9;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"danger_fire");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"danger_fire");
psVar4 = &local_60;
local_8._0_1_ = 0xf4;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->danger_fire = filesys_state;
local_8._0_1_ = 0xe9;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->danger_radioactive);
local_8._0_1_ = 0xf5;
char_star_to_std_string(&local_60,"danger_radioactive");
local_8._0_1_ = 0xf6;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 0xe9;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"danger_radioactive");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"danger_radioactive");
psVar4 = &local_60;
local_8._0_1_ = 0xf7;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->danger_radioactive = filesys_state;
local_8._0_1_ = 0xe9;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->danger_poison);
local_8._0_1_ = 0xf8;
char_star_to_std_string(&local_60,"danger_poison");
local_8._0_1_ = 0xf9;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 0xe9;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"danger_poison");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"danger_poison");
psVar4 = &local_60;
local_8._0_1_ = 0xfa;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->danger_poison = filesys_state;
local_8._0_1_ = 0xe9;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->danger_water);
local_8._0_1_ = 0xfb;
char_star_to_std_string(&local_60,"danger_water");
local_8._0_1_ = 0xfc;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 0xe9;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"danger_water");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"danger_water");
psVar4 = &local_60;
local_8._0_1_ = 0xfd;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->danger_water = filesys_state;
local_8._0_1_ = 0xe9;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
FUN_0042c3a0(0x140);
char_star_to_std_string
(&local_60,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\cell s\\cellfactory.cpp"
);
local_8._0_1_ = 0xfe;
FUN_0042c3b0(&local_60);
local_8._0_1_ = 0xe9;
destruct_string(&local_60);
char_star_to_std_string(&local_30,"StatusEffects");
local_8._0_1_ = 0xff;
cVar3 = FUN_0042c240(&local_30);
local_8._0_1_ = 0xe9;
destruct_string(&local_30);
if (cVar3 == '\0') goto LAB_0068c0da;
char_star_to_std_string(&local_60,"StatusEffects");
local_8 = 0x100;
FUN_00842e20(&material->field_0x24c,&local_60);
psVar4 = &local_60;
}
else {
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (!filesys_state) goto LAB_0068c0da;
FUN_0042c3a0(0x140);
char_star_to_std_string
(&local_60,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\cell s\\cellfactory.cpp"
);
local_8 = 0x101;
FUN_0042c3b0(&local_60);
local_8 = 0xe9;
destruct_string(&local_60);
char_star_to_std_string(&local_30,"StatusEffects");
local_8 = 0x102;
FUN_00842e40(&material->field_0x24c,&local_30);
psVar4 = &local_30;
}
local_8._0_1_ = 0xe9;
local_8._1_3_ = 0;
destruct_string(psVar4);
LAB_0068c0da:
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
FUN_004296f0();
local_8 = 0x103;
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&local_30);
local_8._0_1_ = 4;
char_star_to_std_string(&local_60,"status_effects");
local_8._0_1_ = 5;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8 = CONCAT31(local_8._1_3_,3);
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"status_effects");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"status_effects");
psVar4 = &local_60;
local_8._0_1_ = 6;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar4,extraout_ECX_16);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
psVar4 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&local_30,psVar4);
destruct_string(&local_78);
local_8 = CONCAT31(local_8._1_3_,3);
destruct_string(&local_60);
}
}
}
FUN_0068ccf0();
cVar3 = FUN_004375f0();
if (cVar3 == '\0') {
local_114 = FUN_00a8d190();
}
if (local_114 != 0) {
FUN_007bf9e0(&local_114);
}
local_8._0_1_ = 0xe9;
local_8._1_3_ = 0;
destruct_string(&local_30);
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->always_ignites_damagemodel);
local_8 = 0x107;
char_star_to_std_string(&local_60,"always_ignites_damagemodel");
local_8 = CONCAT31(local_8._1_3_,8);
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 0xe9;
local_8._1_3_ = 0;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"always_ignites_damagemodel");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"always_ignites_damagemodel");
psVar4 = &local_60;
local_8 = 0x109;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->always_ignites_damagemodel = filesys_state;
local_8._0_1_ = 0xe9;
local_8._1_3_ = 0;
destruct_string(&local_60);
}
}
}
FUN_0048fba0();
local_8 = 0x10a;
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&local_90);
local_8._0_1_ = 0xb;
char_star_to_std_string(&local_60,"audio_physics_material_event");
local_8._0_1_ = 0xc;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8 = CONCAT31(local_8._1_3_,10);
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"audio_physics_material_event");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"audio_physics_material_event");
psVar4 = &local_60;
local_8._0_1_ = 0xd;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar4,extraout_ECX_17);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
psVar4 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&local_90,psVar4);
destruct_string(&local_78);
local_8 = CONCAT31(local_8._1_3_,10);
destruct_string(&local_60);
}
}
}
uVar5 = FUN_0048f9e0();
*(undefined4 *)&material->field_0x268 = uVar5;
psVar4 = (std_string *)FUN_0048fba0();
std_string::move_assign(&local_90,psVar4);
destruct_string(&local_78);
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&local_90);
local_8._0_1_ = 0xe;
char_star_to_std_string(&local_60,"audio_physics_material_wall");
local_8._0_1_ = 0xf;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8 = CONCAT31(local_8._1_3_,10);
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"audio_physics_material_wall");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"audio_physics_material_wall");
psVar4 = &local_60;
local_8._0_1_ = 0x10;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar4,extraout_ECX_18);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
psVar4 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&local_90,psVar4);
destruct_string(&local_78);
local_8 = CONCAT31(local_8._1_3_,10);
destruct_string(&local_60);
}
}
}
uVar5 = FUN_0048f9e0();
*(undefined4 *)&material->field_0x26c = uVar5;
psVar4 = (std_string *)FUN_0048fba0();
std_string::move_assign(&local_90,psVar4);
destruct_string(&local_78);
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_std_string(&local_90);
local_8._0_1_ = 0x11;
char_star_to_std_string(&local_60,"audio_physics_material_solid");
local_8._0_1_ = 0x12;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8 = CONCAT31(local_8._1_3_,10);
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"audio_physics_material_solid");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"audio_physics_material_solid");
psVar4 = &local_60;
local_8._0_1_ = 0x13;
pCVar6 = (CXmlNode *)FUN_0042be60(psVar4,extraout_ECX_19);
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
psVar4 = (std_string *)std_string_from_CAnyContainer((undefined *)&local_78,crackability);
std_string::move_assign(&local_90,psVar4);
destruct_string(&local_78);
local_8 = CONCAT31(local_8._1_3_,10);
destruct_string(&local_60);
}
}
}
uVar5 = FUN_0048f9e0();
*(undefined4 *)&material->field_0x270 = uVar5;
char_star_to_std_string(&local_60,"audio_materialaudio_type");
local_8._0_1_ = 0x14;
FUN_00842e70(&material->field_0x27c);
FUN_00489a10(&local_60);
local_8._0_1_ = 10;
destruct_string(&local_60);
char_star_to_std_string(&local_30,"audio_materialbreakaudio_type");
local_8._0_1_ = 0x15;
FUN_00842e90(&material->field_0x280);
FUN_00489c40(&local_30);
local_8._0_1_ = 10;
destruct_string(&local_30);
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_float((int *)&local_3c,&material->audio_size_multiplier);
local_8._0_1_ = 0x16;
char_star_to_std_string(&local_60,"audio_size_multiplier");
local_8._0_1_ = 0x17;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"audio_size_multiplier");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"audio_size_multiplier");
psVar4 = &local_60;
local_8._0_1_ = 0x18;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
fVar7 = float_from_CAnyContainer(crackability);
material->audio_size_multiplier = fVar7;
local_8._0_1_ = 10;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->audio_is_soft);
local_8._0_1_ = 0x19;
char_star_to_std_string(&local_60,"audio_is_soft");
local_8._0_1_ = 0x1a;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"audio_is_soft");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"audio_is_soft");
psVar4 = &local_60;
local_8._0_1_ = 0x1b;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->audio_is_soft = filesys_state;
local_8._0_1_ = 10;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->show_in_creative_mode);
local_8._0_1_ = 0x1c;
char_star_to_std_string(&local_60,"show_in_creative_mode");
local_8._0_1_ = 0x1d;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"show_in_creative_mode");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"show_in_creative_mode");
psVar4 = &local_60;
local_8._0_1_ = 0x1e;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->show_in_creative_mode = filesys_state;
local_8._0_1_ = 10;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
CAnyContainer_from_bool((int *)&local_3c,&material->is_just_particle_fx);
local_8._0_1_ = 0x1f;
char_star_to_std_string(&local_60,"is_just_particle_fx");
local_8._0_1_ = 0x20;
FUN_0042be70(&local_60,&local_3c);
destruct_string(&local_60);
local_8._0_1_ = 10;
FUN_0042bc70();
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"is_just_particle_fx");
psVar4 = &local_60;
uVar5 = FUN_0042be60();
cVar3 = HasAttribute(uVar5,psVar4);
destruct_string(&local_60);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"is_just_particle_fx");
psVar4 = &local_60;
local_8._0_1_ = 0x21;
pCVar6 = (CXmlNode *)FUN_0042be60();
crackability = ceng::CXmlNode::GetAttributeValue(pCVar6,psVar4);
filesys_state = bool_from_CAnyContainer(crackability);
material->is_just_particle_fx = filesys_state;
local_8._0_1_ = 10;
destruct_string(&local_60);
}
}
}
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if ((filesys_state) && (*(int *)&material->field_0x288 != 0)) {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
FUN_0042c3a0(0x16c);
char_star_to_std_string
(&local_60,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\ce lls\\cellfactory.cpp"
);
local_8._0_1_ = 0x22;
FUN_0042c3b0(&local_60);
local_8._0_1_ = 10;
destruct_string(&local_60);
char_star_to_std_string(&local_30,"ParticleEffect");
local_8._0_1_ = 0x23;
cVar3 = FUN_0042c240(&local_30);
local_8._0_1_ = 10;
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"ParticleEffect");
local_8._0_1_ = 0x24;
FUN_00842eb0(*(undefined4 *)&material->field_0x288,&local_60);
destruct_string(&local_60);
}
}
else {
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
FUN_0042c3a0(0x16c);
char_star_to_std_string
(&local_60,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid\\ cells\\cellfactory.cpp"
);
local_8._0_1_ = 0x25;
FUN_0042c3b0(&local_60);
local_8._0_1_ = 10;
destruct_string(&local_60);
char_star_to_std_string(&local_30,"ParticleEffect");
local_8._0_1_ = 0x26;
FUN_00842ed0(*(undefined4 *)&material->field_0x288,&local_30);
destruct_string(&local_30);
}
}
}
else {
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
char_star_to_std_string(&local_60,"ParticleEffect");
local_8._0_1_ = 0x27;
cVar3 = FUN_0042c240(&local_60);
local_8._0_1_ = 10;
destruct_string(&local_60);
if (cVar3 == '\0') {
if (*(undefined4 **)&material->field_0x288 != (undefined4 *)0x0) {
(**(code **)**(undefined4 **)&material->field_0x288)(1);
}
*(undefined4 *)&material->field_0x288 = 0;
}
else {
if (*(int *)&material->field_0x288 == 0) {
local_110 = operator_new(0x54);
local_8._0_1_ = 0x28;
if (local_110 == (void *)0x0) {
uVar5 = 0;
}
else {
uVar5 = FUN_005683e0();
}
local_8._0_1_ = 10;
*(undefined4 *)&material->field_0x288 = uVar5;
}
filesys_state = ceng::CXmlFileSys::IsReading(filesys);
if (filesys_state) {
FUN_0042c3a0(0x173);
char_star_to_std_string
(&local_60,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\grid \\cells\\cellfactory.cpp"
);
local_8._0_1_ = 0x29;
FUN_0042c3b0(&local_60);
local_8._0_1_ = 10;
destruct_string(&local_60);
char_star_to_std_string(&local_30,"ParticleEffect");
local_8._0_1_ = 0x2a;
cVar3 = FUN_0042c240(&local_30);
local_8._0_1_ = 10;
destruct_string(&local_30);
if (cVar3 != '\0') {
char_star_to_std_string(&local_60,"ParticleEffect");
local_8._0_1_ = 0x2b;
FUN_00842eb0(*(undefined4 *)&material->field_0x288,&local_60);
destruct_string(&local_60);
}
}
else {
filesys_state = ceng::CXmlFileSys::IsWriting(filesys);
if (filesys_state) {
FUN_0042c3a0(0x173);
char_star_to_std_string
(&local_60,
"d:\\projects\\nollagames\\fallingeverything\\build\\vc12\\..\\..\\source\\gr id\\cells\\cellfactory.cpp"
);
local_8._0_1_ = 0x2c;
FUN_0042c3b0(&local_60);
local_8._0_1_ = 10;
destruct_string(&local_60);
char_star_to_std_string(&local_78,"ParticleEffect");
local_8._0_1_ = 0x2d;
FUN_00842ed0(*(undefined4 *)&material->field_0x288,&local_78);
destruct_string(&local_78);
}
}
}
}
}
destruct_string(&local_90);
destruct_string((std_string *)(local_d8 + 0x18));
destruct_string(&local_a8);
destruct_string((std_string *)(local_108 + 0x18));
*unaff_FS_OFFSET = local_10;
stack_guard_security_thingy((uint)local_18 ^ (uint)&stack0xfffffffc);
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment