Created
June 27, 2020 02:51
-
-
Save BalintCsala/8caf45e48bb0e749f829ca4036801560 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* public: __cdecl StrongholdStart::StrongholdStart(class Dimension & __ptr64,class Random & | |
| __ptr64,int,int) __ptr64 */ | |
| void __thiscall | |
| StrongholdStart(StrongholdStart *this,Dimension *param_1,Random *param_2,int param_3,int param_4) | |
| { | |
| longlong **pplVar1; | |
| longlong lVar2; | |
| longlong *plVar3; | |
| code *pcVar4; | |
| void *pvVar5; | |
| uint uVar6; | |
| code **ppcVar7; | |
| code **ppcVar8; | |
| void *pvVar9; | |
| StrongholdStart *this_00; | |
| PieceWeight *pPVar10; | |
| char *pcVar11; | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *p_Var12; | |
| Random *pRVar13; | |
| undefined4 uVar14; | |
| int iVar15; | |
| int iVar16; | |
| int in_stack_fffffffffffffe70; | |
| bool in_stack_fffffffffffffe80; | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| local_178; | |
| undefined7 uStack375; | |
| __uint64 local_168; | |
| ulonglong local_160; | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| local_158 [16]; | |
| undefined8 local_148; | |
| undefined8 local_140; | |
| undefined8 local_138; | |
| undefined8 local_130; | |
| undefined local_128; | |
| code **local_120; | |
| undefined8 local_118; | |
| StrongholdStart *local_110; | |
| undefined8 local_108; | |
| undefined **local_f8; | |
| undefined8 local_f0; | |
| undefined local_e8 [16]; | |
| undefined4 local_d8; | |
| undefined4 local_d4; | |
| undefined4 local_d0; | |
| char local_c8; | |
| longlong local_c0; | |
| longlong local_b8; | |
| undefined8 local_a8; | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| local_a0 [32]; | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| local_80 [32]; | |
| vector<class_PieceWeight,class_std::allocator<class_PieceWeight>_> local_60 [24]; | |
| ulonglong local_48; | |
| local_118 = 0xfffffffffffffffe; | |
| local_48 = __security_cookie ^ (ulonglong)&stack0xfffffffffffffe48; | |
| *(undefined8 *)(this + 8) = 0; | |
| *(undefined8 *)(this + 0x10) = 0; | |
| *(undefined8 *)(this + 0x18) = 0; | |
| *(int *)(this + 0x20) = param_3; | |
| *(int *)(this + 0x24) = param_4; | |
| *(undefined8 *)(this + 0x28) = 0; | |
| *(undefined8 *)(this + 0x30) = 0; | |
| *(undefined8 *)(this + 0x38) = 0; | |
| *(undefined8 *)this = 0x1412015d0; | |
| iVar16 = DAT_1416a8040 + param_4 * 0x10; | |
| iVar15 = DAT_1416a8038 + param_3 * 0x10; | |
| local_110 = this; | |
| ppcVar7 = (code **)operator_new(0xb0); | |
| local_120 = ppcVar7; | |
| memset(ppcVar7,0,0xb0); | |
| ppcVar7[1] = (code *)0x0; | |
| ppcVar7[2] = (code *)0x0; | |
| ppcVar7[3] = (code *)0x0; | |
| ppcVar7[4] = (code *)0xff; | |
| uVar14 = 0; | |
| *(undefined4 *)(ppcVar7 + 5) = 0; | |
| *(undefined ***)ppcVar7 = &`vftable'; | |
| *(undefined *)(ppcVar7 + 6) = 1; | |
| uVar6 = _genRandInt32((Random *)param_2); | |
| *(uint *)(ppcVar7 + 4) = uVar6 & 3; | |
| *(undefined4 *)(ppcVar7 + 5) = uVar14; | |
| *(int *)(ppcVar7 + 1) = iVar15; | |
| *(undefined4 *)((longlong)ppcVar7 + 0xc) = 0x40; | |
| *(int *)(ppcVar7 + 2) = iVar16; | |
| *(int *)((longlong)ppcVar7 + 0x1c) = iVar16 + 4; | |
| *(undefined4 *)(ppcVar7 + 3) = 0x4a; | |
| *(int *)((longlong)ppcVar7 + 0x14) = iVar15 + 4; | |
| *(undefined ***)ppcVar7 = &`vftable'; | |
| ppcVar7[7] = (code *)0x0; | |
| ppcVar7[8] = (code *)0x0; | |
| ppcVar7[9] = (code *)0x0; | |
| ppcVar7[10] = (code *)0x0; | |
| ppcVar7[0xd] = (code *)0x0; | |
| ppcVar7[0xe] = (code *)0xf; | |
| *(undefined *)(ppcVar7 + 0xb) = 0; | |
| ppcVar7[0x11] = (code *)0x0; | |
| ppcVar7[0x12] = (code *)0xf; | |
| *(undefined *)(ppcVar7 + 0xf) = 0; | |
| ppcVar7[0x13] = (code *)0x0; | |
| ppcVar7[0x14] = (code *)0x0; | |
| ppcVar7[0x15] = (code *)0x0; | |
| local_108 = 0; | |
| ppcVar8 = *(code ***)(this + 0x30); | |
| if (*(code ***)(this + 0x38) == ppcVar8) { | |
| local_120 = ppcVar7; | |
| _Emplace_reallocate<class_std::unique_ptr<class_SwamplandHut,struct_std::default_delete<class_SwamplandHut>_>_> | |
| (( | |
| vector<class_std::unique_ptr<class_StructurePiece,struct_std::default_delete<class_StructurePiece>_>,class_std::allocator<class_std::unique_ptr<class_StructurePiece,struct_std::default_delete<class_StructurePiece>_>_>_> | |
| *)(this + 0x28), | |
| (unique_ptr<class_StructurePiece,struct_std::default_delete<class_StructurePiece>_> * | |
| )ppcVar8,( | |
| unique_ptr<class_SwamplandHut,struct_std::default_delete<class_SwamplandHut>_> | |
| *)&local_120); | |
| ppcVar8 = local_120; | |
| } | |
| else { | |
| *(code ***)ppcVar8 = ppcVar7; | |
| *(longlong *)(this + 0x30) = *(longlong *)(this + 0x30) + 8; | |
| ppcVar8 = (code **)0x0; | |
| local_120 = ppcVar7; | |
| } | |
| if (ppcVar8 != (code **)0x0) { | |
| (**(code **)*ppcVar8)(ppcVar8,1); | |
| } | |
| memset(&local_f8,0,0xb0); | |
| lVar2 = *(longlong *)(*(longlong *)(this + 0x30) + -8); | |
| local_f0 = *(undefined8 *)(lVar2 + 8); | |
| /* WARNING: Load size is inaccurate */ | |
| local_e8 = *(undefined *)(lVar2 + 0x10); | |
| local_d8 = *(undefined4 *)(lVar2 + 0x20); | |
| local_d4 = *(undefined4 *)(lVar2 + 0x24); | |
| local_d0 = *(undefined4 *)(lVar2 + 0x28); | |
| local_c8 = *(char *)(lVar2 + 0x30); | |
| local_f8 = &`vftable'; | |
| vector<class_BlockActor*___ptr64,class_std::allocator<class_BlockActor*___ptr64>_> | |
| ((vector<class_BlockActor*___ptr64,class_std::allocator<class_BlockActor*___ptr64>_> *) | |
| &local_c0, | |
| (vector<class_BlockActor*___ptr64,class_std::allocator<class_BlockActor*___ptr64>_> *) | |
| (lVar2 + 0x38)); | |
| local_a8 = *(undefined8 *)(lVar2 + 0x50); | |
| basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> | |
| ((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *) | |
| local_a0,(basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> | |
| *)(lVar2 + 0x58)); | |
| basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> | |
| ((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *) | |
| local_80,(basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> | |
| *)(lVar2 + 0x78)); | |
| vector<class_PieceWeight,class_std::allocator<class_PieceWeight>_> | |
| (local_60,(vector<class_PieceWeight,class_std::allocator<class_PieceWeight>_> *) | |
| (lVar2 + 0x98)); | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "Straight",8); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 0x28; | |
| local_130 = 0; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "PrisonHall",10); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 5; | |
| local_130 = 5; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "LeftTurn",8); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 0x14; | |
| local_130 = 0; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "RightTurn",9); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 0x14; | |
| local_130 = 0; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "RoomCrossing",0xc); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 10; | |
| local_130 = 6; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "StraightStairsDown",0x12); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 5; | |
| local_130 = 5; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "StairsDown",10); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 5; | |
| local_130 = 5; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "FiveCrossing",0xc); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 5; | |
| local_130 = 4; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "ChestCorridor",0xd); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 5; | |
| local_130 = 4; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "Library",7); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| uVar6 = (uint)local_168; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 10; | |
| local_130 = 0x500000002; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (0xf < local_160) { | |
| pcVar11 = (char *)(local_160 + 1); | |
| pvVar5 = (void *)CONCAT71(uStack375,local_178); | |
| pvVar9 = pvVar5; | |
| if ((char *)0xfff < pcVar11) { | |
| pcVar11 = (char *)(local_160 + 0x28); | |
| pvVar9 = *(void **)((longlong)pvVar5 + -8); | |
| if (0x1f < (ulonglong)((longlong)pvVar5 + (-8 - (longlong)pvVar9))) { | |
| _invalid_parameter_noinfo_noreturn(); | |
| pcVar4 = (code *)swi(3); | |
| (*pcVar4)(); | |
| return; | |
| } | |
| } | |
| ??_V@YAXPEAX@Z(pvVar9,pcVar11,uVar6); | |
| } | |
| local_168 = 0; | |
| local_160 = 0xf; | |
| local_178 = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)&local_178, | |
| "PortalRoom",10); | |
| local_148 = 0; | |
| local_140 = 0xf; | |
| local_158[0] = (basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>)0x0; | |
| p_Var12 = &local_178; | |
| if (0xf < local_160) { | |
| p_Var12 = ( | |
| _Variant_storage_<0,int,bool,float,class_std::basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_>,enum_GeneratorType,enum_GameType,class_BlockPos,unsigned_int,struct_LevelDataValue::Tag> | |
| *)CONCAT71(uStack375,local_178); | |
| } | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_158, | |
| (char *)p_Var12,local_168); | |
| local_138 = 10; | |
| local_130 = 0x600000001; | |
| local_128 = 0; | |
| pPVar10 = (PieceWeight *)local_158; | |
| push_back(local_60,pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_158,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (&local_178,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)pPVar10); | |
| if (local_c8 != '\0') { | |
| assign((basic_string<char,struct_std::char_traits<char>,class_std::allocator<char>_> *)local_a0, | |
| "FiveCrossing",0xc); | |
| } | |
| pRVar13 = param_2; | |
| generateSmallDoorChildForward | |
| ((StrongholdPiece *)&local_f8,(SHStartPiece *)&local_f8, | |
| ( | |
| vector<class_std::unique_ptr<class_StructurePiece,struct_std::default_delete<class_StructurePiece>_>,class_std::allocator<class_std::unique_ptr<class_StructurePiece,struct_std::default_delete<class_StructurePiece>_>_>_> | |
| *)(this + 0x28),param_2,1,in_stack_fffffffffffffe70); | |
| if (local_c0 != local_b8) { | |
| do { | |
| iVar15 = nextInt((Random *)param_2,(int)(local_b8 - local_c0 >> 3)); | |
| pplVar1 = (longlong **)(local_c0 + (longlong)iVar15 * 8); | |
| plVar3 = *pplVar1; | |
| pcVar11 = (char *)(local_b8 - (longlong)(pplVar1 + 1)); | |
| memmove(); | |
| local_b8 = local_b8 + -8; | |
| if (plVar3 == (longlong *)0x0) { | |
| handleAssert("structurePiece is null in StrongholdStart","false",pcVar11,SUB81(pRVar13,0), | |
| 0x173, | |
| "f:\\darwinwork\\855\\s\\handheld\\src-vanilla\\vanilla_shared\\src\\common\\world\\level\\levelgen\\structure\\strongholdfeature.cpp" | |
| ,"StrongholdStart::StrongholdStart",in_stack_fffffffffffffe80); | |
| } | |
| else { | |
| pRVar13 = param_2; | |
| (**(code **)(*plVar3 + 0x20))(plVar3); | |
| } | |
| } while (local_c0 != local_b8); | |
| } | |
| this_00 = this; | |
| calculateBoundingBox((StructureStart *)this); | |
| moveToLevel((StructureStart *)this_00,param_2,(int)*(short *)(param_1 + 0x40) + -5); | |
| this[0x40] = (StrongholdStart)0x1; | |
| _Tidy(local_60); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_80,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)param_2); | |
| ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ | |
| (local_a0,(<lambda_c96c396a28b26fdf4f60f42a41d7e2d7> *)param_2); | |
| ~vector<class_std::_List_unchecked_iterator<class_std::_List_val<struct_std::_List_simple_types<struct_std::pair<class_HashedString_const_,class_std::shared_ptr<class_JsonUtil::JsonSchemaChildOptionBase<class_JsonUtil::JsonParseState<class_JsonUtil::EmptyClass,class_NearestAttackableTargetDefinition>,class_BaseGoalDefinition>_>_>_>_>_>,class_std::allocator<class_std::_List_unchecked_iterator<class_std::_List_val<struct_std::_List_simple_types<struct_std::pair<class_HashedString_const_,class_std::shared_ptr<class_JsonUtil::JsonSchemaChildOptionBase<class_JsonUtil::JsonParseState<class_JsonUtil::EmptyClass,class_NearestAttackableTargetDefinition>,class_BaseGoalDefinition>_>_>_>_>_>_>_> | |
| (( | |
| vector<class_std::_List_unchecked_iterator<class_std::_List_val<struct_std::_List_simple_types<struct_std::pair<class_HashedString_const_,class_std::shared_ptr<class_JsonUtil::JsonSchemaChildOptionBase<class_JsonUtil::JsonParseState<class_JsonUtil::EmptyClass,class_NearestAttackableTargetDefinition>,class_BaseGoalDefinition>_>_>_>_>_>,class_std::allocator<class_std::_List_unchecked_iterator<class_std::_List_val<struct_std::_List_simple_types<struct_std::pair<class_HashedString_const_,class_std::shared_ptr<class_JsonUtil::JsonSchemaChildOptionBase<class_JsonUtil::JsonParseState<class_JsonUtil::EmptyClass,class_NearestAttackableTargetDefinition>,class_BaseGoalDefinition>_>_>_>_>_>_>_> | |
| *)&local_c0); | |
| __security_check_cookie(local_48 ^ (ulonglong)&stack0xfffffffffffffe48); | |
| return; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment