Merge branch 'salmon' of github.com:mephi1984/ZeptoLabTest1 into salmon
This commit is contained in:
commit
0fc6b483d1
13 files changed
+17228
-10
No files matched your search
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"array": "cpp",
|
||||
"bitset": "cpp",
|
||||
"string_view": "cpp",
|
||||
"hash_map": "cpp",
|
||||
"hash_set": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"span": "cpp",
|
||||
"regex": "cpp",
|
||||
"valarray": "cpp",
|
||||
"__hash_table": "cpp",
|
||||
"__split_buffer": "cpp",
|
||||
"__tree": "cpp",
|
||||
"deque": "cpp",
|
||||
"list": "cpp",
|
||||
"map": "cpp",
|
||||
"queue": "cpp",
|
||||
"set": "cpp",
|
||||
"stack": "cpp",
|
||||
"string": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"unordered_set": "cpp",
|
||||
"vector": "cpp",
|
||||
"chrono": "cpp",
|
||||
"text_encoding": "cpp",
|
||||
"typeindex": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"*.inc": "cpp"
|
||||
}
|
||||
}
|
||||
+29
-5
@@ -7,12 +7,13 @@
|
||||
|
||||
namespace ZL {
|
||||
|
||||
const float GameObjectManager::INVENTORY_ICON_SIZE = 32.0f;
|
||||
const float GameObjectManager::INVENTORY_ICON_SIZE = 64.0f;
|
||||
const float GameObjectManager::INVENTORY_MARGIN = 10.0f;
|
||||
|
||||
void GameObjectManager::initialize() {
|
||||
|
||||
current_room_index = 0;
|
||||
objects_in_inventory = 0;
|
||||
|
||||
coneTexturePtr = std::make_shared<Texture>(CreateTextureDataFromBmp24("./conus.bmp"));
|
||||
|
||||
@@ -27,10 +28,15 @@ void GameObjectManager::initialize() {
|
||||
testObjMeshMutable.data = testObjMesh;
|
||||
testObjMeshMutable.RefreshVBO();
|
||||
|
||||
textMesh = ZL::LoadFromTextFile("./mesh_first_room.txt"); // Add ZL:: namespace
|
||||
textMesh = ZL::LoadFromTextFile("./textures/mesh_first_room.txt"); // Add ZL:: namespace
|
||||
textMesh.Scale(10);
|
||||
textMesh.SwapZandY();
|
||||
textMesh.RotateByMatrix(QuatToMatrix(QuatFromRotateAroundX(M_PI * 0.5)));
|
||||
textMesh.Move(Vector3f{0, 93, 0});
|
||||
|
||||
coneMesh = ZL::LoadFromTextFile("./cone001.txt"); // Add ZL:: namespace
|
||||
coneMesh.Scale(200);
|
||||
textMesh.Scale(20);
|
||||
|
||||
|
||||
textMeshMutable.AssignFrom(textMesh);
|
||||
textMeshMutable.RefreshVBO();
|
||||
@@ -99,7 +105,7 @@ void GameObjectManager::initialize() {
|
||||
|
||||
// Initialize inventory
|
||||
inventoryIconMesh = CreateRect2D(
|
||||
{0.0f, 0.0f},
|
||||
{0.0f, 40.0f},
|
||||
{INVENTORY_ICON_SIZE/2, INVENTORY_ICON_SIZE/2},
|
||||
0.5f
|
||||
);
|
||||
@@ -108,6 +114,12 @@ void GameObjectManager::initialize() {
|
||||
|
||||
roomTexturePtr = rooms[current_room_index].roomTexture;
|
||||
|
||||
AddItemToInventory("book1", std::make_shared<Texture>(CreateTextureDataFromBmp24("./Kitchen_ceramics.bmp")), objects_in_inventory+1);
|
||||
objects_in_inventory++;
|
||||
AddItemToInventory("book2", std::make_shared<Texture>(CreateTextureDataFromBmp24("./Kitchen_ceramics.bmp")), objects_in_inventory+1);
|
||||
objects_in_inventory++;
|
||||
|
||||
|
||||
//SDL_ShowCursor(SDL_DISABLE);
|
||||
SDL_SetRelativeMouseMode(SDL_TRUE);
|
||||
}
|
||||
@@ -145,7 +157,8 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
|
||||
continue;
|
||||
}
|
||||
|
||||
AddItemToInventory(ao->name, ao->activeObjectTexturePtr);
|
||||
AddItemToInventory(ao->name, ao->activeObjectTexturePtr, objects_in_inventory+1);
|
||||
objects_in_inventory++;
|
||||
|
||||
aoMgr.removeByName(ao->name);
|
||||
}
|
||||
@@ -234,6 +247,17 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
|
||||
Environment::violaLastWalkFrame = -1;
|
||||
}
|
||||
break;
|
||||
|
||||
case SDLK_1:
|
||||
case SDLK_2:
|
||||
{
|
||||
int hot_key = (event.key.keysym.sym == SDLK_1) ? 1 : 2;
|
||||
UnselectAllItems();
|
||||
if (InventoryItem* item = GetItemByHotkey(hot_key)) {
|
||||
item->isSelected = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// ...handle other keys...
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ public:
|
||||
static const float INVENTORY_ICON_SIZE;
|
||||
static const float INVENTORY_MARGIN;
|
||||
ActiveObjectManager aoMgr;
|
||||
int objects_in_inventory;
|
||||
|
||||
private:
|
||||
//int animationCounter = 0;
|
||||
|
||||
+19
-1
@@ -5,11 +5,12 @@ namespace ZL
|
||||
// Определяем глобальную переменную
|
||||
std::unordered_map<std::string, InventoryItem> gInventoryMap;
|
||||
|
||||
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex)
|
||||
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex, int hot_key)
|
||||
{
|
||||
InventoryItem item;
|
||||
item.name = name;
|
||||
item.texture = tex;
|
||||
item.hot_key = hot_key;
|
||||
|
||||
// Вставляем или перезаписываем (operator[] так сделает).
|
||||
gInventoryMap[name] = item;
|
||||
@@ -34,6 +35,16 @@ namespace ZL
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
InventoryItem* GetItemByHotkey(int hotkey)
|
||||
{
|
||||
for (auto& [_, item] : gInventoryMap) {
|
||||
if (item.hot_key == hotkey) {
|
||||
return &item;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void PrintInventory()
|
||||
{
|
||||
std::cout << "Inventory contents:\n";
|
||||
@@ -43,6 +54,13 @@ namespace ZL
|
||||
}
|
||||
}
|
||||
|
||||
void UnselectAllItems()
|
||||
{
|
||||
for (auto& [_, item] : gInventoryMap) {
|
||||
item.isSelected = false;
|
||||
}
|
||||
}
|
||||
|
||||
const std::unordered_map<std::string, InventoryItem>& ReturnInventory()
|
||||
{
|
||||
return gInventoryMap;
|
||||
|
||||
+8
-2
@@ -12,13 +12,15 @@ namespace ZL
|
||||
{
|
||||
std::string name;
|
||||
std::shared_ptr<Texture> texture;
|
||||
bool isSelected = false;
|
||||
int hot_key;
|
||||
};
|
||||
|
||||
// Глобальное хранилище предметов
|
||||
extern std::unordered_map<std::string, InventoryItem> gInventory;
|
||||
extern std::unordered_map<std::string, InventoryItem> gInventoryMap; // Changed from gInventory
|
||||
|
||||
// Добавить предмет в инвентарь
|
||||
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex);
|
||||
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex, int hot_key);
|
||||
|
||||
// Удалить предмет из инвентаря
|
||||
void RemoveItemFromInventory(const std::string& name);
|
||||
@@ -30,4 +32,8 @@ namespace ZL
|
||||
void PrintInventory();
|
||||
|
||||
const std::unordered_map<std::string, InventoryItem>& ReturnInventory();
|
||||
|
||||
// Add these new functions
|
||||
void UnselectAllItems();
|
||||
InventoryItem* GetItemByHotkey(int hotkey);
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
# Script to run:
|
||||
|
||||
```
|
||||
C:\Work\Projects\emsdk\emsdk.bat activate latest
|
||||
C:\Work\Projects\emsdk\emsdk_env.bat
|
||||
emcc main.cpp Game.cpp Math.cpp Physics.cpp Renderer.cpp ShaderManager.cpp TextureManager.cpp Utils.cpp OpenGlExtensions.cpp -O2 -std=c++14 -sTOTAL_MEMORY=33554432 -sUSE_SDL_IMAGE=2 -sSDL2_IMAGE_FORMATS="[""png""]" -sUSE_SDL=2 --preload-file background.bmp --preload-file bird.bmp32 --preload-file default.fragment --preload-file default.vertex --preload-file game_over.bmp32 --preload-file pipe.bmp32 -o jumpingbird.html
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
|
||||
zlib-1.3.1:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=install ..
|
||||
|
||||
then run ALL_BUILD and INSTALL in Visual Studio
|
||||
|
||||
lpng1645:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=install -DZLIB_ROOT=C:\Work\Projects\zlib-1.3.1\build\install ..
|
||||
|
||||
then run ALL_BUILD and INSTALL in Visual Studio
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
https://github.com/Bly7/OBJ-Loader/blob/master/Source/OBJ_Loader.h
|
||||
|
||||
|
||||
https://github.com/gametutorials/tutorials/blob/master/OpenGL/MD3%20Animation/Main.cpp
|
||||
|
||||
|
||||
|
||||
linux:
|
||||
```
|
||||
g++ Game.cpp main.cpp Math.cpp OpenGlExtensions.cpp Physics.cpp Renderer.cpp ShaderManager.cpp TextureManager.cpp Utils.cpp BoneAnimatedModel.cpp ObjLoader.cpp cmakeaudioplayer/src/AudioPlayer.cpp TextModel.cpp Inventory.cpp -o sdl_app -O2 -std=c++17 \
|
||||
-I cmakeaudioplayer/include \
|
||||
$(pkg-config --cflags --libs sdl2 gl) \
|
||||
$(pkg-config --cflags --libs vorbis vorbisfile ogg) \
|
||||
-lopenal
|
||||
```
|
||||
+9
-2
@@ -1,6 +1,5 @@
|
||||
#include "Renderer.h"
|
||||
|
||||
|
||||
#include <cmath>
|
||||
|
||||
namespace ZL {
|
||||
|
||||
@@ -287,6 +286,13 @@ namespace ZL {
|
||||
PositionData[i] = PositionData[i] * scale;
|
||||
}
|
||||
}
|
||||
void VertexDataStruct::Move(Vector3f diff)
|
||||
{
|
||||
for (int i = 0; i < PositionData.size(); i++)
|
||||
{
|
||||
PositionData[i] = PositionData[i] + diff;
|
||||
}
|
||||
}
|
||||
|
||||
void VertexDataStruct::SwapZandY()
|
||||
{
|
||||
@@ -297,6 +303,7 @@ namespace ZL {
|
||||
PositionData[i].v[2] = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void VertexDataStruct::RotateByMatrix(Matrix3f m)
|
||||
{
|
||||
|
||||
@@ -52,6 +52,7 @@ namespace ZL {
|
||||
void RotateByMatrix(Matrix3f m);
|
||||
|
||||
void Scale(float scale);
|
||||
void Move(Vector3f diff);
|
||||
void SwapZandY();
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
/home/albert/Downloads/Telegram Desktop/plain_obj_script.py
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File renamed without changes.
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user