diff --git a/ActiveObject.h b/ActiveObject.h index fe7abaf..5ae05e7 100644 --- a/ActiveObject.h +++ b/ActiveObject.h @@ -16,37 +16,9 @@ struct ActiveObject { ZL::VertexDataStruct activeObjectScreenMesh; ZL::VertexRenderStruct activeObjectScreenMeshMutable; + std::shared_ptr inventoryIconTexturePtr; + ZL::Vector3f objectPos; bool highlighted = false; }; - -class ActiveObjectManager { - public: - std::unordered_map activeObjectsEntities; - - // Добавить или обновить объект в контейнере - void addActiveObject(const ActiveObject& object) { - activeObjectsEntities[object.name] = object; - } - - // Найти объект по имени (возвращает указатель, nullptr — если не найден) - ActiveObject* findByName(const std::string& name) { - auto it = activeObjectsEntities.find(name); - if (it != activeObjectsEntities.end()) { - return &it->second; - } - return nullptr; - } - - // Найти все объекты с нужным значением highlighted - // (возвращает список указателей на найденные объекты) - // ActiveObject.h - - - - - void removeByName(const std::string& name) { - activeObjectsEntities.erase(name); - } - }; } diff --git a/GameObjectManager.cpp b/GameObjectManager.cpp index 7aceffc..c417308 100644 --- a/GameObjectManager.cpp +++ b/GameObjectManager.cpp @@ -30,6 +30,11 @@ void GameObjectManager::initialize() { initializeLoadingScreen(); + if (!dialogTextures.empty()) { // Проверяем, есть ли диалоги + dialogTexturePtr = std::make_shared(CreateTextureDataFromBmp24(dialogTextures[dialogIndex])); + isDialogActive = true; + } + std::function loadingFunction1 = [this]() { @@ -81,47 +86,97 @@ void GameObjectManager::initialize() { { // Create active object + ActiveObject cubeForFirstRoomT; + cubeForFirstRoomT.name = "cube_T"; + cubeForFirstRoomT.activeObjectMesh = ZL::LoadFromTextFile("./cube001.txt"); + cubeForFirstRoomT.activeObjectMesh.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundZ(M_PI * 0.5))); + cubeForFirstRoomT.activeObjectMesh.Scale(10); + cubeForFirstRoomT.activeObjectMeshMutable.AssignFrom(cubeForFirstRoomT.activeObjectMesh); + cubeForFirstRoomT.activeObjectMeshMutable.RefreshVBO(); + cubeForFirstRoomT.objectPos = Vector3f{ -190, 90 , 280 }; + cubeForFirstRoomT.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./Material_Base_color_1001-_2_.bmp")); + cubeForFirstRoomT.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); + cubeForFirstRoomT.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); + cubeForFirstRoomT.activeObjectScreenMeshMutable.AssignFrom(cubeForFirstRoomT.activeObjectScreenMesh); + cubeForFirstRoomT.activeObjectScreenMeshMutable.RefreshVBO(); + cubeForFirstRoomT.inventoryIconTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_T_icon.bmp32")); - ActiveObject ao1; - ao1.name = "book"; - ao1.activeObjectMesh = ZL::LoadFromTextFile("./book001.txt"); // Add ZL:: namespace - ao1.activeObjectMesh.Scale(4); - ao1.activeObjectMeshMutable.AssignFrom(ao1.activeObjectMesh); - ao1.activeObjectMeshMutable.RefreshVBO(); - ao1.objectPos = Vector3f{ 50, 0, -300 }; - ao1.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./book03.bmp")); - ao1.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); - ao1.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); - ao1.activeObjectScreenMeshMutable.AssignFrom(ao1.activeObjectScreenMesh); - ao1.activeObjectScreenMeshMutable.RefreshVBO(); - /* - ActiveObject ao2; - ao2.name = "superchair001"; - ao2.activeObjectMesh = ZL::LoadFromTextFile("./superchair001.txt"); // Add ZL:: namespace - ao2.activeObjectMesh.Scale(400); - ao2.activeObjectMesh.SwapZandY(); - ao2.activeObjectMeshMutable.AssignFrom(ao2.activeObjectMesh); - ao2.activeObjectMeshMutable.RefreshVBO(); - ao2.objectPos = Vector3f{ 0, 0, 0 }; - ao2.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./chair_01_Base_Color.bmp")); + ActiveObject cubeForFirstRoomO; + cubeForFirstRoomO.name = "cube_O"; + cubeForFirstRoomO.activeObjectMesh = ZL::LoadFromTextFile("./cube001.txt"); + cubeForFirstRoomO.activeObjectMesh.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundZ(M_PI * 0.5))); + cubeForFirstRoomO.activeObjectMesh.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundX(M_PI * 1.5))); + cubeForFirstRoomO.activeObjectMesh.Scale(10); + cubeForFirstRoomO.activeObjectMeshMutable.AssignFrom(cubeForFirstRoomO.activeObjectMesh); + cubeForFirstRoomO.activeObjectMeshMutable.RefreshVBO(); + cubeForFirstRoomO.objectPos = Vector3f{ 185, 90 , -365 }; + cubeForFirstRoomO.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./Material_Base_color_1001-_3.bmp")); + cubeForFirstRoomO.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); + cubeForFirstRoomO.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); + cubeForFirstRoomO.activeObjectScreenMeshMutable.AssignFrom(cubeForFirstRoomO.activeObjectScreenMesh); + cubeForFirstRoomO.activeObjectScreenMeshMutable.RefreshVBO(); + cubeForFirstRoomO.inventoryIconTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_O_icon.bmp32")); + - ao2.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); - ao2.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); - ao2.activeObjectScreenMeshMutable.AssignFrom(ao2.activeObjectScreenMesh); - ao2.activeObjectScreenMeshMutable.RefreshVBO(); - */ + ActiveObject cubeForFirstRoomM; + cubeForFirstRoomM.name = "cube_M"; + cubeForFirstRoomM.activeObjectMesh = ZL::LoadFromTextFile("./cube001.txt"); + cubeForFirstRoomO.activeObjectMesh.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundZ(M_PI * 0.5))); + cubeForFirstRoomO.activeObjectMesh.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundX(M_PI))); + cubeForFirstRoomM.activeObjectMesh.Scale(10); + cubeForFirstRoomM.activeObjectMeshMutable.AssignFrom(cubeForFirstRoomO.activeObjectMesh); + cubeForFirstRoomM.activeObjectMeshMutable.RefreshVBO(); + cubeForFirstRoomM.objectPos = Vector3f{ 200, 95 , 230 }; + cubeForFirstRoomM.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./Material_Base_color_1001_4.bmp")); + cubeForFirstRoomM.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); + cubeForFirstRoomM.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); + cubeForFirstRoomM.activeObjectScreenMeshMutable.AssignFrom(cubeForFirstRoomO.activeObjectScreenMesh); + cubeForFirstRoomM.activeObjectScreenMeshMutable.RefreshVBO(); + cubeForFirstRoomM.inventoryIconTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_M_icon.bmp32")); + + ActiveObject lampe; + lampe.name = "lampe"; + lampe.activeObjectMesh = ZL::LoadFromTextFile("./lighter.txt"); // Add ZL:: namespace + lampe.activeObjectMesh.Scale(7); + lampe.activeObjectMeshMutable.AssignFrom(lampe.activeObjectMesh); + lampe.activeObjectMeshMutable.RefreshVBO(); + lampe.objectPos = Vector3f{ 85, 30, 43 }; + lampe.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./temno.bmp")); + lampe.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); + lampe.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); + lampe.activeObjectScreenMeshMutable.AssignFrom(lampe.activeObjectScreenMesh); + lampe.activeObjectScreenMeshMutable.RefreshVBO(); + lampe.inventoryIconTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_T_icon.bmp32")); + + + + ActiveObject carToy; + carToy.name = "carToy"; + carToy.activeObjectMesh = ZL::LoadFromTextFile("./car.txt"); // Add ZL:: namespace + carToy.activeObjectMesh.Scale(12); + carToy.activeObjectMeshMutable.AssignFrom(carToy.activeObjectMesh); + carToy.activeObjectMeshMutable.RefreshVBO(); + carToy.objectPos = Vector3f{ 300, 0, 315 }; + carToy.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./Material.001_Base_color_1001_5.bmp")); + carToy.activeObjectScreenTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./aoscreen01.bmp")); + carToy.activeObjectScreenMesh = CreateRect2D({ 0.f, 0.f }, { 64.f, 64.f }, 0.5); + carToy.activeObjectScreenMeshMutable.AssignFrom(carToy.activeObjectScreenMesh); + carToy.activeObjectScreenMeshMutable.RefreshVBO(); + carToy.inventoryIconTexturePtr = std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/battery.bmp32")); Room room_1; room_1.roomTexture = std::make_shared(CreateTextureDataFromBmp24("./Material_Base_color_1001.bmp")); - room_1.objects.push_back(ao1); - room_1.sound_name = "Symphony No.6 (1st movement).ogg"; + room_1.objects.push_back(cubeForFirstRoomT); + room_1.objects.push_back(cubeForFirstRoomO); + room_1.objects.push_back(cubeForFirstRoomM); + room_1.sound_name = "lullaby-music-vol20-186394--online-audio-convert.com.ogg"; room_1.roomLogic = createRoom1Logic(); room_1.textMesh = preloadedRoomMeshArr[0]; room_1.textMeshMutable.AssignFrom(room_1.textMesh); - room_1.collisionMgr.setRoomBoundary(800, 800); + room_1.collisionMgr.setRoomBoundary(790, 790); room_1.collisionMgr.addCollider(std::make_shared(Vector3f{ 80, 0, 200 }, Vector3f{ 400, 0, 400 })); room_1.collisionMgr.addCollider(std::make_shared(Vector3f{ -220, 0, 165 }, Vector3f{ -143, 0, 230 })); room_1.collisionMgr.addCollider(std::make_shared(Vector3f{ -400, 0, 125 }, Vector3f{ -121, 0, 400 })); @@ -135,13 +190,17 @@ void GameObjectManager::initialize() { Room room_2; room_2.roomTexture = std::make_shared(CreateTextureDataFromBmp24("./seconroom.bmp")); - room_2.sound_name = "Symphony No.6 (1st movement).ogg"; + room_2.objects.push_back(lampe); + room_2.objects.push_back(carToy); + room_2.sound_name = "unholy-choir-1-279337--online-audio-convert.com.ogg"; room_2.roomLogic = createRoom2Logic(); room_2.textMesh = preloadedRoomMeshArr[1]; room_2.textMeshMutable.AssignFrom(room_2.textMesh); - room_2.collisionMgr.setRoomBoundary(800, 800); - room_2.collisionMgr.addCollider(std::make_shared(Vector3f{ 80, 0, 200 }, Vector3f{ 400, 0, 400 })); - + room_2.collisionMgr.setRoomBoundary(790, 790); + room_2.collisionMgr.addCollider(std::make_shared(Vector3f{ -227, 0, -166 }, Vector3f{ 398, 0, -154 })); + room_2.collisionMgr.addCollider(std::make_shared(Vector3f{ -328, 0, 182 }, Vector3f{ -216, 0, 332 })); + room_2.collisionMgr.addCollider(std::make_shared(Vector3f{ -227, 0, -400 }, Vector3f{ -208, 0, -165})); + room_2.collisionMgr.addCollider(std::make_shared(Vector3f{ 263, 0, 295 }, Vector3f{ 303, 0, 335 })); rooms.push_back(room_2); activeObjects = rooms[current_room_index].objects; @@ -166,13 +225,6 @@ void GameObjectManager::initialize() { //roomTexturePtr = rooms[current_room_index].roomTexture; - AddItemToInventory("cube_T", std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_T_icon.bmp32")), objects_in_inventory + 1); - objects_in_inventory++; - AddItemToInventory("cube_O", std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_O_icon.bmp32")), objects_in_inventory + 1); - objects_in_inventory++; - AddItemToInventory("cube_M", std::make_shared(CreateTextureDataFromBmp32("./textures/inventory_objects/cubic_M_icon.bmp32")), objects_in_inventory + 1); - objects_in_inventory++; - monsterTexturePtr1 = std::make_shared(CreateTextureDataFromBmp32("./monster001.bmp32")); monsterTexturePtr2 = std::make_shared(CreateTextureDataFromBmp32("./monster002.bmp32")); @@ -221,7 +273,14 @@ void GameObjectManager::switch_room(int index){ void GameObjectManager::handleEvent(const SDL_Event& event) { // debug room switching if (event.type == SDL_MOUSEBUTTONDOWN && event.button.button == SDL_BUTTON_RIGHT) { - switch_room(1); + if (isDialogActive) { + dialogIndex++; + if (dialogIndex < dialogTextures.size()) { + dialogTexturePtr = std::make_shared(CreateTextureDataFromBmp24(dialogTextures[dialogIndex])); + } else { + isDialogActive = false; + } + } } else if (event.type == SDL_MOUSEBUTTONDOWN) { const auto highlightedObjects = rooms[current_room_index].findByHighlighted(true); @@ -259,6 +318,38 @@ void GameObjectManager::handleEvent(const SDL_Event& event) { selectedCubes.clear(); } } + else if (current_room_index==1) { + if (InventoryItem* item = GetItemSelected(true)){ + std::cout << item->name << std::endl; + if (item->name == "carToy") { + std::cout << item->name << std::endl; + // Проверить, наведена ли мышь на лампу + const auto highlightedObjects = rooms[current_room_index].findByHighlighted(true); + std::cout << highlightedObjects.size() << std::endl; + for (auto* ao : highlightedObjects) { + if (ao && ao->name == "lampe") { + // Create a new lamp object with updated texture + ActiveObject updatedLamp = *ao; + // Change from dark to lit texture + updatedLamp.activeObjectTexturePtr = std::make_shared(CreateTextureDataFromBmp24("./base_Base_color_1001.bmp")); + + // Replace the old lamp with updated one + rooms[current_room_index].removeByPtr(ao); + rooms[current_room_index].objects.push_back(updatedLamp); + activeObjects = rooms[current_room_index].objects; + + // Remove car from inventory + gInventoryMap.erase(item->name); + objects_in_inventory--; + + // Play sound effect + audioPlayerAsync.playSoundAsync("lamp_on.ogg"); + break; + } + } + } + } + } } else { const auto highlightedObjects = rooms[current_room_index].findByHighlighted(true); @@ -268,10 +359,14 @@ void GameObjectManager::handleEvent(const SDL_Event& event) { continue; } - AddItemToInventory(ao->name, ao->activeObjectTexturePtr, objects_in_inventory+1); + if (ao->name != "lampe") { + AddItemToInventory(ao->name, ao->inventoryIconTexturePtr, objects_in_inventory+1); objects_in_inventory++; rooms[current_room_index].removeByPtr(ao); + activeObjects = rooms[current_room_index].objects; + } + //aoMgr.removeByName(ao->name); } @@ -522,7 +617,7 @@ void GameObjectManager::updateScene(size_t ms) { pow(Environment::characterPos.v[1] - obj.objectPos.v[1], 2) + pow(Environment::characterPos.v[2] - obj.objectPos.v[2], 2) ); - obj.highlighted = (dist < 50.f); + obj.highlighted = (dist < 150.f); } /* diff --git a/GameObjectManager.h b/GameObjectManager.h index 55b414a..de743f7 100644 --- a/GameObjectManager.h +++ b/GameObjectManager.h @@ -6,6 +6,7 @@ #include #include "ActiveObject.h" #include "Room.h" +#include "RenderSystem.h" #include "Inventory.h" #ifdef __linux__ #include @@ -70,7 +71,6 @@ public: //ActiveObjectManager aoMgr; int objects_in_inventory; - std::shared_ptr loadingScreenTexturePtr; ZL::VertexDataStruct loadingScreenMesh; @@ -87,6 +87,14 @@ public: ZL::VertexDataStruct monsterScreenMesh; ZL::VertexRenderStruct monsterScreenMeshMutable; + std::vector dialogTextures = { // Список диалогов + "./start_dialog.bmp", + "./next_dialog.bmp", + }; + int dialogIndex = 0; // Текущий индекс диалога + std::shared_ptr dialogTexturePtr; // Активная текстура диалога + bool isDialogActive = false; // Флаг активности диалога + private: //int animationCounter = 0; int lastMouseX = 0; // Добавляем переменные для хранения позиции мыши diff --git a/Material.001_Base_color_1001_5.bmp b/Material.001_Base_color_1001_5.bmp new file mode 100644 index 0000000..b31334c Binary files /dev/null and b/Material.001_Base_color_1001_5.bmp differ diff --git a/Material_Base_color_1001-_2_.bmp b/Material_Base_color_1001-_2_.bmp new file mode 100644 index 0000000..56e8843 Binary files /dev/null and b/Material_Base_color_1001-_2_.bmp differ diff --git a/Material_Base_color_1001-_3.bmp b/Material_Base_color_1001-_3.bmp new file mode 100644 index 0000000..98932c6 Binary files /dev/null and b/Material_Base_color_1001-_3.bmp differ diff --git a/Material_Base_color_1001_4.bmp b/Material_Base_color_1001_4.bmp new file mode 100644 index 0000000..c8c2b95 Binary files /dev/null and b/Material_Base_color_1001_4.bmp differ diff --git a/QuestScripts.cpp b/QuestScripts.cpp index 31fa8d7..7ca107a 100644 --- a/QuestScripts.cpp +++ b/QuestScripts.cpp @@ -19,6 +19,17 @@ namespace ZL gInventoryMap.clear(); gom.switch_room(1); } + } else if (gom.selectedCubes.size() >= 3 && gom.bearName.compare("TOM") != 0) { + std::cout << "Else" << std::endl; + elapsedTime += ms; + if (elapsedTime >= 2000) { + gom.bearName = ""; + for (const auto& cube : gom.selectedCubes) { + gInventoryMap[cube.name] = cube; + } + gom.selectedCubes.clear(); + elapsedTime = 0; + } } }; } diff --git a/RenderSystem.cpp b/RenderSystem.cpp index 86b5c5e..8945af8 100644 --- a/RenderSystem.cpp +++ b/RenderSystem.cpp @@ -165,13 +165,7 @@ void RenderSystem::drawWorld(GameObjectManager& gameObjects) { renderer.TranslateMatrix({ 0, Environment::cameraDefaultVerticalShift, 0 }); // Draw active objects - for (const auto& ao : gameObjects.activeObjects) { - renderer.PushMatrix(); - renderer.TranslateMatrix(ao.objectPos); - glBindTexture(GL_TEXTURE_2D, ao.activeObjectTexturePtr->getTexID()); - renderer.DrawVertexRenderStruct(ao.activeObjectMeshMutable); - renderer.PopMatrix(); - } + drawObjects(gameObjects); // Draw room glBindTexture(GL_TEXTURE_2D, gameObjects.rooms[gameObjects.current_room_index].roomTexture->getTexID()); @@ -216,6 +210,18 @@ void RenderSystem::drawUI(const GameObjectManager& gameObjects) { renderer.PushMatrix(); renderer.LoadIdentity(); + // Отрисовка диалогового окна, если оно активно + if (gameObjects.isDialogActive && gameObjects.dialogTexturePtr) { + renderer.PushMatrix(); + float xPos = Environment::width / 2.0f - 250; // Центрируем + float yPos = Environment::height / 2.0f - 125; // Центрируем + renderer.TranslateMatrix(Vector3f{xPos, yPos, 0.0f}); + renderer.ScaleMatrix(Vector3f{1.5f, 1.5f, 1.0f}); // Увеличиваем размер + glBindTexture(GL_TEXTURE_2D, gameObjects.dialogTexturePtr->getTexID()); + renderer.DrawVertexRenderStruct(gameObjects.inventoryIconMeshMutable); // Используем 2D меш инвентаря + renderer.PopMatrix(); + } + //for (const auto* ao : gameObjects.aoMgr.findByHighlighted(true)) { for (auto& ao : gameObjects.rooms[gameObjects.current_room_index].findByHighlighted(true)) { std::cout << ao->name << std::endl; @@ -292,8 +298,6 @@ void RenderSystem::drawUI(const GameObjectManager& gameObjects) { } } - - renderer.PopMatrix(); renderer.PopProjectionMatrix(); @@ -399,4 +403,14 @@ void RenderSystem::worldToScreenCoordinates(Vector3f objectPos, screenY = (int)((1.0f + ndcY) * 0.5f * screenHeight); } +void RenderSystem::drawObjects(GameObjectManager& gameObjects){ + for (const auto& ao : gameObjects.activeObjects) { + renderer.PushMatrix(); + renderer.TranslateMatrix(ao.objectPos); + glBindTexture(GL_TEXTURE_2D, ao.activeObjectTexturePtr->getTexID()); + renderer.DrawVertexRenderStruct(ao.activeObjectMeshMutable); + renderer.PopMatrix(); + } +} + } // namespace ZL diff --git a/RenderSystem.h b/RenderSystem.h index 002ab8e..5654dd0 100644 --- a/RenderSystem.h +++ b/RenderSystem.h @@ -19,6 +19,9 @@ public: int screenWidth, int screenHeight, int& screenX, int& screenY); + void drawObjects(GameObjectManager& gameObjects); + void drawDialog(GameObjectManager& gameObjects); + private: void drawWorld(GameObjectManager& gameObjects); void drawUI(const GameObjectManager& gameObjects); diff --git a/base_Base_color_1001.bmp b/base_Base_color_1001.bmp new file mode 100644 index 0000000..12c43c7 Binary files /dev/null and b/base_Base_color_1001.bmp differ diff --git a/car.txt b/car.txt new file mode 100644 index 0000000..284e4f3 --- /dev/null +++ b/car.txt @@ -0,0 +1,1325 @@ +===Vertices: 96 +Vertex 0: +Vertex 1: +Vertex 2: +Vertex 3: +Vertex 4: +Vertex 5: +Vertex 6: +Vertex 7: +Vertex 8: +Vertex 9: +Vertex 10: +Vertex 11: +Vertex 12: +Vertex 13: +Vertex 14: +Vertex 15: +Vertex 16: +Vertex 17: +Vertex 18: +Vertex 19: +Vertex 20: +Vertex 21: +Vertex 22: +Vertex 23: +Vertex 24: +Vertex 25: +Vertex 26: +Vertex 27: +Vertex 28: +Vertex 29: +Vertex 30: +Vertex 31: +Vertex 32: +Vertex 33: +Vertex 34: +Vertex 35: +Vertex 36: +Vertex 37: +Vertex 38: +Vertex 39: +Vertex 40: +Vertex 41: +Vertex 42: +Vertex 43: +Vertex 44: +Vertex 45: +Vertex 46: +Vertex 47: +Vertex 48: +Vertex 49: +Vertex 50: +Vertex 51: +Vertex 52: +Vertex 53: +Vertex 54: +Vertex 55: +Vertex 56: +Vertex 57: +Vertex 58: +Vertex 59: +Vertex 60: +Vertex 61: +Vertex 62: +Vertex 63: +Vertex 64: +Vertex 65: +Vertex 66: +Vertex 67: +Vertex 68: +Vertex 69: +Vertex 70: +Vertex 71: +Vertex 72: +Vertex 73: +Vertex 74: +Vertex 75: +Vertex 76: +Vertex 77: +Vertex 78: +Vertex 79: +Vertex 80: +Vertex 81: +Vertex 82: +Vertex 83: +Vertex 84: +Vertex 85: +Vertex 86: +Vertex 87: +Vertex 88: +Vertex 89: +Vertex 90: +Vertex 91: +Vertex 92: +Vertex 93: +Vertex 94: +Vertex 95: +===UV Coordinates: +Face count: 188 +Face 0 +UV Count: 3 + UV + UV + UV +Face 1 +UV Count: 3 + UV + UV + UV +Face 2 +UV Count: 3 + UV + UV + UV +Face 3 +UV Count: 3 + UV + UV + UV +Face 4 +UV Count: 3 + UV + UV + UV +Face 5 +UV Count: 3 + UV + UV + UV +Face 6 +UV Count: 3 + UV + UV + UV +Face 7 +UV Count: 3 + UV + UV + UV +Face 8 +UV Count: 3 + UV + UV + UV +Face 9 +UV Count: 3 + UV + UV + UV +Face 10 +UV Count: 3 + UV + UV + UV +Face 11 +UV Count: 3 + UV + UV + UV +Face 12 +UV Count: 3 + UV + UV + UV +Face 13 +UV Count: 3 + UV + UV + UV +Face 14 +UV Count: 3 + UV + UV + UV +Face 15 +UV Count: 3 + UV + UV + UV +Face 16 +UV Count: 3 + UV + UV + UV +Face 17 +UV Count: 3 + UV + UV + UV +Face 18 +UV Count: 3 + UV + UV + UV +Face 19 +UV Count: 3 + UV + UV + UV +Face 20 +UV Count: 3 + UV + UV + UV +Face 21 +UV Count: 3 + UV + UV + UV +Face 22 +UV Count: 3 + UV + UV + UV +Face 23 +UV Count: 3 + UV + UV + UV +Face 24 +UV Count: 3 + UV + UV + UV +Face 25 +UV Count: 3 + UV + UV + UV +Face 26 +UV Count: 3 + UV + UV + UV +Face 27 +UV Count: 3 + UV + UV + UV +Face 28 +UV Count: 3 + UV + UV + UV +Face 29 +UV Count: 3 + UV + UV + UV +Face 30 +UV Count: 3 + UV + UV + UV +Face 31 +UV Count: 3 + UV + UV + UV +Face 32 +UV Count: 3 + UV + UV + UV +Face 33 +UV Count: 3 + UV + UV + UV +Face 34 +UV Count: 3 + UV + UV + UV +Face 35 +UV Count: 3 + UV + UV + UV +Face 36 +UV Count: 3 + UV + UV + UV +Face 37 +UV Count: 3 + UV + UV + UV +Face 38 +UV Count: 3 + UV + UV + UV +Face 39 +UV Count: 3 + UV + UV + UV +Face 40 +UV Count: 3 + UV + UV + UV +Face 41 +UV Count: 3 + UV + UV + UV +Face 42 +UV Count: 3 + UV + UV + UV +Face 43 +UV Count: 3 + UV + UV + UV +Face 44 +UV Count: 3 + UV + UV + UV +Face 45 +UV Count: 3 + UV + UV + UV +Face 46 +UV Count: 3 + UV + UV + UV +Face 47 +UV Count: 3 + UV + UV + UV +Face 48 +UV Count: 3 + UV + UV + UV +Face 49 +UV Count: 3 + UV + UV + UV +Face 50 +UV Count: 3 + UV + UV + UV +Face 51 +UV Count: 3 + UV + UV + UV +Face 52 +UV Count: 3 + UV + UV + UV +Face 53 +UV Count: 3 + UV + UV + UV +Face 54 +UV Count: 3 + UV + UV + UV +Face 55 +UV Count: 3 + UV + UV + UV +Face 56 +UV Count: 3 + UV + UV + UV +Face 57 +UV Count: 3 + UV + UV + UV +Face 58 +UV Count: 3 + UV + UV + UV +Face 59 +UV Count: 3 + UV + UV + UV +Face 60 +UV Count: 3 + UV + UV + UV +Face 61 +UV Count: 3 + UV + UV + UV +Face 62 +UV Count: 3 + UV + UV + UV +Face 63 +UV Count: 3 + UV + UV + UV +Face 64 +UV Count: 3 + UV + UV + UV +Face 65 +UV Count: 3 + UV + UV + UV +Face 66 +UV Count: 3 + UV + UV + UV +Face 67 +UV Count: 3 + UV + UV + UV +Face 68 +UV Count: 3 + UV + UV + UV +Face 69 +UV Count: 3 + UV + UV + UV +Face 70 +UV Count: 3 + UV + UV + UV +Face 71 +UV Count: 3 + UV + UV + UV +Face 72 +UV Count: 3 + UV + UV + UV +Face 73 +UV Count: 3 + UV + UV + UV +Face 74 +UV Count: 3 + UV + UV + UV +Face 75 +UV Count: 3 + UV + UV + UV +Face 76 +UV Count: 3 + UV + UV + UV +Face 77 +UV Count: 3 + UV + UV + UV +Face 78 +UV Count: 3 + UV + UV + UV +Face 79 +UV Count: 3 + UV + UV + UV +Face 80 +UV Count: 3 + UV + UV + UV +Face 81 +UV Count: 3 + UV + UV + UV +Face 82 +UV Count: 3 + UV + UV + UV +Face 83 +UV Count: 3 + UV + UV + UV +Face 84 +UV Count: 3 + UV + UV + UV +Face 85 +UV Count: 3 + UV + UV + UV +Face 86 +UV Count: 3 + UV + UV + UV +Face 87 +UV Count: 3 + UV + UV + UV +Face 88 +UV Count: 3 + UV + UV + UV +Face 89 +UV Count: 3 + UV + UV + UV +Face 90 +UV Count: 3 + UV + UV + UV +Face 91 +UV Count: 3 + UV + UV + UV +Face 92 +UV Count: 3 + UV + UV + UV +Face 93 +UV Count: 3 + UV + UV + UV +Face 94 +UV Count: 3 + UV + UV + UV +Face 95 +UV Count: 3 + UV + UV + UV +Face 96 +UV Count: 3 + UV + UV + UV +Face 97 +UV Count: 3 + UV + UV + UV +Face 98 +UV Count: 3 + UV + UV + UV +Face 99 +UV Count: 3 + UV + UV + UV +Face 100 +UV Count: 3 + UV + UV + UV +Face 101 +UV Count: 3 + UV + UV + UV +Face 102 +UV Count: 3 + UV + UV + UV +Face 103 +UV Count: 3 + UV + UV + UV +Face 104 +UV Count: 3 + UV + UV + UV +Face 105 +UV Count: 3 + UV + UV + UV +Face 106 +UV Count: 3 + UV + UV + UV +Face 107 +UV Count: 3 + UV + UV + UV +Face 108 +UV Count: 3 + UV + UV + UV +Face 109 +UV Count: 3 + UV + UV + UV +Face 110 +UV Count: 3 + UV + UV + UV +Face 111 +UV Count: 3 + UV + UV + UV +Face 112 +UV Count: 3 + UV + UV + UV +Face 113 +UV Count: 3 + UV + UV + UV +Face 114 +UV Count: 3 + UV + UV + UV +Face 115 +UV Count: 3 + UV + UV + UV +Face 116 +UV Count: 3 + UV + UV + UV +Face 117 +UV Count: 3 + UV + UV + UV +Face 118 +UV Count: 3 + UV + UV + UV +Face 119 +UV Count: 3 + UV + UV + UV +Face 120 +UV Count: 3 + UV + UV + UV +Face 121 +UV Count: 3 + UV + UV + UV +Face 122 +UV Count: 3 + UV + UV + UV +Face 123 +UV Count: 3 + UV + UV + UV +Face 124 +UV Count: 3 + UV + UV + UV +Face 125 +UV Count: 3 + UV + UV + UV +Face 126 +UV Count: 3 + UV + UV + UV +Face 127 +UV Count: 3 + UV + UV + UV +Face 128 +UV Count: 3 + UV + UV + UV +Face 129 +UV Count: 3 + UV + UV + UV +Face 130 +UV Count: 3 + UV + UV + UV +Face 131 +UV Count: 3 + UV + UV + UV +Face 132 +UV Count: 3 + UV + UV + UV +Face 133 +UV Count: 3 + UV + UV + UV +Face 134 +UV Count: 3 + UV + UV + UV +Face 135 +UV Count: 3 + UV + UV + UV +Face 136 +UV Count: 3 + UV + UV + UV +Face 137 +UV Count: 3 + UV + UV + UV +Face 138 +UV Count: 3 + UV + UV + UV +Face 139 +UV Count: 3 + UV + UV + UV +Face 140 +UV Count: 3 + UV + UV + UV +Face 141 +UV Count: 3 + UV + UV + UV +Face 142 +UV Count: 3 + UV + UV + UV +Face 143 +UV Count: 3 + UV + UV + UV +Face 144 +UV Count: 3 + UV + UV + UV +Face 145 +UV Count: 3 + UV + UV + UV +Face 146 +UV Count: 3 + UV + UV + UV +Face 147 +UV Count: 3 + UV + UV + UV +Face 148 +UV Count: 3 + UV + UV + UV +Face 149 +UV Count: 3 + UV + UV + UV +Face 150 +UV Count: 3 + UV + UV + UV +Face 151 +UV Count: 3 + UV + UV + UV +Face 152 +UV Count: 3 + UV + UV + UV +Face 153 +UV Count: 3 + UV + UV + UV +Face 154 +UV Count: 3 + UV + UV + UV +Face 155 +UV Count: 3 + UV + UV + UV +Face 156 +UV Count: 3 + UV + UV + UV +Face 157 +UV Count: 3 + UV + UV + UV +Face 158 +UV Count: 3 + UV + UV + UV +Face 159 +UV Count: 3 + UV + UV + UV +Face 160 +UV Count: 3 + UV + UV + UV +Face 161 +UV Count: 3 + UV + UV + UV +Face 162 +UV Count: 3 + UV + UV + UV +Face 163 +UV Count: 3 + UV + UV + UV +Face 164 +UV Count: 3 + UV + UV + UV +Face 165 +UV Count: 3 + UV + UV + UV +Face 166 +UV Count: 3 + UV + UV + UV +Face 167 +UV Count: 3 + UV + UV + UV +Face 168 +UV Count: 3 + UV + UV + UV +Face 169 +UV Count: 3 + UV + UV + UV +Face 170 +UV Count: 3 + UV + UV + UV +Face 171 +UV Count: 3 + UV + UV + UV +Face 172 +UV Count: 3 + UV + UV + UV +Face 173 +UV Count: 3 + UV + UV + UV +Face 174 +UV Count: 3 + UV + UV + UV +Face 175 +UV Count: 3 + UV + UV + UV +Face 176 +UV Count: 3 + UV + UV + UV +Face 177 +UV Count: 3 + UV + UV + UV +Face 178 +UV Count: 3 + UV + UV + UV +Face 179 +UV Count: 3 + UV + UV + UV +Face 180 +UV Count: 3 + UV + UV + UV +Face 181 +UV Count: 3 + UV + UV + UV +Face 182 +UV Count: 3 + UV + UV + UV +Face 183 +UV Count: 3 + UV + UV + UV +Face 184 +UV Count: 3 + UV + UV + UV +Face 185 +UV Count: 3 + UV + UV + UV +Face 186 +UV Count: 3 + UV + UV + UV +Face 187 +UV Count: 3 + UV + UV + UV +===Normals: +Vertex 0: Normal +Vertex 1: Normal +Vertex 2: Normal +Vertex 3: Normal +Vertex 4: Normal +Vertex 5: Normal +Vertex 6: Normal +Vertex 7: Normal +Vertex 8: Normal +Vertex 9: Normal +Vertex 10: Normal +Vertex 11: Normal +Vertex 12: Normal +Vertex 13: Normal +Vertex 14: Normal +Vertex 15: Normal +Vertex 16: Normal +Vertex 17: Normal +Vertex 18: Normal +Vertex 19: Normal +Vertex 20: Normal +Vertex 21: Normal +Vertex 22: Normal +Vertex 23: Normal +Vertex 24: Normal +Vertex 25: Normal +Vertex 26: Normal +Vertex 27: Normal +Vertex 28: Normal +Vertex 29: Normal +Vertex 30: Normal +Vertex 31: Normal +Vertex 32: Normal +Vertex 33: Normal +Vertex 34: Normal +Vertex 35: Normal +Vertex 36: Normal +Vertex 37: Normal +Vertex 38: Normal +Vertex 39: Normal +Vertex 40: Normal +Vertex 41: Normal +Vertex 42: Normal +Vertex 43: Normal +Vertex 44: Normal +Vertex 45: Normal +Vertex 46: Normal +Vertex 47: Normal +Vertex 48: Normal +Vertex 49: Normal +Vertex 50: Normal +Vertex 51: Normal +Vertex 52: Normal +Vertex 53: Normal +Vertex 54: Normal +Vertex 55: Normal +Vertex 56: Normal +Vertex 57: Normal +Vertex 58: Normal +Vertex 59: Normal +Vertex 60: Normal +Vertex 61: Normal +Vertex 62: Normal +Vertex 63: Normal +Vertex 64: Normal +Vertex 65: Normal +Vertex 66: Normal +Vertex 67: Normal +Vertex 68: Normal +Vertex 69: Normal +Vertex 70: Normal +Vertex 71: Normal +Vertex 72: Normal +Vertex 73: Normal +Vertex 74: Normal +Vertex 75: Normal +Vertex 76: Normal +Vertex 77: Normal +Vertex 78: Normal +Vertex 79: Normal +Vertex 80: Normal +Vertex 81: Normal +Vertex 82: Normal +Vertex 83: Normal +Vertex 84: Normal +Vertex 85: Normal +Vertex 86: Normal +Vertex 87: Normal +Vertex 88: Normal +Vertex 89: Normal +Vertex 90: Normal +Vertex 91: Normal +Vertex 92: Normal +Vertex 93: Normal +Vertex 94: Normal +Vertex 95: Normal +===Triangles: 188 +Triangle: [38, 4, 9] +Triangle: [7, 34, 30] +Triangle: [28, 6, 29] +Triangle: [45, 39, 69] +Triangle: [38, 3, 45] +Triangle: [40, 5, 46] +Triangle: [78, 7, 2] +Triangle: [6, 35, 29] +Triangle: [36, 57, 62] +Triangle: [33, 11, 31] +Triangle: [6, 18, 20] +Triangle: [15, 33, 32] +Triangle: [9, 19, 3] +Triangle: [24, 28, 23] +Triangle: [71, 16, 7] +Triangle: [20, 32, 35] +Triangle: [13, 19, 12] +Triangle: [18, 14, 15] +Triangle: [50, 10, 41] +Triangle: [59, 54, 3] +Triangle: [27, 52, 0] +Triangle: [65, 59, 66] +Triangle: [50, 58, 19] +Triangle: [3, 64, 39] +Triangle: [0, 52, 53] +Triangle: [18, 31, 11] +Triangle: [35, 49, 44] +Triangle: [23, 47, 68] +Triangle: [32, 42, 49] +Triangle: [42, 31, 41] +Triangle: [29, 44, 48] +Triangle: [7, 26, 2] +Triangle: [22, 0, 51] +Triangle: [47, 29, 48] +Triangle: [30, 43, 40] +Triangle: [40, 17, 8] +Triangle: [4, 48, 9] +Triangle: [48, 21, 9] +Triangle: [13, 41, 10] +Triangle: [49, 13, 12] +Triangle: [68, 4, 25] +Triangle: [44, 12, 21] +Triangle: [36, 62, 63] +Triangle: [50, 27, 39] +Triangle: [73, 22, 74] +Triangle: [36, 41, 31] +Triangle: [30, 46, 26] +Triangle: [69, 27, 22] +Triangle: [39, 64, 65] +Triangle: [55, 65, 64] +Triangle: [62, 56, 63] +Triangle: [61, 53, 52] +Triangle: [58, 66, 59] +Triangle: [53, 63, 56] +Triangle: [72, 68, 25] +Triangle: [93, 94, 70] +Triangle: [77, 68, 75] +Triangle: [1, 37, 6] +Triangle: [76, 23, 77] +Triangle: [0, 37, 51] +Triangle: [79, 45, 70] +Triangle: [85, 86, 69] +Triangle: [72, 38, 79] +Triangle: [17, 79, 8] +Triangle: [5, 73, 46] +Triangle: [8, 70, 5] +Triangle: [16, 77, 34] +Triangle: [34, 75, 43] +Triangle: [26, 78, 2] +Triangle: [17, 75, 72] +Triangle: [46, 74, 26] +Triangle: [37, 76, 71] +Triangle: [51, 71, 78] +Triangle: [81, 88, 74] +Triangle: [70, 84, 73] +Triangle: [69, 92, 45] +Triangle: [91, 82, 51] +Triangle: [74, 90, 78] +Triangle: [88, 82, 91] +Triangle: [94, 86, 85] +Triangle: [83, 81, 80] +Triangle: [87, 93, 92] +Triangle: [85, 95, 94] +Triangle: [91, 89, 88] +Triangle: [51, 80, 22] +Triangle: [38, 25, 4] +Triangle: [7, 16, 34] +Triangle: [28, 1, 6] +Triangle: [45, 3, 39] +Triangle: [38, 9, 3] +Triangle: [40, 8, 5] +Triangle: [78, 71, 7] +Triangle: [6, 20, 35] +Triangle: [36, 18, 57] +Triangle: [33, 14, 11] +Triangle: [6, 0, 18] +Triangle: [15, 14, 33] +Triangle: [9, 21, 19] +Triangle: [24, 1, 28] +Triangle: [71, 76, 16] +Triangle: [20, 15, 32] +Triangle: [10, 19, 13] +Triangle: [19, 21, 12] +Triangle: [15, 20, 18] +Triangle: [18, 11, 14] +Triangle: [50, 19, 10] +Triangle: [55, 3, 54] +Triangle: [3, 19, 59] +Triangle: [19, 58, 59] +Triangle: [27, 61, 52] +Triangle: [65, 54, 59] +Triangle: [50, 67, 58] +Triangle: [3, 55, 64] +Triangle: [57, 18, 56] +Triangle: [18, 0, 56] +Triangle: [56, 0, 53] +Triangle: [18, 36, 31] +Triangle: [35, 32, 49] +Triangle: [23, 28, 47] +Triangle: [32, 33, 42] +Triangle: [42, 33, 31] +Triangle: [29, 35, 44] +Triangle: [7, 30, 26] +Triangle: [22, 27, 0] +Triangle: [47, 28, 29] +Triangle: [30, 34, 43] +Triangle: [40, 43, 17] +Triangle: [4, 47, 48] +Triangle: [48, 44, 21] +Triangle: [13, 42, 41] +Triangle: [49, 42, 13] +Triangle: [68, 47, 4] +Triangle: [44, 49, 12] +Triangle: [63, 60, 27] +Triangle: [60, 61, 27] +Triangle: [27, 36, 63] +Triangle: [50, 36, 27] +Triangle: [73, 69, 22] +Triangle: [36, 50, 41] +Triangle: [30, 40, 46] +Triangle: [69, 39, 27] +Triangle: [65, 66, 39] +Triangle: [66, 67, 50] +Triangle: [50, 39, 66] +Triangle: [55, 54, 65] +Triangle: [62, 57, 56] +Triangle: [61, 60, 53] +Triangle: [58, 67, 66] +Triangle: [53, 60, 63] +Triangle: [72, 75, 68] +Triangle: [95, 70, 94] +Triangle: [70, 45, 93] +Triangle: [45, 92, 93] +Triangle: [77, 23, 68] +Triangle: [1, 24, 37] +Triangle: [76, 24, 23] +Triangle: [0, 6, 37] +Triangle: [79, 38, 45] +Triangle: [87, 69, 86] +Triangle: [69, 73, 85] +Triangle: [73, 84, 85] +Triangle: [72, 25, 38] +Triangle: [17, 72, 79] +Triangle: [5, 70, 73] +Triangle: [8, 79, 70] +Triangle: [16, 76, 77] +Triangle: [34, 77, 75] +Triangle: [26, 74, 78] +Triangle: [17, 43, 75] +Triangle: [46, 73, 74] +Triangle: [37, 24, 76] +Triangle: [51, 37, 71] +Triangle: [89, 74, 88] +Triangle: [74, 22, 81] +Triangle: [22, 80, 81] +Triangle: [70, 95, 84] +Triangle: [69, 87, 92] +Triangle: [83, 51, 82] +Triangle: [51, 78, 91] +Triangle: [78, 90, 91] +Triangle: [74, 89, 90] +Triangle: [88, 81, 82] +Triangle: [94, 93, 86] +Triangle: [83, 82, 81] +Triangle: [87, 86, 93] +Triangle: [85, 84, 95] +Triangle: [91, 90, 89] +Triangle: [51, 83, 80] diff --git a/cube001.txt b/cube001.txt new file mode 100644 index 0000000..9261703 --- /dev/null +++ b/cube001.txt @@ -0,0 +1,93 @@ +===Vertices: 8 +Vertex 0: +Vertex 1: +Vertex 2: +Vertex 3: +Vertex 4: +Vertex 5: +Vertex 6: +Vertex 7: +===UV Coordinates: +Face count: 12 +Face 0 +UV Count: 3 + UV + UV + UV +Face 1 +UV Count: 3 + UV + UV + UV +Face 2 +UV Count: 3 + UV + UV + UV +Face 3 +UV Count: 3 + UV + UV + UV +Face 4 +UV Count: 3 + UV + UV + UV +Face 5 +UV Count: 3 + UV + UV + UV +Face 6 +UV Count: 3 + UV + UV + UV +Face 7 +UV Count: 3 + UV + UV + UV +Face 8 +UV Count: 3 + UV + UV + UV +Face 9 +UV Count: 3 + UV + UV + UV +Face 10 +UV Count: 3 + UV + UV + UV +Face 11 +UV Count: 3 + UV + UV + UV +===Normals: +Vertex 0: Normal +Vertex 1: Normal +Vertex 2: Normal +Vertex 3: Normal +Vertex 4: Normal +Vertex 5: Normal +Vertex 6: Normal +Vertex 7: Normal +===Triangles: 12 +Triangle: [4, 2, 0] +Triangle: [2, 7, 3] +Triangle: [6, 5, 7] +Triangle: [1, 7, 5] +Triangle: [0, 3, 1] +Triangle: [4, 1, 5] +Triangle: [4, 6, 2] +Triangle: [2, 6, 7] +Triangle: [6, 4, 5] +Triangle: [1, 3, 7] +Triangle: [0, 2, 3] +Triangle: [4, 0, 1] diff --git a/cubic_icon2.bmp32 b/cubic_icon2.bmp32 new file mode 100644 index 0000000..afb2723 Binary files /dev/null and b/cubic_icon2.bmp32 differ diff --git a/lighter.txt b/lighter.txt new file mode 100644 index 0000000..522dd11 --- /dev/null +++ b/lighter.txt @@ -0,0 +1,261 @@ +===Vertices: 20 +Vertex 0: +Vertex 1: +Vertex 2: +Vertex 3: +Vertex 4: +Vertex 5: +Vertex 6: +Vertex 7: +Vertex 8: +Vertex 9: +Vertex 10: +Vertex 11: +Vertex 12: +Vertex 13: +Vertex 14: +Vertex 15: +Vertex 16: +Vertex 17: +Vertex 18: +Vertex 19: +===UV Coordinates: +Face count: 36 +Face 0 +UV Count: 3 + UV + UV + UV +Face 1 +UV Count: 3 + UV + UV + UV +Face 2 +UV Count: 3 + UV + UV + UV +Face 3 +UV Count: 3 + UV + UV + UV +Face 4 +UV Count: 3 + UV + UV + UV +Face 5 +UV Count: 3 + UV + UV + UV +Face 6 +UV Count: 3 + UV + UV + UV +Face 7 +UV Count: 3 + UV + UV + UV +Face 8 +UV Count: 3 + UV + UV + UV +Face 9 +UV Count: 3 + UV + UV + UV +Face 10 +UV Count: 3 + UV + UV + UV +Face 11 +UV Count: 3 + UV + UV + UV +Face 12 +UV Count: 3 + UV + UV + UV +Face 13 +UV Count: 3 + UV + UV + UV +Face 14 +UV Count: 3 + UV + UV + UV +Face 15 +UV Count: 3 + UV + UV + UV +Face 16 +UV Count: 3 + UV + UV + UV +Face 17 +UV Count: 3 + UV + UV + UV +Face 18 +UV Count: 3 + UV + UV + UV +Face 19 +UV Count: 3 + UV + UV + UV +Face 20 +UV Count: 3 + UV + UV + UV +Face 21 +UV Count: 3 + UV + UV + UV +Face 22 +UV Count: 3 + UV + UV + UV +Face 23 +UV Count: 3 + UV + UV + UV +Face 24 +UV Count: 3 + UV + UV + UV +Face 25 +UV Count: 3 + UV + UV + UV +Face 26 +UV Count: 3 + UV + UV + UV +Face 27 +UV Count: 3 + UV + UV + UV +Face 28 +UV Count: 3 + UV + UV + UV +Face 29 +UV Count: 3 + UV + UV + UV +Face 30 +UV Count: 3 + UV + UV + UV +Face 31 +UV Count: 3 + UV + UV + UV +Face 32 +UV Count: 3 + UV + UV + UV +Face 33 +UV Count: 3 + UV + UV + UV +Face 34 +UV Count: 3 + UV + UV + UV +Face 35 +UV Count: 3 + UV + UV + UV +===Normals: +Vertex 0: Normal +Vertex 1: Normal +Vertex 2: Normal +Vertex 3: Normal +Vertex 4: Normal +Vertex 5: Normal +Vertex 6: Normal +Vertex 7: Normal +Vertex 8: Normal +Vertex 9: Normal +Vertex 10: Normal +Vertex 11: Normal +Vertex 12: Normal +Vertex 13: Normal +Vertex 14: Normal +Vertex 15: Normal +Vertex 16: Normal +Vertex 17: Normal +Vertex 18: Normal +Vertex 19: Normal +===Triangles: 36 +Triangle: [0, 1, 10] +Triangle: [12, 13, 10] +Triangle: [5, 1, 7] +Triangle: [3, 7, 2] +Triangle: [3, 8, 9] +Triangle: [5, 3, 1] +Triangle: [9, 8, 15] +Triangle: [15, 18, 19] +Triangle: [12, 16, 17] +Triangle: [6, 17, 4] +Triangle: [6, 4, 18] +Triangle: [15, 3, 9] +Triangle: [19, 4, 15] +Triangle: [16, 12, 4] +Triangle: [11, 1, 12] +Triangle: [12, 1, 4] +Triangle: [1, 3, 4] +Triangle: [3, 15, 4] +Triangle: [10, 13, 0] +Triangle: [10, 11, 12] +Triangle: [15, 8, 14] +Triangle: [18, 15, 14] +Triangle: [17, 13, 12] +Triangle: [17, 16, 4] +Triangle: [10, 1, 11] +Triangle: [18, 4, 19] +Triangle: [7, 1, 0] +Triangle: [7, 3, 5] +Triangle: [8, 3, 2] +Triangle: [7, 0, 2] +Triangle: [8, 2, 14] +Triangle: [18, 14, 6] +Triangle: [17, 6, 13] +Triangle: [13, 6, 0] +Triangle: [14, 2, 6] +Triangle: [2, 0, 6] diff --git a/next_dialog.bmp b/next_dialog.bmp new file mode 100644 index 0000000..d669462 Binary files /dev/null and b/next_dialog.bmp differ diff --git a/sounds/Symphony No.6 (1st movement).ogg b/sounds/Symphony No.6 (1st movement).ogg deleted file mode 100644 index d527c9c..0000000 Binary files a/sounds/Symphony No.6 (1st movement).ogg and /dev/null differ diff --git a/sounds/file_example_OOG_5MG.ogg b/sounds/file_example_OOG_5MG.ogg deleted file mode 100644 index 2a9b95d..0000000 Binary files a/sounds/file_example_OOG_5MG.ogg and /dev/null differ diff --git a/sounds/lullaby-music-vol20-186394--online-audio-convert.com.ogg b/sounds/lullaby-music-vol20-186394--online-audio-convert.com.ogg new file mode 100644 index 0000000..f22a04e Binary files /dev/null and b/sounds/lullaby-music-vol20-186394--online-audio-convert.com.ogg differ diff --git a/sounds/unholy-choir-1-279337--online-audio-convert.com.ogg b/sounds/unholy-choir-1-279337--online-audio-convert.com.ogg new file mode 100644 index 0000000..9d5d003 Binary files /dev/null and b/sounds/unholy-choir-1-279337--online-audio-convert.com.ogg differ diff --git a/sounds/unseen-danger-fss-no-copyright-music-252588--online-audio-convert.com.ogg b/sounds/unseen-danger-fss-no-copyright-music-252588--online-audio-convert.com.ogg new file mode 100644 index 0000000..0d71678 Binary files /dev/null and b/sounds/unseen-danger-fss-no-copyright-music-252588--online-audio-convert.com.ogg differ diff --git a/start_dialog.bmp b/start_dialog.bmp new file mode 100644 index 0000000..cef6253 Binary files /dev/null and b/start_dialog.bmp differ diff --git a/temno.bmp b/temno.bmp new file mode 100644 index 0000000..b1c99b3 Binary files /dev/null and b/temno.bmp differ diff --git a/textures/inventory_objects/battery.bmp32 b/textures/inventory_objects/battery.bmp32 new file mode 100644 index 0000000..d55ef52 Binary files /dev/null and b/textures/inventory_objects/battery.bmp32 differ