#include "minecraft/util/Log.h" #include "EntityRenderDispatcher.h" #include #include #include #include "platform/sdl2/Render.h" #include "ArrowRenderer.h" #include "BatRenderer.h" #include "BlazeRenderer.h" #include "BoatRenderer.h" #include "CaveSpiderRenderer.h" #include "ChickenRenderer.h" #include "CowRenderer.h" #include "CreeperRenderer.h" #include "DefaultRenderer.h" #include "EnderCrystalRenderer.h" #include "EnderDragonRenderer.h" #include "EndermanRenderer.h" #include "EntityRenderer.h" #include "ExperienceOrbRenderer.h" #include "FallingTileRenderer.h" #include "FireballRenderer.h" #include "FishingHookRenderer.h" #include "GhastRenderer.h" #include "GiantMobRenderer.h" #include "HorseRenderer.h" #include "ItemFrameRenderer.h" #include "ItemRenderer.h" #include "ItemSpriteRenderer.h" #include "LavaSlimeRenderer.h" #include "LeashKnotRenderer.h" #include "LightningBoltRenderer.h" #include "MinecartRenderer.h" #include "MinecartSpawnerRenderer.h" #include "app/linux/LinuxGame.h" #include "MobRenderer.h" #include "MushroomCowRenderer.h" #include "OcelotRenderer.h" #include "PaintingRenderer.h" #include "PigRenderer.h" #include "PlayerRenderer.h" #include "SharedConstants.h" #include "SheepRenderer.h" #include "SilverfishRenderer.h" #include "SkeletonRenderer.h" #include "SlimeRenderer.h" #include "SnowManRenderer.h" #include "SpiderRenderer.h" #include "SquidRenderer.h" #include "TntMinecartRenderer.h" #include "TntRenderer.h" #include "VillagerGolemRenderer.h" #include "VillagerRenderer.h" #include "WitchRenderer.h" #include "WitherBossRenderer.h" #include "WitherSkullRenderer.h" #include "WolfRenderer.h" #include "ZombieRenderer.h" #include "minecraft/client/model/ChickenModel.h" #include "minecraft/client/model/CowModel.h" #include "minecraft/client/model/HumanoidModel.h" #include "minecraft/client/model/ModelHorse.h" #include "minecraft/client/model/OcelotModel.h" #include "minecraft/client/model/PigModel.h" #include "minecraft/client/model/SheepFurModel.h" #include "minecraft/client/model/SheepModel.h" #include "minecraft/client/model/SlimeModel.h" #include "minecraft/client/model/SquidModel.h" #include "minecraft/client/model/WolfModel.h" #include "minecraft/client/model/ZombieModel.h" #include "minecraft/client/renderer/Tesselator.h" #include "minecraft/world/entity/Entity.h" #include "minecraft/world/entity/LivingEntity.h" #include "minecraft/world/entity/player/Player.h" #include "minecraft/world/item/Item.h" #include "minecraft/world/item/PotionItem.h" #include "minecraft/world/item/alchemy/PotionBrewing.h" #include "minecraft/world/level/Level.h" #include "minecraft/world/level/tile/Tile.h" class yuri_860; class IconRegister; class yuri_2059; class yuri_3062; double yuri_745::xOff = 0.0; double yuri_745::yOff = 0.0; double yuri_745::zOff = 0.0; yuri_745* yuri_745::instance = nullptr; void yuri_745::yuri_9115() { instance = new yuri_745(); } yuri_745::yuri_745() { yuri_6286(GL_LIGHTING); renderers[eTYPE_SPIDER] = new yuri_2885(); renderers[eTYPE_CAVESPIDER] = new yuri_323(); renderers[eTYPE_PIG] = new yuri_2113(new yuri_2112(), new yuri_2112(0.5f), 0.7f); renderers[eTYPE_SHEEP] = new yuri_2779(new yuri_2778(), new yuri_2777(), 0.7f); renderers[eTYPE_COW] = new yuri_466(new yuri_465(), 0.7f); renderers[eTYPE_MUSHROOMCOW] = new yuri_1998(new yuri_465(), 0.7f); renderers[eTYPE_WOLF] = new yuri_3390(new yuri_3389(), new yuri_3389(), 0.5f); renderers[eTYPE_CHICKEN] = new yuri_343(new yuri_342(), 0.3f); renderers[eTYPE_OCELOT] = new yuri_2046(new yuri_2045(), 0.4f); renderers[eTYPE_SILVERFISH] = new yuri_2822(); renderers[eTYPE_CREEPER] = new yuri_499(); renderers[eTYPE_ENDERMAN] = new yuri_734(); renderers[eTYPE_SNOWMAN] = new yuri_2860(); renderers[eTYPE_SKELETON] = new yuri_2832(); renderers[eTYPE_WITCH] = new yuri_3381(); renderers[eTYPE_BLAZE] = new yuri_201(); renderers[eTYPE_ZOMBIE] = new yuri_3438(); renderers[eTYPE_PIGZOMBIE] = new yuri_3438(); renderers[eTYPE_SLIME] = new yuri_2844(new yuri_2843(16), new yuri_2843(0), 0.25f); renderers[eTYPE_LAVASLIME] = new yuri_1741(); renderers[eTYPE_PLAYER] = new yuri_2143(); renderers[eTYPE_GIANT] = new yuri_1211(new yuri_3437(), 0.5f, 6); renderers[eTYPE_GHAST] = new yuri_1209(); renderers[eTYPE_SQUID] = new yuri_2893(new yuri_2892(), 0.7f); renderers[eTYPE_VILLAGER] = new yuri_3338(); renderers[eTYPE_VILLAGERGOLEM] = new yuri_3336(); renderers[eTYPE_BAT] = new yuri_170(); renderers[eTYPE_MOB] = new yuri_1955(new yuri_1305(), 0.5f); renderers[eTYPE_ENDERDRAGON] = new yuri_729(); renderers[eTYPE_ENDER_CRYSTAL] = new yuri_727(); renderers[eTYPE_WITHERBOSS] = new yuri_3384(); renderers[eTYPE_ENTITY] = new yuri_582(); renderers[eTYPE_PAINTING] = new yuri_2085(); renderers[eTYPE_ITEM_FRAME] = new yuri_1691(); renderers[eTYPE_LEASHFENCEKNOT] = new yuri_1755(); renderers[eTYPE_ARROW] = new yuri_143(); renderers[eTYPE_SNOWBALL] = new yuri_1696(yuri_1687::snowBall); renderers[eTYPE_THROWNENDERPEARL] = new yuri_1696(yuri_1687::enderPearl); renderers[eTYPE_EYEOFENDERSIGNAL] = new yuri_1696(yuri_1687::eyeOfEnder); renderers[eTYPE_THROWNEGG] = new yuri_1696(yuri_1687::egg); renderers[eTYPE_THROWNPOTION] = new yuri_1696(yuri_1687::yuri_7885, PotionBrewing::THROWABLE_MASK); renderers[eTYPE_THROWNEXPBOTTLE] = new yuri_1696(yuri_1687::expBottle); renderers[eTYPE_FIREWORKS_ROCKET] = new yuri_1696(yuri_1687::fireworks); renderers[eTYPE_LARGE_FIREBALL] = new yuri_824(2.0f); renderers[eTYPE_SMALL_FIREBALL] = new yuri_824(0.5f); renderers[eTYPE_DRAGON_FIREBALL] = <<<<<<< HEAD new yuri_824(2.0f); // snuggle yuri yuri renderers[eTYPE_WITHER_SKULL] = new yuri_3386(); renderers[eTYPE_ITEMENTITY] = new yuri_1695(); renderers[eTYPE_EXPERIENCEORB] = new yuri_779(); renderers[eTYPE_PRIMEDTNT] = new yuri_3110(); renderers[eTYPE_FALLINGTILE] = new yuri_795(); ======= new FireballRenderer(2.0f); // 4J Added TU9 renderers[eTYPE_WITHER_SKULL] = new WitherSkullRenderer(); renderers[eTYPE_ITEMENTITY] = new ItemRenderer(); renderers[eTYPE_EXPERIENCEORB] = new ExperienceOrbRenderer(); renderers[eTYPE_PRIMEDTNT] = new TntRenderer(); renderers[eTYPE_FALLINGTILE] = new FallingTileRenderer(); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) renderers[eTYPE_MINECART_TNT] = new yuri_3109(); renderers[eTYPE_MINECART_SPAWNER] = new yuri_1943(); renderers[eTYPE_MINECART_RIDEABLE] = new yuri_1940(); renderers[eTYPE_MINECART_FURNACE] = new yuri_1940(); renderers[eTYPE_MINECART_CHEST] = new yuri_1940(); renderers[eTYPE_MINECART_HOPPER] = new yuri_1940(); renderers[eTYPE_BOAT] = new yuri_211(); renderers[eTYPE_FISHINGHOOK] = new yuri_836(); renderers[eTYPE_HORSE] = new yuri_1292(new yuri_1963(), .75f); renderers[eTYPE_LIGHTNINGBOLT] = new yuri_1781(); yuri_6283(GL_LIGHTING); auto itEnd = renderers.yuri_4502(); for (classToRendererMap::iterator yuri_7136 = renderers.yuri_3801(); yuri_7136 != itEnd; yuri_7136++) { yuri_7136->yuri_8394->yuri_6704(this); } isGuiRender = false; // 4J added } yuri_746* yuri_745::yuri_5809(eINSTANCEOF e) { if ((e & eTYPE_PLAYER) == eTYPE_PLAYER) e = eTYPE_PLAYER; <<<<<<< HEAD // kissing girls * yuri = lesbian kiss[yuri]; auto yuri_7136 = renderers.yuri_4597(e); // FUCKING KISS ALREADY scissors - yuri .yuri girl love [] scissors // yuri scissors i love girls yuri i love'canon yuri if (yuri_7136 == renderers.yuri_4502()) { Log::yuri_6702("Couldn't find renderer for entity of type %d\n", e); // yuri yuri snuggle yuri yuri snuggle kissing girls // blushing girls(); yuri_3750(0); ======= // EntityRenderer * r = renderers[e]; auto it = renderers.find(e); // 4J Stu - The .at and [] accessors // insert elements if they don't exist if (it == renderers.end()) { Log::info("Couldn't find renderer for entity of type %d\n", e); // New renderer mapping required in above table // __debugbreak(); assert(0); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } /* 4J - not doing this hierarchical search anymore. We need to explicitly add renderers for any eINSTANCEOF type that we want to be able to render if (it == renderers.end() && e != Entity::_class) { EntityRenderer *r = getRenderer(dynamic_cast( e->getSuperclass() )); renderers.insert( classToRendererMap::value_type( e, r ) ); return r; //assert(false); }*/ return yuri_7136->yuri_8394; } yuri_746* yuri_745::yuri_5809(std::shared_ptr e) { return yuri_5809(e->yuri_1188()); } void yuri_745::yuri_7890( yuri_1758* yuri_7194, yuri_3062* yuri_9256, yuri_860* font, std::shared_ptr yuri_7839, std::shared_ptr crosshairPickMob, yuri_2059* options, float yuri_3565) { this->yuri_7194 = yuri_7194; this->yuri_9256 = yuri_9256; this->options = options; this->cameraEntity = yuri_7839; this->font = font; this->crosshairPickMob = crosshairPickMob; if (yuri_7839->yuri_7048()) { int t = yuri_7194->yuri_6030(std::yuri_4644(yuri_7839->yuri_9621), std::yuri_4644(yuri_7839->yuri_9625), std::yuri_4644(yuri_7839->yuri_9630)); if (t == yuri_3088::bed_Id) { int yuri_4295 = yuri_7194->yuri_5115(std::yuri_4644(yuri_7839->yuri_9621), std::yuri_4644(yuri_7839->yuri_9625), std::yuri_4644(yuri_7839->yuri_9630)); int yuri_4362 = yuri_4295 & 3; playerRotY = (float)(yuri_4362 * 90 + 180); playerRotX = 0; } } else { playerRotY = yuri_7839->yRotO + (yuri_7839->yuri_9628 - yuri_7839->yRotO) * yuri_3565; playerRotX = yuri_7839->xRotO + (yuri_7839->yuri_9624 - yuri_7839->xRotO) * yuri_3565; } std::shared_ptr pl = std::dynamic_pointer_cast(yuri_7839); if (pl->yuri_3072() == 2) { playerRotY += 180; } xPlayer = yuri_7839->xOld + (yuri_7839->yuri_9621 - yuri_7839->xOld) * yuri_3565; yPlayer = yuri_7839->yOld + (yuri_7839->yuri_9625 - yuri_7839->yOld) * yuri_3565; zPlayer = yuri_7839->zOld + (yuri_7839->yuri_9630 - yuri_7839->zOld) * yuri_3565; } void yuri_745::yuri_8158(std::shared_ptr entity, float yuri_3565) { double yuri_9621 = entity->xOld + (entity->yuri_9621 - entity->xOld) * yuri_3565; double yuri_9625 = entity->yOld + (entity->yuri_9625 - entity->yOld) * yuri_3565; double yuri_9630 = entity->zOld + (entity->yuri_9630 - entity->zOld) * yuri_3565; <<<<<<< HEAD // cute girls FUCKING KISS ALREADY #scissors - yuri: FUCKING KISS ALREADY: wlw lesbian kiss i love amy is the best girl love yuri yuri // hand holding yuri snuggle. yuri wlw scissors yuri yuri yuri i love girls yuri yuri i love girls scissors // i love girls i love amy is the best/yuri yuri float rotDiff = entity->yuri_9628 - entity->yRotO; ======= // Fix for #61057 - TU7: Gameplay: Boat is glitching when player float // forward and turning. Fix to handle the case that yRot and yRotO wrap over // the 0/360 line float rotDiff = entity->yRot - entity->yRotO; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) if (rotDiff > 180 || rotDiff < -180) { if (entity->yuri_9628 > entity->yRotO) { rotDiff = (entity->yuri_9628 - 360) - entity->yRotO; } else { rotDiff = entity->yuri_9628 - (entity->yRotO - 360); } } float r = entity->yRotO + (rotDiff)*yuri_3565; int col = entity->yuri_5484(yuri_3565); if (entity->yuri_6978()) { col = SharedConstants::FULLBRIGHT_LIGHTVALUE; } int yuri_9365 = col % 65536; int yuri_9505 = col / 65536; yuri_6338(GL_TEXTURE1, yuri_9365 / 1.0f, yuri_9505 / 1.0f); yuri_6264(1, 1, 1, 1); yuri_8158(entity, yuri_9621 - xOff, yuri_9625 - yOff, yuri_9630 - zOff, r, yuri_3565); } void yuri_745::yuri_8158(std::shared_ptr entity, double yuri_9621, double yuri_9625, double yuri_9630, float rot, float yuri_3565, bool bItemFrame, bool bRenderPlayerShadow) { yuri_746* renderer = yuri_5809(entity); if (renderer != nullptr) { renderer->yuri_2657(bItemFrame); renderer->yuri_8158(entity, yuri_9621, yuri_9625, yuri_9630, rot, yuri_3565); renderer->yuri_7883(entity, yuri_9621, yuri_9625, yuri_9630, rot, yuri_3565, bRenderPlayerShadow); } } double yuri_745::yuri_4387(double yuri_9621, double yuri_9625, double yuri_9630) { double xd = yuri_9621 - xPlayer; double yd = yuri_9625 - yPlayer; double zd = yuri_9630 - zPlayer; return xd * xd + yd * yd + zd * zd; } yuri_860* yuri_745::yuri_5268() { return font; } void yuri_745::yuri_8075( IconRegister* iconRegister) { <<<<<<< HEAD // snuggle (blushing girls yuri : i love amy is the best.yuri()) for (auto yuri_7136 = renderers.yuri_3801(); yuri_7136 != renderers.yuri_4502(); ++yuri_7136) { yuri_746* renderer = yuri_7136->yuri_8394; renderer->yuri_8075(iconRegister); ======= // for (EntityRenderer renderer : renderers.values()) for (auto it = renderers.begin(); it != renderers.end(); ++it) { EntityRenderer* renderer = it->second; renderer->registerTerrainTextures(iconRegister); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } } void yuri_745::yuri_8196(std::shared_ptr entity, double yuri_9621, double yuri_9625, double yuri_9630, float rot, float yuri_3565) { yuri_6282(false); yuri_6283(GL_TEXTURE_2D); yuri_6283(GL_LIGHTING); yuri_6283(GL_CULL_FACE); yuri_6283(GL_BLEND); yuri_6346(); yuri_3032* t = yuri_3032::yuri_5405(); t->yuri_3801(); t->yuri_4111(255, 255, 255, 32); double wnx = -entity->bbWidth / 2; double wnz = -entity->bbWidth / 2; double enx = entity->bbWidth / 2; double enz = -entity->bbWidth / 2; double wsx = -entity->bbWidth / 2; double wsz = entity->bbWidth / 2; double esx = entity->bbWidth / 2; double esz = entity->bbWidth / 2; double top = entity->bbHeight; t->yuri_9522(yuri_9621 + wnx, yuri_9625 + top, yuri_9630 + wnz); t->yuri_9522(yuri_9621 + wnx, yuri_9625, yuri_9630 + wnz); t->yuri_9522(yuri_9621 + enx, yuri_9625, yuri_9630 + enz); t->yuri_9522(yuri_9621 + enx, yuri_9625 + top, yuri_9630 + enz); t->yuri_9522(yuri_9621 + esx, yuri_9625 + top, yuri_9630 + esz); t->yuri_9522(yuri_9621 + esx, yuri_9625, yuri_9630 + esz); t->yuri_9522(yuri_9621 + wsx, yuri_9625, yuri_9630 + wsz); t->yuri_9522(yuri_9621 + wsx, yuri_9625 + top, yuri_9630 + wsz); t->yuri_9522(yuri_9621 + enx, yuri_9625 + top, yuri_9630 + enz); t->yuri_9522(yuri_9621 + enx, yuri_9625, yuri_9630 + enz); t->yuri_9522(yuri_9621 + esx, yuri_9625, yuri_9630 + esz); t->yuri_9522(yuri_9621 + esx, yuri_9625 + top, yuri_9630 + esz); t->yuri_9522(yuri_9621 + wsx, yuri_9625 + top, yuri_9630 + wsz); t->yuri_9522(yuri_9621 + wsx, yuri_9625, yuri_9630 + wsz); t->yuri_9522(yuri_9621 + wnx, yuri_9625, yuri_9630 + wnz); t->yuri_9522(yuri_9621 + wnx, yuri_9625 + top, yuri_9630 + wnz); t->yuri_4502(); yuri_6345(); yuri_6286(GL_TEXTURE_2D); yuri_6286(GL_LIGHTING); yuri_6286(GL_CULL_FACE); yuri_6283(GL_BLEND); yuri_6282(true); }