Merge branch 'fix-for-shadows' of https://github.com/xiendev/colobot into xiendev-fix-for-shadows
commit
64162a0e6f
|
@ -120,6 +120,7 @@ object/mainmovie.cpp
|
|||
object/motion/motion.cpp
|
||||
object/motion/motionant.cpp
|
||||
object/motion/motionbee.cpp
|
||||
object/motion/motiondummy.cpp
|
||||
object/motion/motionhuman.cpp
|
||||
object/motion/motionmother.cpp
|
||||
object/motion/motionspider.cpp
|
||||
|
|
|
@ -3651,7 +3651,7 @@ void CEngine::DrawShadow()
|
|||
float lastIntensity = -1.0f;
|
||||
for (int i = 0; i < static_cast<int>( m_shadows.size() ); i++)
|
||||
{
|
||||
if (m_shadows[i].hide)
|
||||
if (m_shadows[i].hide || !m_shadows[i].used)
|
||||
continue;
|
||||
|
||||
Math::Vector pos = m_shadows[i].pos; // pos = center of the shadow on the ground
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
// * This file is part of the COLOBOT source code
|
||||
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
|
||||
// *
|
||||
// * This program is free software: you can redistribute it and/or modify
|
||||
// * it under the terms of the GNU General Public License as published by
|
||||
// * the Free Software Foundation, either version 3 of the License, or
|
||||
// * (at your option) any later version.
|
||||
// *
|
||||
// * This program is distributed in the hope that it will be useful,
|
||||
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// * GNU General Public License for more details.
|
||||
// *
|
||||
// * You should have received a copy of the GNU General Public License
|
||||
// * along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
#include "object/motion/motiondummy.h"
|
||||
|
||||
#include "graphics/engine/modelmanager.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Object's constructor.
|
||||
|
||||
CMotionDummy::CMotionDummy(CObject* object) : CMotion(object)
|
||||
{
|
||||
}
|
||||
|
||||
// Object's destructor.
|
||||
|
||||
CMotionDummy::~CMotionDummy()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// Removes an object.
|
||||
|
||||
void CMotionDummy::DeleteObject(bool bAll)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// Creates a Dummy traveling any lands on the ground.
|
||||
|
||||
bool CMotionDummy::Create(Math::Vector pos, float angle, ObjectType type,
|
||||
float power)
|
||||
{
|
||||
m_object->SetType(type);
|
||||
|
||||
// Creates the main base.
|
||||
int rank = m_engine->CreateObject();
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_VEHICULE); // this is a moving object
|
||||
m_object->SetObjectRank(0, rank);
|
||||
|
||||
return true;
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
// * This file is part of the COLOBOT source code
|
||||
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
|
||||
// *
|
||||
// * This program is free software: you can redistribute it and/or modify
|
||||
// * it under the terms of the GNU General Public License as published by
|
||||
// * the Free Software Foundation, either version 3 of the License, or
|
||||
// * (at your option) any later version.
|
||||
// *
|
||||
// * This program is distributed in the hope that it will be useful,
|
||||
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// * GNU General Public License for more details.
|
||||
// *
|
||||
// * You should have received a copy of the GNU General Public License
|
||||
// * along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
// motiondummy.h
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "object/motion/motion.h"
|
||||
|
||||
class CMotionDummy : public CMotion
|
||||
{
|
||||
public:
|
||||
CMotionDummy(CObject* object);
|
||||
~CMotionDummy();
|
||||
|
||||
void DeleteObject(bool bAll=false);
|
||||
bool Create(Math::Vector pos, float angle, ObjectType type, float power);
|
||||
};
|
|
@ -931,6 +931,7 @@ bool CMotionVehicle::Create(Math::Vector pos, float angle, ObjectType type,
|
|||
rank = m_engine->CreateObject();
|
||||
m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_FIX);
|
||||
pPower->SetObjectRank(0, rank);
|
||||
pPower->CreateShadowCircle(1.5f, 1.0f); //create a shadow for battary
|
||||
|
||||
if ( power <= 1.0f ) modelManager->AddModelCopy("power.mod", false, rank);
|
||||
else modelManager->AddModelCopy("atomic.mod", false, rank);
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
#include "object/motion/motion.h"
|
||||
#include "object/motion/motionant.h"
|
||||
#include "object/motion/motionbee.h"
|
||||
#include "object/motion/motiondummy.h"
|
||||
#include "object/motion/motionhuman.h"
|
||||
#include "object/motion/motionmother.h"
|
||||
#include "object/motion/motionspider.h"
|
||||
|
@ -2146,7 +2147,7 @@ bool CObject::CreateVehicle(Math::Vector pos, float angle, ObjectType type,
|
|||
m_motion = new CMotionHuman(this);
|
||||
}
|
||||
else if ( type == OBJECT_CONTROLLER ) {
|
||||
m_motion = new CMotion(this); //dummy object
|
||||
m_motion = new CMotionDummy(this); //dummy object
|
||||
}
|
||||
else {
|
||||
m_motion = new CMotionVehicle(this);
|
||||
|
|
Loading…
Reference in New Issue