From f32b5aafe824ab1d865ea0df8698ce45ccd1ca8b Mon Sep 17 00:00:00 2001 From: "admin@omencraft.com" Date: Sat, 5 Nov 2011 18:28:19 +0000 Subject: Added all the items up to Beta 1.9.5. Added pistons and piston class. git-svn-id: http://mc-server.googlecode.com/svn/trunk@63 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- makefile | 8 ++ source/BlockID.h | 269 ++++++++++++++++++++++++++++++++++++++++++++--- source/Defines.h | 6 +- source/cClientHandle.cpp | 12 ++- source/cPiston.cpp | 50 +++++++++ source/cPiston.h | 45 ++++++++ 6 files changed, 372 insertions(+), 18 deletions(-) create mode 100644 source/cPiston.cpp create mode 100644 source/cPiston.h diff --git a/makefile b/makefile index d94859fff..5f0ea966f 100644 --- a/makefile +++ b/makefile @@ -91,6 +91,7 @@ MCServer : \ build/cLog.o\ build/cMonster.o\ build/cRedstone.o\ + build/cPiston.o\ build/cPawn.o\ build/cPickup.o\ build/cPlayer.o\ @@ -277,6 +278,7 @@ MCServer : \ build/cLog.o\ build/cMonster.o\ build/cRedstone.o\ + build/cPiston.o\ build/cPawn.o\ build/cPickup.o\ build/cPlayer.o\ @@ -466,6 +468,7 @@ clean : build/cLog.o\ build/cMonster.o\ build/cRedstone.o\ + build/cPiston.o\ build/cPawn.o\ build/cPickup.o\ build/cPlayer.o\ @@ -729,6 +732,11 @@ build/cRedstone.o : source/cRedstone.cpp $(CC) $(CC_OPTIONS) source/cRedstone.cpp -c $(INCLUDE) -o build/cRedstone.o +# Item # 23 -- cPiston -- +build/cPiston.o : source/cPiston.cpp + $(CC) $(CC_OPTIONS) source/cPiston.cpp -c $(INCLUDE) -o build/cPiston.o + + # Item # 25 -- cPawn -- build/cPawn.o : source/cPawn.cpp $(CC) $(CC_OPTIONS) source/cPawn.cpp -c $(INCLUDE) -o build/cPawn.o diff --git a/source/BlockID.h b/source/BlockID.h index 43451569d..01a491555 100644 --- a/source/BlockID.h +++ b/source/BlockID.h @@ -24,7 +24,22 @@ enum ENUM_BLOCK_ID E_BLOCK_LEAVES = 18, E_BLOCK_SPONGE = 19, E_BLOCK_GLASS = 20, + E_BLOCK_LAPIS_ORE = 21, + E_BLOCK_LAPIS_BLOCK = 22, + E_BLOCK_DISPENSER = 23, + E_BLOCK_SANDSTONE = 24, + E_BLOCK_NOTE_BLOCK = 25, + E_BLOCK_BED = 26, + E_BLOCK_POWERED_RAIL = 27, + E_BLOCK_DETECTOR_RAIL = 28, + E_BLOCK_STICKY_PISTON = 29, + E_BLOCK_COBWEB = 30, + E_BLOCK_TALL_GRASS = 31, + E_BLOCK_DEAD_BRUSH = 32, + E_BLOCK_PISTON = 33, + E_BLOCK_PISTON_EXTENSION = 34, E_BLOCK_WHITE_CLOTH = 35, + E_BLOCK_PISTON_MOVED_BLOCK = 36, E_BLOCK_YELLOW_FLOWER = 37, E_BLOCK_RED_ROSE = 38, E_BLOCK_BROWN_MUSHROOM = 39, @@ -65,14 +80,16 @@ enum ENUM_BLOCK_ID E_BLOCK_REDSTONE_ORE_GLOWING = 74, E_BLOCK_REDSTONE_TORCH_ON = 75, E_BLOCK_REDSTONE_TORCH_OFF = 76, - + E_BLOCK_STONE_BUTTON = 77, E_BLOCK_SNOW = 78, E_BLOCK_ICE = 79, E_BLOCK_SNOW_BLOCK = 80, E_BLOCK_CACTUS = 81, E_BLOCK_CLAY = 82, E_BLOCK_REEDS = 83, - + E_BLOCK_JUKEBOX = 84, + E_BLOCK_FENCE = 85, + E_BLOCK_PUMPKIN = 86, E_BLOCK_BLOODSTONE = 87, E_BLOCK_SOULSAND = 88, E_BLOCK_GLOWSTONE = 89, @@ -83,6 +100,32 @@ enum ENUM_BLOCK_ID E_BLOCK_REDSTONE_REPEATER_ON = 94, E_BLOCK_LOCKED_CHEST = 95, E_BLOCK_TRAPDOOR = 96, + E_BLOCK_SILVERFISH_EGG = 97, + E_BLOCK_STONE_BRICKS = 98, + E_BLOCK_HUGE_BROWN_MUSHROOM = 99, + E_BLOCK_HUGE_RED_MUSHROOM = 100, + E_BLOCK_IRON_BAR = 101, + E_BLOCK_GLASS_PLANE = 102, + E_BLOCK_MELON = 103, + E_BLOCK_PUMPKIN_STEM = 104, + E_BLOCK_MELON_STEM = 105, + E_BLOCK_VINES = 106, + E_BLOCK_FENCE_GATE = 107, + E_BLOCK_BRICK_STAIRS = 108, + E_BLOCK_STONE_BRICK_STAIRS = 109, + E_BLOCK_MYCELIUM = 110, + E_BLOCK_LILY_PAD = 111, + E_BLOCK_NETHER_BRICK = 112, + E_BLOCK_NETHER_BRICK_FENCE = 113, + E_BLOCK_NETHER_BRICK_STAIRS = 114, + E_BLOCK_NETHER_WART = 115, + E_BLOCK_ENCHANTMENT_TABLE = 116, + E_BLOCK_BREWING_STAND = 117, + E_BLOCK_CAULDRON = 118, + E_BLOCK_END_PORTAL = 119, + E_BLOCK_END_PORTAL_FRAME = 120, + E_BLOCK_END_STONE = 121, + E_BLOCK_ = 121, }; //tolua_end @@ -90,9 +133,9 @@ enum ENUM_BLOCK_ID enum ENUM_ITEM_ID { E_ITEM_EMPTY = -1, - E_ITEM_STONE = 1, - E_ITEM_GRASS = 2, - E_ITEM_DIRT = 3, + E_ITEM_STONE = 1, + E_ITEM_GRASS = 2, + E_ITEM_DIRT = 3, E_ITEM_COBBLESTONE = 4, E_ITEM_WOOD = 5, E_ITEM_SAPLING = 6, @@ -108,9 +151,112 @@ enum ENUM_ITEM_ID E_ITEM_COAL_ORE = 16, E_ITEM_LOG = 17, E_ITEM_LEAVES = 18, + E_ITEM_SPONGE = 19, + E_ITEM_GLASS = 20, + E_ITEM_LAPIS_ORE = 21, + E_ITEM_LAPIS_BLOCK = 22, + E_ITEM_DISPENSER = 23, + E_ITEM_SANDSTONE = 24, + E_ITEM_NOTE_ITEM = 25, + + E_ITEM_POWERED_RAIL = 27, + E_ITEM_DETECTOR_RAIL = 28, + E_ITEM_STICKY_PISTON = 29, + E_ITEM_COBWEB = 30, + E_ITEM_TALL_GRASS = 31, + E_ITEM_DEAD_BRUSH = 32, + E_ITEM_PISTON = 33, + E_ITEM_PISTON_EXTENSION = 34, + E_ITEM_WHITE_CLOTH = 35, + E_ITEM_PISTON_MOVED_BLOCK = 36, + E_ITEM_YELLOW_FLOWER = 37, + E_ITEM_RED_ROSE = 38, + E_ITEM_BROWN_MUSHROOM = 39, + E_ITEM_RED_MUSHROOM = 40, E_ITEM_GOLD_BLOCK = 41, E_ITEM_IRON_BLOCK = 42, + E_ITEM_DOUBLE_STEP = 43, + E_ITEM_STEP = 44, + E_ITEM_BRICK = 45, + E_ITEM_TNT = 46, + E_ITEM_BOOKCASE = 47, + E_ITEM_MOSSY_COBBLESTONE = 48, + E_ITEM_OBSIDIAN = 49, + E_ITEM_TORCH = 50, + E_ITEM_FIRE = 51, + E_ITEM_MOB_SPAWNER = 52, + E_ITEM_WOODEN_STAIRS = 53, + E_ITEM_CHEST = 54, + E_ITEM_REDSTONE_WIRE = 55, + E_ITEM_DIAMOND_ORE = 56, E_ITEM_DIAMOND_BLOCK = 57, + E_ITEM_WORKBENCH = 58, + E_ITEM_CROPS = 59, + E_ITEM_SOIL = 60, + E_ITEM_FURNACE = 61, + E_ITEM_BURNING_FURNACE = 62, + E_ITEM_SIGN_POST = 63, + + E_ITEM_LADDER = 65, + E_ITEM_MINECART_TRACKS = 66, + E_ITEM_COBBLESTONE_STAIRS = 67, + E_ITEM_WALLSIGN = 68, + E_ITEM_LEVER = 69, + E_ITEM_STONE_PRESSURE_PLATE = 70, + + E_ITEM_WOODEN_PRESSURE_PLATE = 72, + E_ITEM_REDSTONE_ORE = 73, + E_ITEM_REDSTONE_ORE_GLOWING = 74, + E_ITEM_REDSTONE_TORCH_ON = 75, + E_ITEM_REDSTONE_TORCH_OFF = 76, + E_ITEM_STONE_BUTTON = 77, + E_ITEM_SNOW = 78, + E_ITEM_ICE = 79, + E_ITEM_SNOW_BLOCK = 80, + E_ITEM_CACTUS = 81, + + E_ITEM_REEDS = 83, + E_ITEM_JUKEBOX = 84, + E_ITEM_FENCE = 85, + E_ITEM_PUMPKIN = 86, + E_ITEM_BLOODSTONE = 87, + E_ITEM_SOULSAND = 88, + E_ITEM_GLOWSTONE = 89, + E_ITEM_PORT = 90, + E_ITEM_JACK_O_LANTERN = 91, + + E_ITEM_REDSTONE_REPEATER_OFF = 93, + E_ITEM_REDSTONE_REPEATER_ON = 94, + E_ITEM_LOCKED_CHEST = 95, + E_ITEM_TRAPDOOR = 96, + E_ITEM_SILVERFISH_EGG = 97, + E_ITEM_STONE_BRICKS = 98, + E_ITEM_HUGE_BROWN_MUSHROOM = 99, + E_ITEM_HUGE_RED_MUSHROOM = 100, + E_ITEM_IRON_BAR = 101, + E_ITEM_GLASS_PLANE = 102, + E_ITEM_MELON = 103, + E_ITEM_PUMPKIN_STEM = 104, + E_ITEM_MELON_STEM = 105, + E_ITEM_VINES = 106, + E_ITEM_FENCE_GATE = 107, + E_ITEM_BRICK_STAIRS = 108, + E_ITEM_STONE_BRICK_STAIRS = 109, + E_ITEM_MYCELIUM = 110, + E_ITEM_LILY_PAD = 111, + E_ITEM_NETHER_BRICK = 112, + E_ITEM_NETHER_BRICK_FENCE = 113, + E_ITEM_NETHER_BRICK_STAIRS = 114, + + E_ITEM_ENCHANTMENT_TABLE = 116, + + E_ITEM_END_PORTAL = 119, + E_ITEM_END_PORTAL_FRAME = 120, + E_ITEM_END_STONE = 121, + + E_ITEM_IRON_SHOVEL = 256, + E_ITEM_IRON_PICKAXE = 257, + E_ITEM_IRON_AXE = 258, E_ITEM_FLINT_AND_STEEL = 259, E_ITEM_APPLE = 260, E_ITEM_BOW = 261, @@ -119,7 +265,21 @@ enum ENUM_ITEM_ID E_ITEM_DIAMOND = 264, E_ITEM_IRON = 265, E_ITEM_GOLD = 266, - + E_ITEM_IRON_SWORD = 267, + E_ITEM_WOODEN_SWORD = 268, + E_ITEM_WOODEN_SHOVEL = 269, + E_ITEM_WOODEN_PICKAXE = 270, + E_ITEM_WOODEN_AXE = 271, + E_ITEM_STONE_SWORD = 272, + E_ITEM_STONE_SHOVEL = 273, + E_ITEM_STONE_PICKAXE = 274, + E_ITEM_STONE_AXE = 275, + E_ITEM_DIAMOND_SWORD = 276, + E_ITEM_DIAMOND_SHOVEL = 277, + E_ITEM_DIAMOND_PICKAXE = 278, + E_ITEM_DIAMOND_AXE = 279, + E_ITEM_STICK = 280, + E_ITEM_BOWL = 281, E_ITEM_MUSHROOM_SOUP = 282, E_ITEM_GOLD_SWORD = 283, E_ITEM_GOLD_SHOVEL = 284, @@ -127,19 +287,61 @@ enum ENUM_ITEM_ID E_ITEM_GOLD_AXE = 286, E_ITEM_STRING = 287, E_ITEM_FEATHER = 288, - + E_ITEM_GUNPOWDER = 289, + E_ITEM_WOODEN_HOE = 290, + E_ITEM_STONE_HOE = 291, + E_ITEM_IRON_HOE = 292, + E_ITEM_DIAMOND_HOE = 293, + E_ITEM_GOLD_HOE = 294, + E_ITEM_SEEDS = 295, + E_ITEM_WHEAT = 296, E_ITEM_BREAD = 297, - + E_ITEM_LEATHER_CAP = 298, + E_ITEM_LEATHER_TUNIC = 299, + E_ITEM_LEATHER_PANTS = 300, + E_ITEM_LEATHER_BOOTS = 301, + E_ITEM_CHAIN_HELMET = 302, + E_ITEM_CHAIN_CHESTPLATE = 303, + E_ITEM_CHAIN_LEGGINGS = 304, + E_ITEM_CHAIN_BOOTS = 305, + E_ITEM_IRON_HELMET = 306, + E_ITEM_IRON_CHESTPLATE = 307, + E_ITEM_IRON_LEGGINGS = 308, + E_ITEM_IRON_BOOTS = 309, + E_ITEM_DIAMOND_HELMET = 310, + E_ITEM_DIAMOND_CHESTPLATE = 311, + E_ITEM_DIAMOND_LEGGINGS = 312, + E_ITEM_DIAMOND_BOOTS = 313, + E_ITEM_GOLD_HELMET = 314, + E_ITEM_GOLD_CHESTPLATE = 315, + E_ITEM_GOLD_LEGGINGS = 316, + E_ITEM_GOLD_BOOTS = 317, + E_ITEM_FLINT = 318, E_ITEM_RAW_MEAT = 319, E_ITEM_COOKED_MEAT = 320, - + E_ITEM_PAINTINGS = 321, E_ITEM_GOLDEN_APPLE = 322, E_ITEM_SIGN = 323, - + E_ITEM_WOODEN_DOOR = 324, + E_ITEM_BUCKET = 325, + E_ITEM_WATER_BUCKET = 326, + E_ITEM_LAVA_BUCKET = 327, + E_ITEM_MINECART = 328, + E_ITEM_SADDLE = 329, + E_ITEM_IRON_DOOR = 330, E_ITEM_REDSTONE_DUST = 331, - + E_ITEM_SNOWBALL = 332, + E_ITEM_BOAT = 333, + E_ITEM_LEATHER = 334, E_ITEM_MILK = 335, - + E_ITEM_CLAY_BRICK = 336, + E_ITEM_CLAY = 337, + E_ITEM_SUGAR_CANE = 338, + E_ITEM_PAPER = 339, + E_ITEM_BOOK = 340, + E_ITEM_SLIMEBALL = 341, + E_ITEM_CHEST_MINECART = 342, + E_ITEM_FURNACE_MINECART = 343, E_ITEM_EGG = 344, E_ITEM_COMPASS = 345, E_ITEM_FISHING_ROD = 346, @@ -147,8 +349,49 @@ enum ENUM_ITEM_ID E_ITEM_GLOWSTONE_DUST = 348, E_ITEM_RAW_FISH = 349, E_ITEM_COOKED_FISH = 350, - + E_ITEM_DYE = 351, + E_ITEM_BONE = 352, + E_ITEM_SUGAR = 353, E_ITEM_CAKE = 354, + E_ITEM_BED = 355, E_ITEM_REDSTONE_REPEATER = 356, + E_ITEM_COOKIE = 357, + E_ITEM_MAP = 358, + E_ITEM_SHEARS = 359, + E_ITEM_MELON_SLICES = 360, + E_ITEM_PUMPKIN_SEEDS = 361, + E_ITEM_MELON_SEEDS = 362, + E_ITEM_RAW_BEEF = 363, + E_ITEM_STEAK = 364, + E_ITEM_RAW_CHICKEN = 365, + E_ITEM_COOKED_CHICKEN = 366, + E_ITEM_ROTTEN_FLESH = 367, + E_ITEM_ENDER_PEARL = 368, + E_ITEM_BLAZE_ROD = 369, + E_ITEM_GHAST_TEAR = 370, + E_ITEM_GOLD_NUGGET = 371, + E_ITEM_NETHER_WART = 372, + E_ITEM_POTIONS = 373, + E_ITEM_GLASS_BOTTLE = 374, + E_ITEM_SPIDER_EYE = 375, + E_ITEM_FERMENTED_SPIDER_EYE = 376, + E_ITEM_BLAZE_POWDER = 377, + E_ITEM_MAGMA_CREAM = 378, + E_ITEM_BREWING_STAND = 379, + E_ITEM_CAULDRON = 380, + E_ITEM_EYE_OF_ENDER = 381, + E_ITEM_GLISTERING_MELON = 382, + + E_ITEM_13_DISC = 2256, + E_ITEM_CAT_DISC = 2257, + E_ITEM_BLOCKS_DISC = 2258, + E_ITEM_CHIRP_DISC = 2259, + E_ITEM_FAR_DISC = 2260, + E_ITEM_MALL_DISC = 2261, + E_ITEM_MELLOHI_DISC = 2262, + E_ITEM_STAL_DISC = 2263, + E_ITEM_STRAD_DISC = 2264, + E_ITEM_WARD_DISC = 2265, + E_ITEM_11_DISC = 2266, }; //tolua_end diff --git a/source/Defines.h b/source/Defines.h index 1b176208c..e40da0420 100644 --- a/source/Defines.h +++ b/source/Defines.h @@ -18,9 +18,9 @@ extern bool g_BlockOneHitDig[]; inline bool IsValidBlock( int a_BlockID ) //tolua_export { //tolua_export if( a_BlockID > -1 && - a_BlockID <= 96 && - a_BlockID != 29 && - a_BlockID != 33 && + a_BlockID <= 121 && //items to 109 are valid for 1.8.1.. 1.9.5 is up to 121 + //a_BlockID != 29 && allow pistons + //a_BlockID != 33 && allow pistons a_BlockID != 34 && a_BlockID != 36 ) { diff --git a/source/cClientHandle.cpp b/source/cClientHandle.cpp index 003f23f55..2238a3df0 100644 --- a/source/cClientHandle.cpp +++ b/source/cClientHandle.cpp @@ -17,6 +17,7 @@ #include "cLadder.h" #include "cSign.h" #include "cRedstone.h" +#include "cPiston.h" #include "cBlockToPickup.h" #include "cMonster.h" #include "cChatColor.h" @@ -487,7 +488,6 @@ void cClientHandle::HandlePacket( cPacket* a_Packet ) break; case E_BLOCK_DIG: { - //LOG("TimeP: %f", m_Player->GetLastBlockActionTime() ); //LOG("TimeN: %f", cRoot::Get()->GetWorld()->GetTime() ); if ( cRoot::Get()->GetWorld()->GetTime() - m_Player->GetLastBlockActionTime() < 0.1 ) { //only allow block interactions every 0.1 seconds @@ -788,7 +788,14 @@ void cClientHandle::HandlePacket( cPacket* a_Packet ) MetaData = cRedstone::RepeaterRotationToMetaData( m_Player->GetRotation() ); PacketData->m_ItemType = E_BLOCK_REDSTONE_REPEATER_OFF; break; + case E_BLOCK_PISTON: + case E_BLOCK_STICKY_PISTON: + MetaData = cPiston::RotationPitchToMetaData( m_Player->GetRotation(), m_Player->GetPitch() ); + break; case E_BLOCK_COBBLESTONE_STAIRS: + case E_BLOCK_BRICK_STAIRS: + case E_BLOCK_STONE_BRICK_STAIRS: + case E_BLOCK_NETHER_BRICK_STAIRS: case E_BLOCK_WOODEN_STAIRS: MetaData = cStairs::RotationToMetaData( m_Player->GetRotation() ); break; @@ -1045,9 +1052,10 @@ void cClientHandle::Tick(float a_Dt) Send( cPacket_UpdateHealth( (short)m_Player->GetHealth() ) ); //quick bugfix to prevent players from spawning in ground - m_Player->TeleportTo( m_Player->GetPosX(), m_Player->GetPosY()+1, m_Player->GetPosZ() ); + //m_Player->TeleportTo( m_Player->GetPosX(), m_Player->GetPosY()+1, m_Player->GetPosZ() ); World->UnlockEntities(); + m_Player->TeleportTo( m_Player->GetPosX(), m_Player->GetPosY()+1, m_Player->GetPosZ() ); } } diff --git a/source/cPiston.cpp b/source/cPiston.cpp new file mode 100644 index 000000000..966c96c5b --- /dev/null +++ b/source/cPiston.cpp @@ -0,0 +1,50 @@ +#include "cPiston.h" +#include "cRoot.h" +#include "cWorld.h" +#include "BlockID.h" + +cPiston::cPiston( cWorld* a_World ) + :m_World ( a_World ) +{ + +} +//Todo: All piston stuff below. +void cPiston::ExtendPiston( int pistx, int pisty, int pistz ) +{ + cWorld* World = cRoot::Get()->GetWorld(); + char metadata = World->GetBlockMeta( pistx, pisty, pistz); + + + if ( ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_STICKY_PISTON ) || ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_PISTON ) ) { + //find direction piston is facing base on meta. + //verify piston is not already extended. + //check all 16 blocks in front of it for the first airblock + //if there's and air block move those found blocks by 1 and insert E_BLOCK_PISTON_EXTENSION in the spot infront of the piston facing right direction + + } + +} + +void cPiston::RetractPiston( int pistx, int pisty, int pistz ) +{ + cWorld* World = cRoot::Get()->GetWorld(); + char metadata = World->GetBlockMeta( pistx, pisty, pistz); + + if ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_PISTON ) { + //find direction piston is facing base on meta. + //verify piston is extended. + //check block in front to see if it's an E_BLOCK_PISTON_EXTENSION + //delete that block + //set piston meta to unextended + } + + if ( (int)World->GetBlock( pistx, pisty, pistz ) == E_BLOCK_STICKY_PISTON ) { + //find direction piston is facing base on meta. + //verify piston is extended. + //check block in front to see if it's an E_BLOCK_PISTON_EXTENSION + //delete that block + //move block one more in front of it to postion E_BLOCK_PISTON_EXTENSION was facing. + //set piston meta to unextended + } + +} diff --git a/source/cPiston.h b/source/cPiston.h new file mode 100644 index 000000000..46d7d2b20 --- /dev/null +++ b/source/cPiston.h @@ -0,0 +1,45 @@ +#pragma once +#include +class cWorld; +class cPiston +{ +public: + +cPiston( cWorld* a_World ); + +static char RotationPitchToMetaData( float a_Rotation, float a_Pitch ) +{ + //if pitch higher than this value set up + //else if pitch lower than this value set down, + //else just do rotation: + std::printf("pre:a_Rotation %f \n",a_Rotation); + std::printf("a_Pitch %f \n",a_Pitch); + + if (a_Pitch >= 50.f ){ + return 0x1; + } else if ( a_Pitch <= -50.f ) { + return 0x0; + } else { + + a_Rotation += 90 + 45; // So its not aligned with axis + std::printf("a_Rotation %f \n",a_Rotation); + + if( a_Rotation > 360.f ) a_Rotation -= 360.f; + if( a_Rotation >= 0.f && a_Rotation < 90.f ) + return 0x4; + else if( a_Rotation >= 180 && a_Rotation < 270 ) + return 0x5; + else if( a_Rotation >= 90 && a_Rotation < 180 ) + return 0x2; + else + return 0x3; + } +} + + +void ExtendPiston( int, int, int ); +void RetractPiston( int, int, int ); + +cWorld* m_World; + +}; -- cgit v1.2.3