Implement dummy items and scrollablewindowcomponent setup
@ -108,6 +108,27 @@ bool Crawler::OnUserCreate(){
|
|||||||
Inventory::AddItem("Small Health Potion",16);
|
Inventory::AddItem("Small Health Potion",16);
|
||||||
Inventory::AddItem("Large Health Potion",3);
|
Inventory::AddItem("Large Health Potion",3);
|
||||||
Inventory::AddItem("Medium Mana Potion",1);
|
Inventory::AddItem("Medium Mana Potion",1);
|
||||||
|
Inventory::AddItem("Dummy Item 1",78);
|
||||||
|
Inventory::AddItem("Dummy Item 2",3);
|
||||||
|
Inventory::AddItem("Dummy Item 3",5);
|
||||||
|
Inventory::AddItem("Dummy Item 4",8);
|
||||||
|
Inventory::AddItem("Dummy Item 5",6);
|
||||||
|
Inventory::AddItem("Dummy Item 6",3);
|
||||||
|
Inventory::AddItem("Dummy Item 7",5);
|
||||||
|
Inventory::AddItem("Dummy Item 8",8);
|
||||||
|
Inventory::AddItem("Dummy Item 9",3);
|
||||||
|
Inventory::AddItem("Dummy Item 10",4);
|
||||||
|
Inventory::AddItem("Dummy Item 11",8);
|
||||||
|
Inventory::AddItem("Dummy Item 12",3);
|
||||||
|
Inventory::AddItem("Dummy Item 13",6);
|
||||||
|
Inventory::AddItem("Dummy Item 14",192);
|
||||||
|
Inventory::AddItem("Dummy Item 15",35);
|
||||||
|
Inventory::AddItem("Dummy Item 16",6);
|
||||||
|
Inventory::AddItem("Dummy Item 17",3);
|
||||||
|
Inventory::AddItem("Dummy Item 18",1);
|
||||||
|
Inventory::AddItem("Dummy Item 19",8);
|
||||||
|
Inventory::AddItem("Dummy Item 20",4);
|
||||||
|
Inventory::AddItem("Bandages",10);
|
||||||
Inventory::AddItem("Blue Slime Remains",22);
|
Inventory::AddItem("Blue Slime Remains",22);
|
||||||
|
|
||||||
InitializeGraphics();
|
InitializeGraphics();
|
||||||
|
@ -295,6 +295,7 @@
|
|||||||
<ClInclude Include="resource.h" />
|
<ClInclude Include="resource.h" />
|
||||||
<ClInclude Include="resource1.h" />
|
<ClInclude Include="resource1.h" />
|
||||||
<ClInclude Include="safemap.h" />
|
<ClInclude Include="safemap.h" />
|
||||||
|
<ClInclude Include="ScrollableWindowComponent.h" />
|
||||||
<ClInclude Include="State.h" />
|
<ClInclude Include="State.h" />
|
||||||
<ClInclude Include="Theme.h" />
|
<ClInclude Include="Theme.h" />
|
||||||
<ClInclude Include="TMXParser.h" />
|
<ClInclude Include="TMXParser.h" />
|
||||||
|
@ -186,6 +186,9 @@
|
|||||||
<ClInclude Include="olcPGEX_Graphics2D.h">
|
<ClInclude Include="olcPGEX_Graphics2D.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="ScrollableWindowComponent.h">
|
||||||
|
<Filter>Header Files\Interface</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="Player.cpp">
|
<ClCompile Include="Player.cpp">
|
||||||
|
@ -6,39 +6,42 @@
|
|||||||
#include "Item.h"
|
#include "Item.h"
|
||||||
#include "MenuItemButton.h"
|
#include "MenuItemButton.h"
|
||||||
#include "MenuLabel.h"
|
#include "MenuLabel.h"
|
||||||
|
#include "ScrollableWindowComponent.h"
|
||||||
|
|
||||||
INCLUDE_GFX
|
INCLUDE_GFX
|
||||||
typedef Attribute A;
|
typedef Attribute A;
|
||||||
|
|
||||||
Menu*Menu::InitializeInventoryWindow(){
|
Menu*Menu::InitializeInventoryWindow(){
|
||||||
constexpr int invWidth=5;
|
constexpr int invWidth=5;
|
||||||
constexpr int invHeight=3;
|
constexpr int initialInvHeight=3;
|
||||||
constexpr int totalItemSlots=invWidth*invHeight;
|
|
||||||
|
|
||||||
constexpr int itemSpacing=8;
|
constexpr int itemSpacing=8;
|
||||||
constexpr int buttonSize=24;
|
constexpr int buttonSize=24;
|
||||||
constexpr int totalSpacing=buttonSize+itemSpacing;
|
constexpr int totalSpacing=buttonSize+itemSpacing;
|
||||||
|
|
||||||
vf2d windowSize={totalSpacing*invWidth-itemSpacing+1,totalSpacing*(invHeight+1)-itemSpacing+24};
|
vf2d windowSize={totalSpacing*invWidth-itemSpacing+1,totalSpacing*(3+1)-itemSpacing+24};
|
||||||
|
|
||||||
Menu*inventoryWindow=new Menu(CENTERED,windowSize);
|
Menu*inventoryWindow=new Menu(CENTERED,windowSize);
|
||||||
|
|
||||||
|
ScrollableWindowComponent*inventory=new ScrollableWindowComponent(INVENTORY,{{0,0},{windowSize.x,totalSpacing*3-itemSpacing}},nullptr,[](MenuFuncData data){});
|
||||||
|
inventoryWindow->AddComponent("inventory",inventory);
|
||||||
|
|
||||||
MenuFunc useItemFunc=[](MenuFuncData data){
|
MenuFunc useItemFunc=[](MenuFuncData data){
|
||||||
MenuItemButton*button=(MenuItemButton*)data.component;
|
MenuItemButton*button=(MenuItemButton*)data.component;
|
||||||
button->UseItem();
|
button->UseItem();
|
||||||
};
|
};
|
||||||
|
|
||||||
for(int y=0;y<invHeight;y++){
|
for(int i=0;i<Inventory::get("Consumables").size();i++){
|
||||||
for(int x=0;x<invWidth;x++){
|
int x=i%invWidth;
|
||||||
int itemIndex=y*invWidth+x;
|
int y=i/invWidth;
|
||||||
MenuItemButton*button=new MenuItemButton{INVENTORY,{{float(totalSpacing*x),float(totalSpacing*y)},{float(buttonSize),float(buttonSize)}},Inventory::get("Consumables"),itemIndex,useItemFunc};
|
int itemIndex=y*invWidth+x;
|
||||||
inventoryWindow->AddComponent("item"+std::to_string(itemIndex),button);
|
MenuItemButton*button=new MenuItemButton{INVENTORY,{{float(totalSpacing*x),float(totalSpacing*y)},{float(buttonSize),float(buttonSize)}},Inventory::get("Consumables"),itemIndex,useItemFunc};
|
||||||
}
|
inventory->AddComponent(inventoryWindow,"item"+std::to_string(itemIndex),button);
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuLabel*itemNameLabel=new MenuLabel{INVENTORY,geom2d::rect<float>(vf2d{2,invHeight*totalSpacing-4},windowSize),"",false,true};
|
MenuLabel*itemNameLabel=new MenuLabel{INVENTORY,geom2d::rect<float>(vf2d{2,initialInvHeight*totalSpacing-4},windowSize),"",false,true};
|
||||||
inventoryWindow->AddComponent("itemName",itemNameLabel);
|
inventoryWindow->AddComponent("itemName",itemNameLabel);
|
||||||
MenuLabel*itemDescriptionLabel=new MenuLabel{INVENTORY,geom2d::rect<float>(vf2d{2,invHeight*totalSpacing+itemSpacing},{windowSize.x-4,windowSize.y-108}),"",true,true};
|
MenuLabel*itemDescriptionLabel=new MenuLabel{INVENTORY,geom2d::rect<float>(vf2d{2,initialInvHeight*totalSpacing+itemSpacing},{windowSize.x-4,windowSize.y-108}),"",true,true};
|
||||||
inventoryWindow->AddComponent("itemDescription",itemDescriptionLabel);
|
inventoryWindow->AddComponent("itemDescription",itemDescriptionLabel);
|
||||||
|
|
||||||
return inventoryWindow;
|
return inventoryWindow;
|
||||||
|
@ -131,11 +131,15 @@ void Menu::Update(Crawler*game){
|
|||||||
KeyboardButtonNavigation(game,pos);
|
KeyboardButtonNavigation(game,pos);
|
||||||
for(auto&key:buttons){
|
for(auto&key:buttons){
|
||||||
for(auto&button:key.second){
|
for(auto&button:key.second){
|
||||||
button->Update(game);
|
if(button->renderInMain){
|
||||||
|
button->Update(game);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(auto&component:displayComponents){
|
for(auto&component:displayComponents){
|
||||||
component->Update(game);
|
if(component->renderInMain){
|
||||||
|
component->Update(game);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -152,11 +156,15 @@ void Menu::Draw(Crawler*game){
|
|||||||
game->Clear(BLANK);
|
game->Clear(BLANK);
|
||||||
for(auto&key:buttons){
|
for(auto&key:buttons){
|
||||||
for(auto&button:key.second){
|
for(auto&button:key.second){
|
||||||
button->Draw(game,{0,0},this==Menu::stack.back());
|
if(button->renderInMain){
|
||||||
|
button->Draw(game,{0,0},this==Menu::stack.back());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(auto&component:displayComponents){
|
for(auto&component:displayComponents){
|
||||||
component->Draw(game,{0,0},this==Menu::stack.back());
|
if(component->renderInMain){
|
||||||
|
component->Draw(game,{0,0},this==Menu::stack.back());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
game->SetPixelMode(prevMode);
|
game->SetPixelMode(prevMode);
|
||||||
game->SetDrawTarget(nullptr);
|
game->SetDrawTarget(nullptr);
|
||||||
@ -164,11 +172,15 @@ void Menu::Draw(Crawler*game){
|
|||||||
game->DrawDecal(pos,r.Decal());
|
game->DrawDecal(pos,r.Decal());
|
||||||
for(auto&key:buttons){
|
for(auto&key:buttons){
|
||||||
for(auto&button:key.second){
|
for(auto&button:key.second){
|
||||||
button->DrawDecal(game,{0,0},this==Menu::stack.back());
|
if(button->renderInMain){
|
||||||
|
button->DrawDecal(game,pos,this==Menu::stack.back());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(auto&component:displayComponents){
|
for(auto&component:displayComponents){
|
||||||
component->DrawDecal(game,{0,0},this==Menu::stack.back());
|
if(component->renderInMain){
|
||||||
|
component->DrawDecal(game,pos,this==Menu::stack.back());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(GetCurrentTheme().IsScaled()){
|
if(GetCurrentTheme().IsScaled()){
|
||||||
@ -195,9 +207,9 @@ void Menu::Draw(Crawler*game){
|
|||||||
game->DrawDecal({0,0},overlay.Decal());
|
game->DrawDecal({0,0},overlay.Decal());
|
||||||
if(!MOUSE_NAVIGATION){
|
if(!MOUSE_NAVIGATION){
|
||||||
MenuComponent*selectedComponent=buttons[selection.y][selection.x];
|
MenuComponent*selectedComponent=buttons[selection.y][selection.x];
|
||||||
draggingComponent->DrawDecal(game,-offsetPos+selectedComponent->rect.pos+vi2d{1,-4},this==Menu::stack.back());
|
draggingComponent->DrawDecal(game,pos-offsetPos+selectedComponent->rect.pos+vi2d{1,-4},this==Menu::stack.back());
|
||||||
}else{
|
}else{
|
||||||
draggingComponent->DrawDecal(game,-pos-offsetPos+game->GetMousePos(),this==Menu::stack.back());
|
draggingComponent->DrawDecal(game,-offsetPos+game->GetMousePos(),this==Menu::stack.back());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
class MenuComponent{
|
class MenuComponent{
|
||||||
friend class Menu;
|
friend class Menu;
|
||||||
friend class MenuItemButton;
|
friend class MenuItemButton;
|
||||||
|
friend class ScrollableWindowComponent;
|
||||||
MenuType menuDest;
|
MenuType menuDest;
|
||||||
bool selectable=true;
|
|
||||||
private:
|
private:
|
||||||
float hoverEffect=0;
|
float hoverEffect=0;
|
||||||
protected:
|
protected:
|
||||||
@ -16,6 +16,8 @@ protected:
|
|||||||
MenuFunc onClick;
|
MenuFunc onClick;
|
||||||
MenuType parentMenu=MenuType::ENUM_END;
|
MenuType parentMenu=MenuType::ENUM_END;
|
||||||
bool hovered=false;
|
bool hovered=false;
|
||||||
|
bool selectable=true;
|
||||||
|
bool renderInMain=true; //If set to false, this component is the responsibility of some other windowing system and won't be rendered or updated via the main window loop.
|
||||||
public:
|
public:
|
||||||
MenuComponent(MenuType parent,geom2d::rect<float>rect,std::string label,MenuFunc onClick,bool selectable=true);
|
MenuComponent(MenuType parent,geom2d::rect<float>rect,std::string label,MenuFunc onClick,bool selectable=true);
|
||||||
MenuComponent(MenuType parent,geom2d::rect<float>rect,std::string label,MenuType menuDest,MenuFunc onClick,bool selectable=true);
|
MenuComponent(MenuType parent,geom2d::rect<float>rect,std::string label,MenuType menuDest,MenuFunc onClick,bool selectable=true);
|
||||||
|
@ -63,7 +63,7 @@ protected:
|
|||||||
if(valid){
|
if(valid){
|
||||||
std::string quantityText="x"+std::to_string(Inventory::GetItemCount(invRef.at(inventoryIndex)));
|
std::string quantityText="x"+std::to_string(Inventory::GetItemCount(invRef.at(inventoryIndex)));
|
||||||
vf2d textSize=vf2d(game->GetTextSizeProp(quantityText))*0.5;
|
vf2d textSize=vf2d(game->GetTextSizeProp(quantityText))*0.5;
|
||||||
game->DrawShadowStringDecal(Menu::menus[parentMenu]->pos+parentPos+rect.pos+rect.size-textSize,quantityText,WHITE,BLACK,{0.5,0.5},0.5);
|
game->DrawShadowStringDecal(parentPos+rect.pos+rect.size-textSize,quantityText,WHITE,BLACK,{0.5,0.5},0.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
virtual inline MenuComponent*PickUpDraggableItem()override{
|
virtual inline MenuComponent*PickUpDraggableItem()override{
|
||||||
|
68
Crawler/ScrollableWindowComponent.h
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Menu.h"
|
||||||
|
#include "MenuComponent.h"
|
||||||
|
#include "Crawler.h"
|
||||||
|
|
||||||
|
class ScrollableWindowComponent:public MenuComponent{
|
||||||
|
protected:
|
||||||
|
Renderable r;
|
||||||
|
std::vector<MenuComponent*>components;
|
||||||
|
vf2d scrollOffset{};
|
||||||
|
geom2d::rect<float>bounds;
|
||||||
|
public:
|
||||||
|
inline ScrollableWindowComponent(MenuType parent,geom2d::rect<float>rect,Decal*icon,MenuFunc onClick)
|
||||||
|
:MenuComponent(parent,rect,"",onClick,false){
|
||||||
|
r.Create(rect.size.x,rect.size.y);
|
||||||
|
}
|
||||||
|
protected:
|
||||||
|
virtual inline void Update(Crawler*game)override{
|
||||||
|
MenuComponent::Update(game);
|
||||||
|
for(MenuComponent*component:components){
|
||||||
|
component->Update(game);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
virtual inline void Draw(Crawler*game,vf2d parentPos,bool focused)override{
|
||||||
|
MenuComponent::Draw(game,parentPos,focused);
|
||||||
|
Sprite*prevDrawTarget=game->GetDrawTarget();
|
||||||
|
game->SetDrawTarget(r.Sprite());
|
||||||
|
game->Clear(BLANK);
|
||||||
|
for(MenuComponent*component:components){
|
||||||
|
component->Draw(game,scrollOffset,focused);
|
||||||
|
}
|
||||||
|
game->SetDrawTarget(prevDrawTarget);
|
||||||
|
game->DrawSprite(parentPos,r.Sprite());
|
||||||
|
}
|
||||||
|
virtual inline void DrawDecal(Crawler*game,vf2d parentPos,bool focused)override{
|
||||||
|
MenuComponent::DrawDecal(game,parentPos,focused);
|
||||||
|
game->DrawRectDecal(parentPos,rect.size);
|
||||||
|
for(MenuComponent*component:components){
|
||||||
|
component->DrawDecal(game,parentPos+scrollOffset,focused);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public:
|
||||||
|
void inline AddComponent(Menu*parentMenu,std::string key,MenuComponent*button){
|
||||||
|
components.push_back(button);
|
||||||
|
button->renderInMain=false; //Now we are in control!
|
||||||
|
|
||||||
|
if(button->rect.pos.x<bounds.pos.x){
|
||||||
|
float sizeIncrease=bounds.pos.x-button->rect.pos.x;
|
||||||
|
bounds.size.x+=sizeIncrease;
|
||||||
|
bounds.pos.x=button->rect.pos.x;
|
||||||
|
}
|
||||||
|
if(button->rect.right().start.x>bounds.right().start.x){
|
||||||
|
float sizeIncrease=button->rect.right().start.x-bounds.right().start.x;
|
||||||
|
bounds.size.x+=sizeIncrease;
|
||||||
|
}
|
||||||
|
if(button->rect.pos.y<bounds.pos.y){
|
||||||
|
float sizeIncrease=bounds.pos.y-button->rect.pos.y;
|
||||||
|
bounds.size.y+=sizeIncrease;
|
||||||
|
bounds.pos.y=button->rect.pos.y;
|
||||||
|
}
|
||||||
|
if(button->rect.bottom().start.y>bounds.bottom().start.y){
|
||||||
|
float sizeIncrease=button->rect.bottom().start.y-bounds.bottom().start.y;
|
||||||
|
bounds.size.y+=sizeIncrease;
|
||||||
|
}
|
||||||
|
|
||||||
|
parentMenu->AddComponent(key,button);
|
||||||
|
}
|
||||||
|
};
|
@ -2,7 +2,7 @@
|
|||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 2
|
#define VERSION_MINOR 2
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 1954
|
#define VERSION_BUILD 1972
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
@ -42,6 +42,106 @@ ItemDatabase
|
|||||||
MP Restore = 320
|
MP Restore = 320
|
||||||
ItemCategory = Consumables
|
ItemCategory = Consumables
|
||||||
}
|
}
|
||||||
|
Dummy Item 1
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 2
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 3
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 4
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 5
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 6
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 7
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 8
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 9
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 10
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 11
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 12
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 13
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 14
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 15
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 16
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 17
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 18
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 19
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Dummy Item 20
|
||||||
|
{
|
||||||
|
Description = Does nothing apparently.
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
Bandages
|
Bandages
|
||||||
{
|
{
|
||||||
ItemScript = Restore
|
ItemScript = Restore
|
||||||
|
BIN
Crawler/assets/items/Dummy Item 1.png
Normal file
After Width: | Height: | Size: 621 B |
BIN
Crawler/assets/items/Dummy Item 10.png
Normal file
After Width: | Height: | Size: 669 B |
BIN
Crawler/assets/items/Dummy Item 11.png
Normal file
After Width: | Height: | Size: 626 B |
BIN
Crawler/assets/items/Dummy Item 12.png
Normal file
After Width: | Height: | Size: 683 B |
BIN
Crawler/assets/items/Dummy Item 13.png
Normal file
After Width: | Height: | Size: 681 B |
BIN
Crawler/assets/items/Dummy Item 14.png
Normal file
After Width: | Height: | Size: 666 B |
BIN
Crawler/assets/items/Dummy Item 15.png
Normal file
After Width: | Height: | Size: 671 B |
BIN
Crawler/assets/items/Dummy Item 16.png
Normal file
After Width: | Height: | Size: 691 B |
BIN
Crawler/assets/items/Dummy Item 17.png
Normal file
After Width: | Height: | Size: 657 B |
BIN
Crawler/assets/items/Dummy Item 18.png
Normal file
After Width: | Height: | Size: 695 B |
BIN
Crawler/assets/items/Dummy Item 19.png
Normal file
After Width: | Height: | Size: 684 B |
BIN
Crawler/assets/items/Dummy Item 2.png
Normal file
After Width: | Height: | Size: 657 B |
BIN
Crawler/assets/items/Dummy Item 20.png
Normal file
After Width: | Height: | Size: 699 B |
BIN
Crawler/assets/items/Dummy Item 3.png
Normal file
After Width: | Height: | Size: 651 B |
BIN
Crawler/assets/items/Dummy Item 4.png
Normal file
After Width: | Height: | Size: 642 B |
BIN
Crawler/assets/items/Dummy Item 5.png
Normal file
After Width: | Height: | Size: 649 B |
BIN
Crawler/assets/items/Dummy Item 6.png
Normal file
After Width: | Height: | Size: 673 B |
BIN
Crawler/assets/items/Dummy Item 7.png
Normal file
After Width: | Height: | Size: 637 B |
BIN
Crawler/assets/items/Dummy Item 8.png
Normal file
After Width: | Height: | Size: 668 B |
BIN
Crawler/assets/items/Dummy Item 9.png
Normal file
After Width: | Height: | Size: 671 B |