1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-07-03 22:44:32 +00:00

Merge branch 'master' of file:///Users/User/code/coding/Aquaria_fg_clean

This commit is contained in:
fgenesis 2013-12-11 01:44:03 +00:00
commit d8301284c0
58 changed files with 4963 additions and 1158 deletions

View file

@ -263,6 +263,7 @@ void AnimationEditor::applyState()
addAction(MakeFunctionEvent(AnimationEditor, clearRot), KEY_R, 0);
addAction(MakeFunctionEvent(AnimationEditor, clearPos), KEY_P, 0);
addAction(MakeFunctionEvent(AnimationEditor, flipRot), KEY_D, 0);
addAction(MakeFunctionEvent(AnimationEditor, toggleHideBone), KEY_N, 0);
addAction(MakeFunctionEvent(AnimationEditor, copy), KEY_C, 0);
addAction(MakeFunctionEvent(AnimationEditor, paste), KEY_V, 0);
@ -1155,6 +1156,58 @@ void AnimationEditor::clearRot()
}
}
void AnimationEditor::flipRot()
{
if (dsq->isNested()) return;
updateEditingBone();
if (editingBone)
{
if (!core->getShiftState())
{
BoneKeyframe *b = editSprite->getCurrentAnimation()->getKeyframe(currentKey)->getBoneKeyframe(editingBone->boneIdx);
if (b)
{
b->rot = -b->rot;
}
}
else
{
BoneKeyframe *bcur = editSprite->getCurrentAnimation()->getKeyframe(currentKey)->getBoneKeyframe(editingBone->boneIdx);
if (bcur)
{
int rotdiff = editingBone->rotation.z - bcur->rot;
if (!core->getCtrlState())
{
for (int i = 0; i < editSprite->getCurrentAnimation()->getNumKeyframes(); ++i)
{
BoneKeyframe *b = editSprite->getCurrentAnimation()->getKeyframe(i)->getBoneKeyframe(editingBone->boneIdx);
if (b)
{
b->rot = -b->rot;
}
}
}
else
{
// all bones in all anims mode
for (int a = 0; a < editSprite->animations.size(); ++a)
{
for (int i = 0; i < editSprite->animations[a].getNumKeyframes(); ++i)
{
BoneKeyframe *b = editSprite->animations[a].getKeyframe(i)->getBoneKeyframe(editingBone->boneIdx);
if (b)
{
b->rot = -b->rot;
}
}
}
}
}
}
}
}
void AnimationEditor::clearPos()
{
if (dsq->isNested()) return;

View file

@ -9,7 +9,7 @@
#define AQUARIA_BUILD_CONSOLE 1
#define AQUARIA_BUILD_SCENEEDITOR 1
#define AQUARIA_CUSTOM_BUILD_ID ""
#define AQUARIA_CUSTOM_BUILD_ID (" Build " __DATE__ " - " __TIME__)
// If defined, this is shown instead of "Aquaria vx.x.x ..." on the title screen.
//#define AQUARIA_OVERRIDE_VERSION_STRING "Aquaria OSE v1.000"

View file

@ -93,7 +93,6 @@ const float QUICK_SONG_CAST_DELAY = 0.4;
const float BURST_RECOVER_RATE = 1.2; // 3.0 // 0.75
const float BURST_USE_RATE = 1.5; //0.9 //1.5;
const float BURST_DELAY = 0.1;
const float BURST_ACCEL = 4000; //2000 // 1000
// Minimum time between two splash effects (seconds).
@ -265,13 +264,6 @@ void Avatar::postInit()
void Avatar::onAnimationKeyPassed(int key)
{
if (swimming && !isRolling() && !bursting && _isUnderWater)
{
if (key == 0 || key == 2)
{
//core->sound->playSfx("SwimKick", 255, 0, 1000+getMaxSpeed()/10.0f);
}
}
Entity::onAnimationKeyPassed(key);
}
@ -1637,7 +1629,7 @@ void Avatar::changeForm(FormType form, bool effects, bool onInit, FormType lastF
break;
}
elementEffectMult = 1;
state.abilityDelay = 0;
formAbilityDelay = 0;
dsq->continuity.form = form;
@ -1739,6 +1731,7 @@ void Avatar::changeForm(FormType form, bool effects, bool onInit, FormType lastF
collideRadius = COLLIDE_RADIUS_FISH;
setCanLockToWall(false);
setCollisionAvoidanceData(COLLIDE_RANGE_FISH, COLLIDE_MOD_FISH);
elementEffectMult = 0.4f;
}
break;
case FORM_SUN:
@ -1788,6 +1781,7 @@ void Avatar::changeForm(FormType form, bool effects, bool onInit, FormType lastF
setCanLockToWall(false);
setCanBurst(false);
setDamageTarget(DT_WALLHURT, false);
elementEffectMult = 0;
if (onInit)
{
@ -3320,6 +3314,11 @@ void Avatar::startCharge(int ability)
void Avatar::setBlockSinging(bool v)
{
blockSinging = v;
if (v)
{
currentSong.notes.clear(); // abort singing without triggering a song, if queued
closeSingingInterface();
}
}
bool Avatar::canSetBoneLock()
@ -3491,31 +3490,15 @@ void Avatar::lockToWall()
if (dsq->game->isPaused()) return;
TileVector t(position);
TileVector myTile = t;
// 3 + 4
// 4 + 5
Vector m = vel;
m.setLength2D(3);
t.x += int(m.x);
t.y += int(m.y);
m.setLength2D(2);
TileVector tback = myTile;
tback.x += int(m.x);
tback.y += int(m.y);
Vector add = m;
add.setLength2D(1);
TileVector tnext = myTile;
tnext.x += int(add.x);
tnext.y += int(add.y);
bool good = true;
if (!dsq->game->isObstructed(t))
{
int tried = 0;
//tryAgain:
while(1)
do
{
TileVector test;
@ -3567,46 +3550,23 @@ void Avatar::lockToWall()
t = test;
break;
}
tried++;
//if (tried >= 2)
if (true)
{
good = false;
break;
}
else
{
//debugLog("trying other");
//t = myTile;
//goto tryAgain;
}
}
while(0);
}
if (dsq->game->getGrid(t)==OT_HURT && isDamageTarget(DT_WALLHURT))
{
good = false;
}
if (good /*&& dsq->game->)isObstructed(t2, OT_BLACK)*/ /*&& diff.getSquaredLength2D() > sqr(40)*/)
if (good)
{
wallNormal = dsq->game->getWallNormal(position);
bool outOfWaterHit = (!_isUnderWater && !(wallNormal.y < -0.1f));
if (wallNormal.isZero() ) //|| outOfWaterHit
if (wallNormal.isZero() )
{
debugLog("COULD NOT FIND NORMAL, GOING TO BOUNCE");
if (outOfWaterHit)
{
/*
Animation *anim = skeletalSprite.getCurrentAnimation();
if (anim && anim->name == "hitGround")
{
}
else
{
skeletalSprite.animate("hitGround");
}
*/
}
return;
}
else
@ -3643,16 +3603,6 @@ void Avatar::lockToWall()
offset.stop();
Vector goIn;
TileVector uset;
if (!dsq->game->isObstructed(tnext))
{
uset = tnext;
}
else
uset = tback;
int tileType = dsq->game->getGrid(t);
Vector offdiff = t.worldVector() - position;
if (!offdiff.isZero())
@ -3943,12 +3893,9 @@ Avatar::Avatar() : Entity(), ActionMapper()
bursting = false;
burst = 1;
burstDelay = 0;
ignoreInputDelay = 0;
splashDelay = 0;
avatar = this;
particleDelay = 0;
swimming = false;
debugLog("Avatar 3");
@ -4131,6 +4078,7 @@ Avatar::Avatar() : Entity(), ActionMapper()
_seeMapMode = SEE_MAP_DEFAULT;
blockBackFlip = false;
elementEffectMult = 1;
}
void Avatar::revert()
@ -4522,7 +4470,7 @@ void Avatar::action(int id, int state)
if (id == ACTION_PRIMARY && state)// !state
{
if (isMiniMapCursorOkay())
if (dsq->isMiniMapCursorOkay())
{
if (this->state.lockedToWall)
{
@ -5274,7 +5222,7 @@ void Avatar::updateWallJump(float dt)
void Avatar::updateRoll(float dt)
{
if (!inputEnabled || dsq->game->isWorldPaused())
if (!inputEnabled || dsq->game->isWorldPaused() || riding)
{
if (rolling)
stopRoll();
@ -5659,11 +5607,6 @@ Vector Avatar::getHeadPosition()
bool lastCursorKeyboard = false;
bool Avatar::isMiniMapCursorOkay()
{
return ((dsq->inputMode != INPUT_MOUSE) || (!dsq->game->miniMapRender || !dsq->game->miniMapRender->isCursorIn()));
}
void Avatar::onUpdate(float dt)
{
BBGE_PROF(Avatar_onUpdate);
@ -6479,7 +6422,7 @@ void Avatar::onUpdate(float dt)
float len = 0;
if (isMiniMapCursorOkay() && !isActing(ACTION_ROLL) &&
if (dsq->isMiniMapCursorOkay() && !isActing(ACTION_ROLL) &&
_isUnderWater && !riding && !boneLock.on &&
(movingOn || ((dsq->inputMode == INPUT_JOYSTICK || dsq->inputMode== INPUT_KEYBOARD) || (core->mouse.buttons.left || bursting))))
{
@ -6552,22 +6495,6 @@ void Avatar::onUpdate(float dt)
}
if (!rolling && !state.backFlip && !flourish)
{
bool swimOnBack = false;
if (swimOnBack)
{
if (addVec.x > 0)
{
if (isfh())
flipHorizontal();
}
if (addVec.x < 0)
{
if (!isfh())
flipHorizontal();
}
}
else
{
if (addVec.x > 0)
{
@ -6580,7 +6507,6 @@ void Avatar::onUpdate(float dt)
flipHorizontal();
}
}
}
// will not get here if not underwater
if (isLockable())
@ -7205,6 +7131,16 @@ void Avatar::onUpdate(float dt)
if(canCollideWithShots())
dsq->game->handleShotCollisions(this, (activeAura == AURA_SHIELD));
if(!core->particlesPaused && elementEffectMult > 0)
{
ElementUpdateList& elems = dsq->game->elementUpdateList;
for (ElementUpdateList::iterator it = elems.begin(); it != elems.end(); ++it)
{
(*it)->doInteraction(this, elementEffectMult, 16);
}
}
}

View file

@ -159,8 +159,6 @@ public:
bool zoomOverriden;
void clampPosition();
bool isMiniMapCursorOkay();
void splash(bool down);
InterpolatedVector myZoom;
@ -346,6 +344,7 @@ public:
int leaches;
float shieldPoints;
float elementEffectMult;
bool blockBackFlip;
@ -445,7 +444,6 @@ protected:
bool checkWarpAreas();
void toggleZoom();
float ignoreInputDelay;
float splashDelay;
//Hair *hair;
@ -453,8 +451,6 @@ protected:
void onUpdate(float dt);
void onRender();
float particleDelay;
//float rippleDelay;
Quad *glow;
bool swimming;
@ -469,8 +465,7 @@ protected:
float pushingOffWallEffect;
float lockToWallFallTimer;
Vector dodgeVec;
Vector wallPushVec, wallTurnVec;
Vector wallPushVec;

View file

@ -78,7 +78,7 @@ void BitBlotLogo::skipLogo()
void BitBlotLogo::getOut()
{
dsq->continuity.reset();
//dsq->continuity.reset();
#ifdef AQUARIA_DEMO
dsq->title();

View file

@ -29,9 +29,6 @@ CollideEntity::CollideEntity() : Entity()
this->canBeTargetedByAvatar = true;
weight = 0;
bounceAmount = 0.5f;
bounceEntityAmount = 0.5f;
doCusion = false;
friction = 0;
this->updateCull = 4000;
}
@ -115,56 +112,6 @@ void CollideEntity::updateMovement(float dt)
updateVel2(dt);
if (doCusion)
{
Vector push;
TileVector t(position+vel*dt);
if (dsq->game->isObstructed(TileVector(t.x-1, t.y)))
{
push += Vector(1.25,0);
}
if (dsq->game->isObstructed(TileVector(t.x+1, t.y)))
{
push += Vector(-1.25,0);
}
if (dsq->game->isObstructed(TileVector(t.x, t.y-1)))
{
push += Vector(0,1.25);
}
if (dsq->game->isObstructed(TileVector(t.x, t.y+1)))
{
push += Vector(0,-1.25);
}
if (dsq->game->isObstructed(TileVector(t.x-1, t.y-1)))
{
push += Vector(0.5,0.5);
}
if (dsq->game->isObstructed(TileVector(t.x-1, t.y+1)))
{
push += Vector(0.5,-0.5);
}
if (dsq->game->isObstructed(TileVector(t.x+1, t.y-1)))
{
push += Vector(-0.5,0.5);
}
if (dsq->game->isObstructed(TileVector(t.x+1, t.y+1)))
{
push += Vector(-0.5,-0.5);
}
// cushion
if (push.x != 0 || push.y != 0)
{
if (vel.getSquaredLength2D() > sqr(10))
{
push.setLength2D(100 * dt * 60);
push.z = 0;
}
vel += push;
}
}
Vector lastPosition = position;
bool underWater = isUnderWater();
@ -252,16 +199,6 @@ void CollideEntity::updateMovement(float dt)
}
}
if (collided && friction != 0 && (vel.x != 0 || vel.y != 0))
{
Vector fric = vel;
fric.setLength2D(-friction);
vel.z = 0;
vel += fric*dt;
}
//doFriction(dt);
if (!collided && weight != 0)
{
vel += Vector(0, weight*dt);

View file

@ -27,9 +27,8 @@ class CollideEntity : public Entity
{
public:
CollideEntity();
float bounceAmount, bounceEntityAmount;
float bounceAmount;
float weight;
Vector collideOffset;
void updateMovement(float dt);
void entityDied(Entity *e);
protected:
@ -37,8 +36,6 @@ protected:
void onUpdateFrozen(float dt);
virtual void onBounce() {}
float friction;
bool doCusion;
void bounce(float ba);
};

View file

@ -359,7 +359,7 @@ ElementEffect DSQ::getElementEffectByIndex(int e)
return empty;
}
/*
Element *DSQ::getSolidElementNear(Vector pos, int rad)
{
Element *closestE = 0;
@ -376,26 +376,12 @@ Element *DSQ::getSolidElementNear(Vector pos, int rad)
}
return closestE;
}
*/
Vector DSQ::getCameraCenter()
{
return cameraPos; //+ Vector(400*(1.0f/core->globalScale.x),300*(1.0f/core->globalScale.x));
}
void DSQ::doScript(const std::string &script)
{
/*
this->script.loadScriptFile(script);
this->script.run("void main()");
*/
}
void DSQ::print(int x, int y, const std::string &text)
{
// CTextDrawer::GetSingleton().PrintText(x, y, text.c_str());
}
void DSQ::centerMessage(const std::string &text, float y, int type)
{
Vector pos(400,y);
@ -1551,7 +1537,7 @@ This build is not yet final, and as such there are a couple things lacking. They
setMousePosition(core->center);
dsq->continuity.reset();
//dsq->continuity.reset();
loadBit(LOAD_FINISHED);
@ -4557,7 +4543,9 @@ void DSQ::onUpdate(float dt)
dsq->sound->getStats(&ca, &ma);
os << " ca: " << ca << " ma: " << ma << std::endl;
os << dsq->sound->getVolumeString() << std::endl;
os << "runInBG: " << core->settings.runInBackground << " nested: " << core->getNestedMains() << std::endl;
os << core->globalResolutionScale.x << ", " << core->globalResolutionScale.y << std::endl;
os << "elemu: " << game->elementUpdateList.size() << " elemi: " << game->elementInteractionList.size() << std::endl;
os << "Lua mem: " << scriptInterface.gcGetStats() << " KB" << std::endl;
cmDebug->setText(os.str());
@ -4571,6 +4559,7 @@ void DSQ::onUpdate(float dt)
os << " | s: " << dsq->continuity.seconds;
os << " | evQ: " << core->eventQueue.getSize();
os << " | sndQ: " << core->dbg_numThreadDecoders;
os << " | dt: " << core->get_current_dt();
/*
os << " | s: " << dsq->continuity.seconds;
os << " cr: " << core->cullRadius;
@ -5110,3 +5099,9 @@ void DSQ::resetLayerPasses()
renderObjectLayers[LR_ENTITIES].startPass = -2;
renderObjectLayers[LR_ENTITIES].endPass = 5;
}
bool DSQ::isMiniMapCursorOkay()
{
return ((inputMode != INPUT_MOUSE) || (!game->miniMapRender || !game->miniMapRender->isCursorIn()));
}

View file

@ -163,7 +163,8 @@ enum AquariaActions
ACTION_TOGGLEWORLDMAPEDITOR ,
ACTION_LOOK ,
ACTION_TOGGLEHELPSCREEN
ACTION_TOGGLEHELPSCREEN,
ACTION_PLACE_AVATAR,
};
typedef std::list<Entity*> EntityList;
@ -1269,10 +1270,7 @@ public:
void setTexturePointers();
void doScript(const std::string &script);
void fade(float alpha, float time);
void print(int x, int y, const std::string &text);
void applyParallaxUserSettings();
@ -1379,7 +1377,7 @@ public:
std::string getDialogueFilename(const std::string &f);
bool isShakingCamera();
Element *getSolidElementNear(Vector pos, int rad);
//Element *getSolidElementNear(Vector pos, int rad);
std::string languagePack;
@ -1574,6 +1572,7 @@ public:
virtual void onBackgroundUpdate();
void resetLayerPasses();
bool isMiniMapCursorOkay();
protected:

View file

@ -20,48 +20,81 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "Element.h"
#include "Game.h"
#include "Avatar.h"
ElementEffectData::ElementEffectData()
: elementEffectIndex(-1)
, wavyAngleOffset(0)
, wavyMagnitude(0)
, wavyLerpIn(0)
, wavyMin(0)
, wavyMax(0)
, hitPerc(0)
, effectMult(0)
, wavyWaving(false)
, wavyFlip(false)
, touching(false)
, elementEffectType(EFX_NONE)
{
}
Element::Element() : Quad()
{
elementFlag = EF_NONE;
wavyFlip = false;
elementEffectIndex = -1;
elementActive = true;
bgLayer = 0;
wavyAngleOffset=0;
wavyMagnitude=0;
wavyLerpIn=0;
wavyWaving=false;
wavyFlip=false;
elementEffectType = 0;
wavyRadius = 0;
wavyMin = 0;
wavyMax = 0;
templateIdx = -1;
eff = NULL;
setStatic(true);
}
void Element::wavyPull(int to, int from, float dt)
void Element::ensureEffectData()
{
Vector diff = wavy[to] - wavy[from];
if (!diff.isZero())
{
diff.capLength2D(wavyMax);
if (diff.isLength2DIn(wavyMin))
{
diff.setLength2D(wavyMin);
if (!eff)
eff = new ElementEffectData;
}
wavy[to] = wavy[from] + diff;
void Element::freeEffectData()
{
if (eff)
{
delete eff;
eff = NULL;
}
}
void Element::doInteraction(Entity *ent, float mult, float touchWidth)
{
ElementEffectData *eff = this->eff;
Vector pos = position;
pos.y -= (height*scale.y)/2;
float hitPerc=0;
Vector p = ent->position;
if (p.x > position.x-touchWidth && p.x < position.x+touchWidth)
{
float h2 = (height*scale.y)/2.0f;
if (p.y < position.y+h2 && p.y > position.y-h2)
{
eff->touching = true;
eff->wavyWaving = true;
hitPerc = pos.y - p.y;
hitPerc /= float(height*scale.y);
hitPerc = (1.0f-hitPerc)-1.0f;
eff->hitPerc = hitPerc;
eff->touchVel = ent->vel;
eff->effectMult = mult;
return;
}
}
//eff->touchVel = Vector(0, 0);
//eff->hitPerc = 0;
eff->touching = false;
}
void Element::updateEffects(float dt)
{
switch (elementEffectType)
switch (eff->elementEffectType)
{
case EFX_ALPHA:
alpha.update(dt);
@ -71,118 +104,66 @@ void Element::updateEffects(float dt)
/// check player position
{
// if a big wavy doesn't work, this is probably why
//if ((position - dsq->game->avatar->position).isLength2DIn(1024))
//if ((position - ent->position).isLength2DIn(1024))
{
int touchIdx = -1;
Vector pos = position;
pos.y = position.y - (height*scale.y)/2;
ElementEffectData *eff = this->eff;
float hitPerc=0;
Vector p = dsq->game->avatar->position;// + Vector(200,0);
if (p.x > position.x-16 && p.x < position.x+16)
if (eff->touching)
{
float h2 = (height*scale.y)/2.0f;
if (p.y < position.y+h2 && p.y > position.y-h2)
{
touchIdx = 0;
hitPerc = pos.y - p.y;
hitPerc /= float(height*scale.y);
hitPerc = (1.0f-hitPerc)-1.0f;
//std::cout << "hit!\n";
/*
std::ostringstream os;
os << "hit perc: " << hitPerc;
debugLog(os.str());
*/
}
}
/*
for (int i = 0; i < wavy.size()-1; i++)
{
if (isTouchingLine(wavy[0]+pos, wavy[i+1]+pos, dsq->game->avatar->position, wavyRadius))
{
//wavy[i+1] = dsq->game->avatar->position;
touchIdx = i+1;
break;
}
}
*/
if (touchIdx != -1)
{
// start pull
wavyWaving = true;
wavyAngleOffset = 0;
float ramp = dsq->game->avatar->vel.getLength2D()/800.0f;
float ramp = eff->touchVel.getLength2D()/800.0f;
if (ramp < 0) ramp = 0;
if (ramp > 1) ramp = 1;
wavyMagnitude = 100 * ramp + 16;
eff->wavyMagnitude = 100 * ramp + 16;
if (dsq->game->avatar->vel.x < 0)
wavyMagnitude = -wavyMagnitude;
if (eff->touchVel.x < 0)
eff->wavyMagnitude = -eff->wavyMagnitude;
/*
if (hitPerc > 0.35f)
wavyMagnitude = -wavyMagnitude;
*/
eff->wavyAngleOffset = (eff->hitPerc-0.5f)*PI;
wavyAngleOffset = (hitPerc-0.5f)*PI;
wavySave = wavy;
wavyLerpIn = 0;
eff->wavySave = eff->wavy;
eff->wavyLerpIn = 0;
}
if (wavyWaving)
if (eff->wavyWaving)
{
/*
float wavyMagnitude = wavyMagnitude;
if (dsq->continuity.form == FORM_FISH)
wavyMagnitude *= 0.1f;
*/
float wavyMagMult = 1;
if (dsq->continuity.form == FORM_FISH)
wavyMagMult = 0.4;
float spd = PI*1.1f;
float magRedSpd = 48;
float lerpSpd = 5.0;
for (int i = 0; i < wavy.size(); i++)
float wavySz = float(eff->wavy.size());
for (int i = 0; i < eff->wavy.size(); i++)
{
float weight = float(i)/float(wavy.size());
if (wavyFlip)
float weight = float(i)/wavySz;
if (eff->wavyFlip)
weight = 1.0f-weight;
if (weight < 0.125f)
weight *= 0.5f;
wavy[i].x = sinf(wavyAngleOffset + (float(i)/float(wavy.size()))*PI)*float(wavyMagnitude*wavyMagMult)*weight;
if (!wavySave.empty())
eff->wavy[i].x = sinf(eff->wavyAngleOffset + (float(i)/wavySz)*PI)*float(eff->wavyMagnitude*eff->effectMult)*weight;
if (!eff->wavySave.empty())
{
if (wavyLerpIn < 1)
wavy[i].x = wavy[i].x*wavyLerpIn + (wavySave[i].x*(1.0f-wavyLerpIn));
if (eff->wavyLerpIn < 1)
eff->wavy[i].x = eff->wavy[i].x*eff->wavyLerpIn + (eff->wavySave[i].x*(1.0f-eff->wavyLerpIn));
}
}
if (wavyLerpIn < 1)
if (eff->wavyLerpIn < 1)
{
wavyLerpIn += dt*lerpSpd;
if (wavyLerpIn > 1)
wavyLerpIn = 1;
eff->wavyLerpIn += dt*lerpSpd;
if (eff->wavyLerpIn > 1)
eff->wavyLerpIn = 1;
}
wavyAngleOffset += dt*spd;
if (wavyMagnitude > 0)
eff->wavyAngleOffset += dt*spd;
if (eff->wavyMagnitude > 0)
{
wavyMagnitude -= magRedSpd*dt;
if (wavyMagnitude < 0)
wavyMagnitude = 0;
eff->wavyMagnitude -= magRedSpd*dt;
if (eff->wavyMagnitude < 0)
eff->wavyMagnitude = 0;
}
else
{
wavyMagnitude += magRedSpd*dt;
if (wavyMagnitude > 0)
wavyMagnitude = 0;
eff->wavyMagnitude += magRedSpd*dt;
if (eff->wavyMagnitude > 0)
eff->wavyMagnitude = 0;
}
//std::cout << "setting grid from wav w/ wavyWaving\n";
@ -194,24 +175,6 @@ void Element::updateEffects(float dt)
//std::cout << "not waving";
setGridFromWavy();
}
/*
for (int i = touchIdx; i < wavy.size()-1; i++)
{
wavyPull(i, i+1, dt);
}
for (int i = touchIdx; i >= 0; i--)
{
wavyPull(i, i-1, dt);
}
*/
// normal down pull
/*
for (int i = 0; i < wavy.size()-1; i++)
{
wavyPull(i, i+1, dt);
}
*/
}
}
break;
@ -224,16 +187,16 @@ void Element::update(float dt)
if (!core->particlesPaused)
{
updateLife(dt);
if (eff)
updateEffects(dt);
if (drawGrid)
updateGrid(dt);
}
// updateCullVariables();
}
Element::~Element()
{
freeEffectData();
}
void Element::destroy()
@ -243,7 +206,7 @@ void Element::destroy()
int Element::getElementEffectIndex()
{
return elementEffectIndex;
return eff ? eff->elementEffectIndex : -1;
}
void Element::setGridFromWavy()
@ -251,16 +214,18 @@ void Element::setGridFromWavy()
if (drawGrid)
{
//std::cout << "set grid from wavy (" << xDivs << ", " << yDivs << ")\n"
const float w = float(getWidth());
for (int x = 0; x < xDivs-1; x++)
{
for (int y = 0; y < yDivs; y++)
{
int wavy_y = (yDivs - y)-1;
if (wavy_y < wavy.size())
const int wavy_y = (yDivs - y)-1;
const float tmp = eff->wavy[wavy_y].x / w;
if (wavy_y < eff->wavy.size())
{
drawGrid[x][y].x = (wavy[wavy_y].x/float(getWidth()) - 0.5f);
drawGrid[x+1][y].x = (wavy[wavy_y].x/float(getWidth()) + 0.5f);
drawGrid[x][y].x = tmp - 0.5f;
drawGrid[x+1][y].x = tmp + 0.5f;
}
}
}
@ -279,9 +244,9 @@ void Element::setElementEffectByIndex(int eidx)
alpha.stop();
alpha = 1;
elementEffectIndex = eidx;
ElementEffect e = dsq->getElementEffectByIndex(eidx);
if(e.type != EFX_NONE)
ensureEffectData();
switch(e.type)
{
@ -305,37 +270,32 @@ void Element::setElementEffectByIndex(int eidx)
sprintf(buf, "setting wavy segsy: %d radius: %d min: %d max: %d", e.segsy, e.wavy_radius, e.wavy_min, e.wavy_max);
debugLog(buf);
*/
wavy.resize(e.segsy);
eff->wavy.resize(e.segsy);
float bity = float(getHeight())/float(e.segsy);
for (int i = 0; i < wavy.size(); i++)
for (int i = 0; i < eff->wavy.size(); i++)
{
wavy[i] = Vector(0, -(i*bity));
eff->wavy[i] = Vector(0, -(i*bity));
}
//wavySave = wavy;
wavyRadius = e.wavy_radius;
wavyFlip = e.wavy_flip;
wavyMin = bity;
wavyMax = bity*1.2f;
//wavyRadius = 8;
eff->wavyFlip = e.wavy_flip;
eff->wavyMin = bity;
eff->wavyMax = bity*1.2f;
createGrid(2, e.segsy);
setGridFromWavy();
//createGrid(8,8);
/*
wavyMin = e.wavy_min;
wavyMax = e.wavy_max;
*/
setStatic(false);
}
break;
default:
freeEffectData();
setStatic(true);
break;
}
elementEffectType = e.type;
if (eff)
{
eff->elementEffectIndex = eidx;
eff->elementEffectType = e.type;
}
}
void Element::render()
@ -364,32 +324,8 @@ void Element::render()
}
#endif
if (this->elementEffectType == EFX_WAVY)
{
//debugLog("rendering efx_wavy");
}
Quad::render();
/*
if (!wavy.empty())
{
glDisable(GL_BLEND);
Vector pos = position;
pos.y = position.y + (getHeight()*scale.y)/2.0f;
glBegin(GL_LINES);
for (int i = 0; i < wavy.size()-1; i++)
{
glColor4f(1, 0, 0, 1);
glVertex3f(wavy[i].x+pos.x, wavy[i].y+pos.y, 0);
glVertex3f(wavy[i+1].x+pos.x, wavy[i+1].y+pos.y, 0);
}
glEnd();
glEnable(GL_BLEND);
}
*/
renderBorder = false;
}
@ -416,19 +352,3 @@ void Element::fillGrid()
}
}
// override this functionality as needed
bool Element::canSeeAvatar(Avatar *avatar)
{
return false;
}
bool Element::isActive()
{
return true;
}
float Element::getSortDepth()
{
return Quad::getSortDepth() - bgLayer*0.01f;
}

View file

@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "../BBGE/Quad.h"
class Avatar;
class Entity;
enum ElementFlag
@ -42,50 +42,48 @@ enum ElementFlag
*/
};
struct ElementEffectData
{
ElementEffectData();
int elementEffectType;
float wavyAngleOffset, wavyMagnitude, wavyLerpIn;
float wavyMin, wavyMax;
float hitPerc, effectMult;
bool wavyWaving, wavyFlip, touching;
Vector touchVel;
std::vector<Vector> wavy, wavySave;
int elementEffectIndex; // used by editor only
};
class Element : public Quad
{
public:
Element();
~Element();
void destroy();
//void interact(Interaction::Type interactionType, Avatar *avatar);
bool canSeeAvatar(Avatar *avatar);
void update(float dt);
bool isActive();
//InteractionContainer interactions;
int templateIdx;
int bgLayer;
Element *bgLayerNext;
float getSortDepth();
void render();
//Flags elementFlags;
ElementFlag elementFlag;
void fillGrid();
bool isElementActive() { return elementActive; }
int getElementEffectIndex();
void setElementEffectByIndex(int e);
void setElementActive(bool v) { elementActive = v; }
void doInteraction(Entity *ent, float mult, float touchWidth);
protected:
void ensureEffectData();
void freeEffectData();
void setGridFromWavy();
float wavyAngleOffset, wavyMagnitude, wavyLerpIn;
bool wavyWaving, wavyFlip;
void wavyPull(int to, int from, float dt);
std::vector<Vector> wavy, wavySave;
float wavyRadius, wavyMin, wavyMax;
ElementEffectData *eff;
void updateEffects(float dt);
int elementEffectIndex, elementEffectType;
bool elementActive;
};
/*
class BoxElement : public Element
{
public:
BoxElement(int width, int height);
//bool isOnScreen();
protected:
int ww,hh;
};
*/
typedef std::vector<Element*> ElementContainer;

View file

@ -209,6 +209,7 @@ Entity::Entity()
eatType = EAT_DEFAULT;
stickToNaijasHead = false;
spiritFreeze = true;
pauseFreeze = true;
canLeaveWater = false;
targetPriority = 0;
//renderPass = RENDER_ALL;
@ -350,6 +351,11 @@ void Entity::setSpiritFreeze(bool v)
spiritFreeze = v;
}
void Entity::setPauseFreeze(bool v)
{
pauseFreeze = v;
}
void Entity::setEntityProperty(EntityProperty ep, bool value)
{
entityProperties[int(ep)] = value;
@ -1145,7 +1151,7 @@ void Entity::update(float dt)
Vector backupVel = vel;
bool doUpdate = (updateCull == -1 || (position - core->screenCenter).isLength2DIn(updateCull));
if (doUpdate && !dsq->game->isPaused())
if (doUpdate && !(pauseFreeze && dsq->game->isPaused()))
{
if (!(getEntityType() == ET_AVATAR || getEntityType() == ET_INGREDIENT))
@ -3101,7 +3107,7 @@ bool Entity::doCollisionAvoidance(float dt, int search, float mod, Vector *vp, i
return false;
}
void Entity::initHair(int numSegments, int segmentLength, int width, const std::string &tex)
void Entity::initHair(int numSegments, float segmentLength, float width, const std::string &tex)
{
if (hair)
{

View file

@ -35,13 +35,12 @@ class Path;
struct BoneLock
{
BoneLock() : entity(0), bone(0), on(false), origRot(0), offRot(0) {}
BoneLock() : entity(0), bone(0), on(false), origRot(0) {}
Entity *entity;
Bone *bone;
Vector localOffset;
bool on;
float origRot;
float offRot;
Vector wallNormal, circleOffset;
int collisionMaskIndex;
};
@ -428,6 +427,7 @@ public:
virtual void shiftWorlds(WorldType lastWorld, WorldType worldType){}
void setCanLeaveWater(bool v);
void setSpiritFreeze(bool v);
void setPauseFreeze(bool v);
void setEatType(EatType et, const std::string &file="");
EatType getEatType() { return eatType; }
void setRiding(Entity *e);
@ -486,7 +486,7 @@ public:
virtual bool canSetBoneLock();
void initHair(int numSegments, int segmentLength, int width, const std::string &tex);
void initHair(int numSegments, float segmentLength, float width, const std::string &tex);
void updateHair(float dt);
void setHairHeadPosition(const Vector &pos);
void exertHairForce(const Vector &force, float dt);
@ -495,6 +495,9 @@ public:
void updateSoundPosition();
Vector getPushVec() const { return pushVec; }
float getPushDamage() const { return pushDamage; }
protected:
bool calledEntityDied;
Path *waterBubble;
@ -535,6 +538,7 @@ protected:
bool stickToNaijasHead;
bool spiritFreeze;
bool pauseFreeze;
bool canLeaveWater;
bool wasUnderWater;

View file

@ -3327,7 +3327,7 @@ void Game::createInGameMenu()
resBox->position = Vector(196, 285);
for (i = 0; i < core->screenModes.size(); i++)
{
ostringstream os;
std::ostringstream os;
os << core->screenModes[i].x << "x" << core->screenModes[i].y;
resBox->addItem(os.str());
if (core->screenModes[i].x == dsq->user.video.resx && core->screenModes[i].y == dsq->user.video.resy)
@ -5789,6 +5789,7 @@ void Game::rebuildElementUpdateList()
dsq->getRenderObjectLayer(i)->update = false;
elementUpdateList.clear();
elementInteractionList.clear();
for (int i = 0; i < dsq->getNumElements(); i++)
//for (int i = LR_ELEMENTS1; i <= LR_ELEMENTS8; i++)
{
@ -5800,6 +5801,11 @@ void Game::rebuildElementUpdateList()
{
elementUpdateList.push_back(e);
}
ElementEffect ee = dsq->getElementEffectByIndex(e->getElementEffectIndex());
if(ee.type == EFX_WAVY)
{
elementInteractionList.push_back(e);
}
}
}
}
@ -6686,7 +6692,10 @@ void Game::applyState()
}
if(cookingScript)
{
dsq->scriptInterface.closeScript(cookingScript);
cookingScript = NULL;
}
if (dsq->mod.isActive())
cookingScript = dsq->scriptInterface.openScript(dsq->mod.getPath() + "scripts/cooking.lua", true);
@ -6843,6 +6852,7 @@ void Game::bindInput()
dsq->user.control.actionSet.importAction(this, "PrimaryAction", ACTION_PRIMARY);
dsq->user.control.actionSet.importAction(this, "SecondaryAction", ACTION_SECONDARY);
dsq->user.control.actionSet.importAction(this, "Escape", ACTION_ESC);
@ -6853,10 +6863,8 @@ void Game::bindInput()
// used for scrolling help text
dsq->user.control.actionSet.importAction(this, "SwimUp", ACTION_SWIMUP);
dsq->user.control.actionSet.importAction(this, "SwimDown", ACTION_SWIMDOWN);
/*
dsq->user.control.actionSet.importAction(this, "SwimLeft", ACTION_SWIMLEFT);
dsq->user.control.actionSet.importAction(this, "SwimRight", ACTION_SWIMRIGHT);
*/
dsq->user.control.actionSet.importAction(this, "PrevPage", ACTION_PREVPAGE);
@ -6908,6 +6916,8 @@ void Game::bindInput()
dsq->user.control.actionSet.importAction(this, "Revert", ACTION_REVERT);
dsq->user.control.actionSet.importAction(this, "Look", ACTION_LOOK);
dsq->user.control.actionSet.importAction(this, "Roll", ACTION_ROLL);
if (avatar)
avatar->bindInput();

View file

@ -341,12 +341,6 @@ enum EditorStates
ES_MAX
};
enum SelectionType
{
ST_SINGLE =0,
ST_MULTIPLE ,
ST_MAX
};
#endif
class EntityClass
@ -444,9 +438,6 @@ public:
EditTypes editType;
EditorStates state;
Quad *target;
Element *getElementAtCursor();
Entity *getEntityAtCursor();
@ -459,7 +450,6 @@ public:
Element *editingElement;
Entity *editingEntity;
Path *editingPath;
SelectionType selectionType;
void toggleWarpAreaRender();
int selectedIdx;
@ -521,19 +511,15 @@ protected:
void editModeElements();
void editModeEntities();
void editModePaths();
int selectedType, possibleSelectedType;
void deleteSelected();
void cloneSelectedElement();
void cloneSelectedElementInput();
void enterScaleState();
void enterRotateState();
void enterMoveState();
Vector oldPosition, oldRotation, oldScale, cursorOffset;
RenderObject *getSelectedRenderObject();
Entity *movingEntity;
void updateDrawingWarpArea(char c, int k);
char drawingWarpArea;
@ -582,7 +568,7 @@ protected:
typedef std::vector<Quad*> QuadList;
typedef std::vector<QuadList> QuadArray;
typedef std::list<Element*> ElementUpdateList;
typedef std::vector<Element*> ElementUpdateList;
// Note: although this is a bitmask, only one of these values may be set at a time!
enum ObsType
@ -975,6 +961,7 @@ public:
GridRender *gridRender, *gridRender2, *gridRender3, *edgeRender, *gridRenderEnt;
void toggleGridRender();
ElementUpdateList elementUpdateList;
ElementUpdateList elementInteractionList;
bool invinciblity;

View file

@ -25,13 +25,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// nodes = 40
// segmentLength = 3
Hair::Hair(int nodes, int segmentLength, int hairWidth) : RenderObject()
Hair::Hair(int nodes, float segmentLength, float hairWidth) : RenderObject()
{
this->segmentLength = segmentLength;
this->hairWidth = hairWidth;
waveTimer = 0;
waveAmount = 5;
//hairWidth = 10;
cull = false;
@ -46,7 +43,6 @@ Hair::Hair(int nodes, int segmentLength, int hairWidth) : RenderObject()
hairNodes[i].percent = 1.0f-perc;
hairNodes[i].position = hairNodes[i].originalPosition = hairNodes[i].defaultPosition = Vector(0, i*segmentLength, 0);
}
hairTimer = 0;
}
void Hair::exertWave(float dt)
@ -196,15 +192,6 @@ void Hair::onRender()
#endif
}
void Hair::updateWaveTimer(float dt)
{
waveTimer += dt;
for (int i = 1; i < hairNodes.size(); i++)
{
hairNodes[i].defaultPosition = hairNodes[i].originalPosition + Vector(cosf(waveTimer+i)*waveAmount*hairNodes[i].percent, 0, 0);
}
}
void Hair::onUpdate(float dt)
{
RenderObject::onUpdate(dt);

View file

@ -38,13 +38,13 @@ struct HairNode
class Hair : public RenderObject
{
public:
Hair(int nodes=40, int segmentLength=3, int width=18);
Hair(int nodes=40, float segmentLength=3, float width=18);
void exertForce(const Vector &force, float dt, int usePerc=0);
void updatePositions();
void returnToDefaultPositions(float dt);
int hairWidth;
float hairWidth;
std::vector<HairNode> hairNodes;
@ -54,10 +54,6 @@ public:
void exertGravityWave(float dt);
HairNode *getHairNode(int idx);
protected:
float hairTimer;
void updateWaveTimer(float dt);
int waveAmount;
float waveTimer;
float segmentLength;
void onUpdate(float dt);
void onRender();

View file

@ -247,17 +247,13 @@ void Mod::applyStart()
if (!dsq->runScript(scriptPath, "init"))
{
debugLog("MOD: runscript failed");
dsq->continuity.reset();
setActive(false);
dsq->continuity.reset();
dsq->title();
}
if (isActive() && dsq->game->sceneToLoad.empty())
{
debugLog("MOD: no scene loaded in mod-init");
dsq->continuity.reset();
setActive(false);
dsq->continuity.reset();
dsq->title();
}
else if (isActive())

View file

@ -54,6 +54,7 @@ Path::Path()
spawnEnemyDistance = 0;
warpType = 0;
spiritFreeze = true;
pauseFreeze = true;
}
void Path::clampPosition(Vector *pos, float radius)
@ -479,7 +480,7 @@ void Path::init()
void Path::update(float dt)
{
if (!dsq->game->isPaused() && !(spiritFreeze && dsq->game->isWorldPaused()))
if (!(pauseFreeze && dsq->game->isPaused()) && !(spiritFreeze && dsq->game->isWorldPaused()))
{
if (addEmitter && emitter)
{

View file

@ -144,6 +144,7 @@ public:
bool effectOn;
bool spiritFreeze;
bool pauseFreeze;
PathShape pathShape;

View file

@ -408,9 +408,9 @@ void PathFinding::molestPath(VectorPath &path)
}
}
}
std::ostringstream os;
/*std::ostringstream os;
os << "pushing node [" << i << "] out by (" << n.x << ", " << n.y << ") - dist: " << dist << " maxDist: " << maxDist;
debugLog(os.str());
debugLog(os.str());*/
//path.getPathNode(i)->value += n;
normals[i] = n;
}
@ -453,9 +453,9 @@ void PathFinding::molestPath(VectorPath &path)
//bowl_loop:
sz=path.getNumPathNodes();
std::ostringstream os;
/*std::ostringstream os;
os << "kill bowls # " << runs;
debugLog(os.str());
debugLog(os.str());*/
for (i = start; i < sz-1; i++)
{
@ -502,9 +502,9 @@ void PathFinding::molestPath(VectorPath &path)
*/
{
path.removeNodes(i+1, lastSuccessNode-1);
std::ostringstream os;
/*std::ostringstream os;
os << "killing bowl: " << i+1 << " - " << lastSuccessNode-1;
debugLog(os.str());
debugLog(os.str());*/
//start = lastSuccessNode - (lastSuccessNode-i);
//start = i+1;
//i = i+1;
@ -516,7 +516,7 @@ void PathFinding::molestPath(VectorPath &path)
}
sz = path.getNumPathNodes();
}
debugLog("kill bowls done");
//debugLog("kill bowls done");
sz=path.getNumPathNodes();
// remove last node

View file

@ -26,8 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "TileVector.h"
#include <assert.h>
using namespace std;
/*
class AStarNode
{

View file

@ -574,20 +574,12 @@ void SceneEditor::init()
selectedElements.clear();
autoSaveTimer = 0;
skinMinX = skinMinY = skinMaxX = skinMaxY = -1;
selectionType = ST_SINGLE;
editingElement = 0;
editingEntity = 0;
pathRender = new PathRender();
core->getTopStateData()->addRenderObject(pathRender, LR_DEBUG_TEXT);
pathRender->alpha = 0;
selectedType = -1;
possibleSelectedType = -1;
target = new Quad;
//target->setTexture("target");
core->getTopStateData()->addRenderObject(target, LR_HUD);
target->alpha = 0;
editType = ET_ELEMENTS;
state = ES_SELECTING;
drawingWarpArea = 'N';
@ -1026,7 +1018,6 @@ void SceneEditor::moveToBack()
void SceneEditor::editModeElements()
{
selectedIdx = -1;
target->alpha.interpolateTo(0, 0.5);
editType = ET_ELEMENTS;
if (curElement < dsq->game->elementTemplates.size())
{
@ -1035,6 +1026,8 @@ void SceneEditor::editModeElements()
}
placer->alpha = 0.5;
pathRender->alpha = 0;
editingEntity = NULL;
editingPath = NULL;
}
void SceneEditor::editModeEntities()
@ -1048,15 +1041,20 @@ void SceneEditor::editModeEntities()
placer->setTexture(selectedEntity.prevGfx);
placer->alpha = 0.5;
pathRender->alpha = 0;
selectedElements.clear();
editingElement = NULL;
editingPath = NULL;
}
void SceneEditor::editModePaths()
{
selectedIdx = -1;
target->alpha.interpolateTo(0, 0.5);
editType = ET_PATHS;
placer->alpha = 0;
pathRender->alpha = 0.5;
selectedElements.clear();
editingElement = NULL;
editingEntity = NULL;
}
Element *SceneEditor::getElementAtCursor()
@ -1128,23 +1126,6 @@ void SceneEditor::deleteSelected()
editingElement = 0;
dsq->game->reconstructGrid();
}
/*
RenderObject *r = getSelectedRenderObject();
if (r)
{
if (dynamic_cast<Element*>(r))
{
deleteSelectedElement();
}
Entity *ent = 0;
if (ent=dynamic_cast<Entity*>(r))
{
dsq->game->removeEntity(ent);
//removeEntity();
}
selectedIdx = -1;
}
*/
}
else if (editType == ET_ENTITIES)
{
@ -1218,23 +1199,6 @@ void SceneEditor::updateSaveFileEnemyPosition(Entity *ent)
}
RenderObject *SceneEditor::getSelectedRenderObject()
{
if (editType == ET_ELEMENTS)
{
if (selectedIdx > -1)
{
if (selectedType == 0)
return dsq->getElement(selectedIdx);
/*
else if (selectedType == 1)
return dsq->entities[selectedIdx];
*/
}
}
return 0;
}
void SceneEditor::checkForRebuild()
{
if (editType == ET_ELEMENTS && state != ES_SELECTING && !selectedElements.empty())
@ -1276,14 +1240,6 @@ void SceneEditor::exitMoveState()
void SceneEditor::enterMoveState()
{
/*
if (editType == ET_ELEMENTS && state == ES_SELECTING && selectedIdx > -1)
{
state = ES_MOVING;
oldPosition = getSelectedRenderObject()->position;
cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
}
*/
if (state != ES_SELECTING) return;
state = ES_MOVING;
if (editType == ET_ELEMENTS)
@ -1324,16 +1280,6 @@ void SceneEditor::enterMoveState()
void SceneEditor::enterRotateState()
{
/*
if (editType == ET_ELEMENTS && state == ES_SELECTING && selectedIdx > -1)
{
state = ES_ROTATING;
oldRotation = getSelectedRenderObject()->rotation;
//cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
//cursorOffset = Vector(0,0);
cursorOffset = dsq->getGameCursorPosition();
}
*/
if (state != ES_SELECTING) return;
if (editType == ET_ENTITIES)
{
@ -1365,8 +1311,6 @@ void SceneEditor::enterRotateState()
{
state = ES_ROTATING;
oldRotation = editingElement->rotation;
//cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
//cursorOffset = Vector(0,0);
cursorOffset = dsq->getGameCursorPosition();
}
}
@ -1374,15 +1318,6 @@ void SceneEditor::enterRotateState()
void SceneEditor::enterScaleState()
{
/*
if (editType == ET_ELEMENTS && state == ES_SELECTING && selectedIdx > -1)
{
state = ES_SCALING;
oldScale = getSelectedRenderObject()->scale;
//cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
cursorOffset = dsq->getGameCursorPosition();
}
*/
if (state != ES_SELECTING) return;
if (editType == ET_ELEMENTS)
{
@ -1523,41 +1458,11 @@ void SceneEditor::mouseButtonRightUp()
//dsq->game->reconstructGrid();
}
/*
void SceneEditor::toggleElementFlag1()
{
if (editingElement)
{
editingElement->setFlag("");
}
}
void SceneEditor::toggleElementFlag2()
{
}
void SceneEditor::toggleElementFlag3()
{
}
void SceneEditor::toggleElementFlag4()
{
}
void SceneEditor::toggleElementFlag5()
{
}
*/
void SceneEditor::toggleElementSolid()
{
if (editingElement)
{
/*
TileVector t(editingElement->position);
editingElement->position = t.worldVector();
*/
switch(editingElement->elementFlag)
{
default:
@ -1623,35 +1528,6 @@ void SceneEditor::mouseButtonLeft()
enterMoveState();
}
}
/*
if (!selectedElements.empty())
{
enterMoveState();
}
*/
/*
if (state == ES_MOVING || state == ES_ROTATING || state == ES_SCALING)
{
if (selectedIdx != -1)
{
if (selectedType == 1)
{
RenderObject *r = getSelectedRenderObject();
Entity *e = dynamic_cast<Entity*>(r);
if (e)
{
updateSaveFileEnemyPosition(e);
}
}
}
state = ES_SELECTING;
//selectedIdx = -1;
}
else if (state == ES_SELECTING)
{
placeElement();
}
*/
}
else if (editType == ET_ENTITIES)
{
@ -1685,29 +1561,6 @@ void SceneEditor::mouseButtonLeft()
}
}
}
/*
else if (selectedIdx != -1)
{
if (selectedIdx >= 0 && selectedIdx < dsq->game->getNumPaths())
{
Path *p = dsq->game->getPath(selectedIdx);
PathNode n;
n.position = dsq->getGameCursorPosition();
p->nodes.push_back(n);
}
}
else if (selectedIdx != -1)
{
if (selectedIdx >= 0 && selectedIdx < dsq->game->getNumPaths())
{
Path *p = dsq->game->getPath(selectedIdx);
p->nodes[selectedNode] =
PathNode n;
n.position = dsq->getGameCursorPosition();
p->nodes.push_back(n);
}
}
*/
}
}
@ -1746,27 +1599,6 @@ void SceneEditor::mouseButtonRight()
else
enterRotateState();
}
/*
switch(state)
{
case ES_SELECTING:
selectedType = possibleSelectedType;
selectedIdx = possibleSelectedIdx;
break;
case ES_MOVING:
getSelectedRenderObject()->position = oldPosition;
state = ES_SELECTING;
break;
case ES_ROTATING:
getSelectedRenderObject()->rotation = oldRotation;
state = ES_SELECTING;
break;
case ES_SCALING:
getSelectedRenderObject()->scale = oldScale;
state = ES_SELECTING;
break;
}
*/
}
if (editType == ET_ELEMENTS && state == ES_MOVING)
{
@ -1875,11 +1707,6 @@ void SceneEditor::skinLevel(pngRawInfo *png, int minX, int minY, int maxX, int m
{
e->safeKill();
deleteElements.push_back(e);
/*
e->setLife(0.1);
e->setDecayRate(1);
deleteElements.push_back(e);
*/
}
}
for (i = 0; i < deleteElements.size(); i++)
@ -2260,14 +2087,6 @@ void SceneEditor::generateLevel()
}
dsq->game->addObsRow(rows[i].x1/TILE_SIZE, rows[i].y/TILE_SIZE, w/TILE_SIZE);
/*
BoxElement *box = new BoxElement(w,h);
box->position = Vector(rows[i].x1 + int(w/2), useY);
box->position.z = boxElementZ;
dsq->game->addRenderObject(box, BLACKGROUND);
dsq->elements.push_back(box);
*/
}
dsq->game->reconstructGrid(true);
@ -2338,6 +2157,7 @@ void SceneEditor::removeEntity()
void SceneEditor::placeAvatar()
{
dsq->game->avatar->position = dsq->getGameCursorPosition();
dsq->game->action(ACTION_PLACE_AVATAR, 0);
}
void SceneEditor::scaleElementUp()
@ -2357,6 +2177,9 @@ void SceneEditor::scaleElement1()
void SceneEditor::flipElementHorz()
{
if (editType != ET_ELEMENTS)
return;
if (editingElement)
editingElement->flipHorizontal();
else
@ -2365,6 +2188,9 @@ void SceneEditor::flipElementHorz()
void SceneEditor::flipElementVert()
{
if (editType != ET_ELEMENTS)
return;
if (editingElement)
editingElement->flipVertical();
else
@ -2686,8 +2512,6 @@ void prevEntityPage()
createEntityPage();
}
//page = game->entityGroups.begin();
void SceneEditor::selectEntityFromGroups()
{
createEntityPage();
@ -2696,24 +2520,11 @@ void SceneEditor::selectEntityFromGroups()
se_changedEntityType = false;
editType = ET_SELECTENTITY;
//bool done = false;
//bool mbrd = false;
bool mbld = false;
bool ld = false, rd = false;
ld = core->getKeyState(KEY_E);
while (!se_changedEntityType)
{
/*
if (core->mouse.buttons.right && !mbrd)
mbrd = true;
else if (!core->mouse.buttons.right && mbrd)
{
mbrd = false;
nextEntityPage();
}
*/
if (core->mouse.buttons.left && !mbld)
mbld = true;
else if (!core->mouse.buttons.left && mbld)
@ -2830,26 +2641,7 @@ void SceneEditor::nextElement()
return;
}
if (editType == ET_ENTITIES)
{
/*
if (editingEntity)
{
// swap entity type up (somehow)
}
else
{
curEntity++;
if (curEntity >= dsq->game->entityTypeList.size())
curEntity = 0;
updateEntityPlacer();
}
*/
}
else if (editType == ET_ELEMENTS)
if (editType == ET_ELEMENTS)
{
if (dsq->game->elementTemplates.empty()) return;
if (core->getCtrlState())
@ -2887,7 +2679,6 @@ void SceneEditor::nextElement()
if (dsq->game->elementTemplates[curElement].idx < 1024)
{
//int idx = dsq->game->elementTemplates[curElement].idx;
placer->setTexture(dsq->game->elementTemplates[curElement].gfx);
}
else
@ -2911,28 +2702,8 @@ void SceneEditor::prevElement()
return;
}
}
if (editType == ET_ENTITIES)
{
/*
if (editingEntity)
{
// swap entity type up (somehow)
}
else
{
curEntity--;
if (curEntity < 0)
curEntity = dsq->game->entityTypeList.size()-1;
updateEntityPlacer();
//dsq->game->entityTypeList
}
*/
}
else if (editType == ET_ELEMENTS)
if (editType == ET_ELEMENTS)
{
if (dsq->game->elementTemplates.empty()) return;
if (!selectedElements.empty())
@ -2966,7 +2737,6 @@ void SceneEditor::doPrevElement()
if (dsq->game->elementTemplates[curElement].idx < 1024)
{
//int idx = dsq->game->elementTemplates[curElement].idx;
placer->setTexture(dsq->game->elementTemplates[curElement].gfx);
}
else
@ -2996,29 +2766,6 @@ void SceneEditor::moveLayer()
}
}
}
/*
int realLayer1 = LR_ELEMENTS1 + fromLayer, realLayer2 = LR_ELEMENTS1 + toLayer;
std::vector<RenderObject*> move;
for (int i = 0; i < dsq->renderObjectLayers[realLayer1].renderObjects.size(); i++)
{
RenderObject *r = dsq->renderObjectLayers[realLayer1].renderObjects[i];
if (r)
{
move.push_back(r);
core->removeRenderObject(r, Core::DO_NOT_DESTROY_RENDER_OBJECT);
//dsq->renderObjectLayers[realLayer1].renderObjects[i] = 0;
}
}
for (int i = 0; i < move.size(); i++)
{
RenderObject *r = move[i];
if (r)
{
r->layer = realLayer2;
dsq->addRenderObject(r, realLayer2);
}
}
*/
}
}
@ -3069,8 +2816,6 @@ void SceneEditor::placeElement()
{
if (!core->getShiftState() && !core->getKeyState(KEY_LALT) && !drawingBox)
{
//errorLog("placeElement");
dsq->game->createElement(dsq->game->elementTemplates[curElement].idx, placer->position, bgLayer, placer);
updateText();
dsq->game->reconstructGrid();
@ -3103,29 +2848,10 @@ void SceneEditor::placeElement()
{
p->addNode(selectedNode);
}
/*
if (selectedIdx >= 0 && selectedIdx < dsq->game->getNumPaths())
{
Path *p = dsq->game->getPath(selectedIdx);
PathNode n;
n.position = dsq->getGameCursorPosition();
p->nodes.push_back(n);
}
*/
}
}
}
void SceneEditor::cloneSelectedElementInput()
{
/*
if (core->getShiftState())
{
cloneSelectedElement();
}
*/
}
void SceneEditor::cloneSelectedElement()
{
if (editType == ET_ELEMENTS)
@ -3179,15 +2905,6 @@ void SceneEditor::cloneSelectedElement()
newp->init();
}
}
/*
if (selectedIdx > -1)
{
Element *e1 = dsq->elements[selectedIdx];
Element *e = dsq->game->createElement(e1->templateIdx, placer->position, e1->layer-LR_ELEMENTS1, getSelectedRenderObject());
selectedIdx = dsq->elements.size()-1;
}
*/
}
void SceneEditor::shutdown()
@ -3264,7 +2981,6 @@ void SceneEditor::toggle(bool on)
text->alpha.interpolateTo(0, 0.2);
placer->alpha.interpolateTo(0, 0.2);
//core->flags.unset(CF_CLEARBUFFERS);
target->alpha = 0;
dsq->darkLayer.toggle(true);
dsq->game->rebuildElementUpdateList();
@ -3399,14 +3115,6 @@ void SceneEditor::endDrawingWarpArea(char c)
a.sceneName = dsq->getUserInputString("Enter map to warp to");
a.spawnOffset = dsq->getUserInputDirection("Enter warp direction");
dsq->game->warpAreas.push_back(a);
/*
BoxElement *boxElement = new BoxElement(boxPromo->width.getValue(), boxPromo->height.getValue());
boxElement->position = boxPromo->position;
boxElement->position.z = boxElementZ;
dsq->game->addRenderObject(boxElement, BLACKGROUND);
dsq->elements.push_back(boxElement);
dsq->game->reconstructGrid();
*/
}
}
}
@ -3481,9 +3189,6 @@ void SceneEditor::update(float dt)
Vector p = Vector(cursorTile.x*TILE_SIZE+TILE_SIZE/2, cursorTile.y*TILE_SIZE+TILE_SIZE/2);
placer->position = p;
//selectedIdx = idx;
int camSpeed = 500/zoom.x;
if (core->getShiftState())
camSpeed = 5000/zoom.x;
@ -3532,19 +3237,6 @@ void SceneEditor::update(float dt)
dsq->cameraPos.y += mouseY/oldZoom.y - mouseY/zoom.y;
}
/*
for (int i = 0; i < dsq->elements.size(); i++)
{
//dsq->elements[i]->flags.unset(RO_RENDERBORDERS);
dsq->elements[i]->renderBorders = false;
}
RenderObject *r;
if (r = getSelectedRenderObject())
{
//r->flags.set(RO_RENDERBORDERS);
r->renderBorders = true;
}
*/
if (this->editType == ET_PATHS)
{
switch(state)
@ -3572,11 +3264,12 @@ void SceneEditor::update(float dt)
}
break;
case ES_SCALING:
{
if (editingPath)
{
float factor = 1;
Vector add = Vector((dsq->getGameCursorPosition().x - cursorOffset.x)*factor,
(dsq->getGameCursorPosition().y - cursorOffset.y)*factor);
//editingElement->scale=oldScale + add;
Vector sz = oldScale + add;
if (sz.x < 32)
sz.x = 32;
@ -3587,8 +3280,10 @@ void SceneEditor::update(float dt)
editingPath->rect.y1 = -sz.y/2;
editingPath->rect.y2 = sz.y/2;
}
}
break;
case ES_MOVING:
if (selectedIdx >= 0)
dsq->game->getPath(selectedIdx)->nodes[selectedNode].position = dsq->getGameCursorPosition() + cursorOffset;
break;
}
@ -3598,16 +3293,12 @@ void SceneEditor::update(float dt)
switch(state)
{
case ES_MOVING:
if (editingEntity)
editingEntity->position = dsq->getGameCursorPosition() + cursorOffset;
/*
if (core->getShiftState())
{
TileVector t(getSelectedRenderObject()->position);
getSelectedRenderObject()->position = t.worldVector();
}
*/
break;
case ES_ROTATING:
{
if (editingEntity)
{
float add = (dsq->getGameCursorPosition().x - cursorOffset.x)/2.4f;
if (core->getCtrlState())
@ -3623,6 +3314,7 @@ void SceneEditor::update(float dt)
}
}
}
}
else if (editType == ET_ELEMENTS)
{
switch(state)
@ -3639,37 +3331,12 @@ void SceneEditor::update(float dt)
{
closest = len;
idx = i;
possibleSelectedType = 0;
}
}
/*
FOR_ENTITIES(i)
{
Entity *e = *i;
Vector dist = e->position - dsq->getGameCursorPosition();
int len = dist.getSquaredLength2D();
if ((len < closest || closest == -1))
{
closest = len;
idx = i;
possibleSelectedType = 1;
}
}
possibleSelectedIdx = idx;
*/
}
break;
case ES_MOVING:
updateSelectedElementPosition(dsq->getGameCursorPosition() - cursorOffset);
/*
if (core->getShiftState())
{
TileVector t(getSelectedRenderObject()->position);
getSelectedRenderObject()->position = t.worldVector();
}
*/
break;
case ES_ROTATING:
{
@ -3807,20 +3474,6 @@ void SceneEditor::update(float dt)
break;
}
}
RenderObject *r = getSelectedRenderObject();
if (r)
{
target->position = r->position;
target->alpha = 1;
}
else
target->alpha = 0;
/*
if (movingEntity)
{
movingEntity->position = dsq->getGameCursorPosition();
}
*/
}
}
@ -3835,16 +3488,6 @@ void SceneEditor::nextEntityType()
exitMoveState();
}
}
else if (editType == ET_ENTITIES)
{
/*
selectedEntityType++;
if (selectedEntityType>=dsq->game->entityTypeList.size())
{
selectedEntityType = 0;
}
*/
}
else if (editType == ET_SELECTENTITY)
{
nextEntityPage();
@ -3862,16 +3505,6 @@ void SceneEditor::prevEntityType()
exitMoveState();
}
}
else if (editType == ET_ENTITIES)
{
/*
selectedEntityType --;
if (selectedEntityType < 0)
{
selectedEntityType = dsq->game->entityTypeList.size()-1;
}
*/
}
else if (editType == ET_SELECTENTITY)
{
prevEntityPage();

File diff suppressed because it is too large Load diff

View file

@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define SCRIPTINTERFACE_H
#include "../BBGE/Base.h"
#include "../BBGE/MemoryAllocatorSmallBlock.h"
struct lua_State;
@ -105,8 +106,10 @@ protected:
void destroyLuaVM(lua_State *state);
lua_State *createLuaThread(const std::string &file);
int destroyLuaThread(const std::string &file, lua_State *thread);
static void *the_alloc(void *ud, void *ptr, size_t osize, size_t nsize);
lua_State *baseState;
SmallBlockAllocator _sballoc;
};
#endif

View file

@ -38,7 +38,6 @@ ScriptedEntity::ScriptedEntity(const std::string &scriptName, Vector position, E
becomeSolidDelay = false;
strandSpacing = 10;
animKeyFunc = true;
preUpdateFunc = true;
//runningActivation = false;
setEntityType(et);
@ -120,16 +119,8 @@ void ScriptedEntity::init()
if (!script->call("init", this))
luaDebugMsg("init", script->getLastError());
}
//update(0);
Entity::init();
/*
if (script)
{
bool fail=false;
//update(0);
}
*/
}
void ScriptedEntity::postInit()
@ -257,11 +248,6 @@ void ScriptedEntity::initStrands(int num, int segs, int dist, int strandSpacing,
strands.resize(num);
for (int i = 0; i < strands.size(); i++)
{
/*
int sz = 5;
if (i == 0 || i == strands.size()-1)
sz = 4;
*/
strands[i] = new Strand(position, segs, dist);
strands[i]->color = color;
dsq->game->addRenderObject(strands[i], this->layer);
@ -269,98 +255,18 @@ void ScriptedEntity::initStrands(int num, int segs, int dist, int strandSpacing,
updateStrands(0);
}
/*
// write this if/when needed, set all strands to color (with lerp)
void ScriptedEntity::setStrandsColor(const Vector &color, float time)
{
}
*/
void ScriptedEntity::onAlwaysUpdate(float dt)
{
Entity::onAlwaysUpdate(dt);
// debugLog("calling updateStrands");
updateStrands(dt);
//HACK: this would be better in base Entity
/*
if (frozenTimer)
{
}
*/
if (!isEntityDead() && getState() != STATE_DEAD && getState() != STATE_DEATHSCENE && isPresent())
{
const bool useEV=false;
if (useEV)
{
int mov = getv(EV_MOVEMENT);
if (mov && frozenTimer)
{
doFriction(dt, 50);
}
else
{
// don't update friction if we're in a bubble.
int fric = getv(EV_FRICTION);
if (fric)
{
doFriction(dt, fric);
}
}
switch (mov)
{
case 1:
updateMovement(dt);
break;
case 2:
updateCurrents(dt);
updateMovement(dt);
break;
}
if (mov)
{
if (hair)
{
setHairHeadPosition(position);
updateHair(dt);
}
}
switch (getv(EV_COLLIDE))
{
case 1:
if (skeletalSprite.isLoaded())
dsq->game->handleShotCollisionsSkeletal(this);
else
dsq->game->handleShotCollisions(this);
break;
case 2:
if (skeletalSprite.isLoaded())
dsq->game->handleShotCollisionsSkeletal(this);
else
dsq->game->handleShotCollisions(this);
int dmg = getv(EV_TOUCHDMG);
if (frozenTimer > 0)
dmg = 0;
touchAvatarDamage(collideRadius, dmg);
break;
}
}
if (frozenTimer > 0)
{
pullEmitter.update(dt);
if (!useEV)
{
doFriction(dt, 50);
updateCurrents(dt);
updateMovement(dt);
@ -376,7 +282,6 @@ void ScriptedEntity::onAlwaysUpdate(float dt)
else
dsq->game->handleShotCollisions(this);
}
}
if (isPullable() && !fillGridFromQuad)
{
@ -387,7 +292,6 @@ void ScriptedEntity::onAlwaysUpdate(float dt)
crushDelay = 0.2;
doCrush = true;
}
//if ((dsq->game->avatar->position - this->position).getSquaredLength2D() < sqr(collideRadius + dsq->game->avatar->collideRadius))
FOR_ENTITIES(i)
{
Entity *e = *i;
@ -397,9 +301,6 @@ void ScriptedEntity::onAlwaysUpdate(float dt)
{
if (this->isEntityProperty(EP_BLOCKER) && doCrush)
{
//bool doit = !vel.isLength2DIn(200) || (e->position.y > position.y && vel.y > 0);
/*dsq->game->avatar->pullTarget != this ||*/
/*&& */
bool doit = !vel.isLength2DIn(64) || (e->position.y > position.y && vel.y > 0);
if (doit)
{
@ -432,11 +333,9 @@ void ScriptedEntity::onAlwaysUpdate(float dt)
if (isPullable())
{
//debugLog("movable!");
Entity *followEntity = dsq->game->avatar;
if (followEntity && dsq->game->avatar->pullTarget == this)
{
//debugLog("followentity!");
Vector dist = followEntity->position - this->position;
if (dist.isLength2DIn(followEntity->collideRadius + collideRadius + 16))
{
@ -468,7 +367,6 @@ void ScriptedEntity::onAlwaysUpdate(float dt)
if (vel.isLength2DIn(100))
vel = 0;
}
//vel = 0;
}
doCollisionAvoidance(dt, 2, 0.5);
}
@ -497,28 +395,8 @@ void ScriptedEntity::updateStrands(float dt)
void ScriptedEntity::destroy()
{
//debugLog("calling target died");
CollideEntity::destroy();
/*
// spring plant might already be destroyed at this point (end of state)
// could add as child?
if (springPlant)
{
//springPlant->life = 0.1;
springPlant->alpha = 0;
}
*/
/*
if (hair)
{
//dsq->removeRenderObject(hair, DESTROY_RENDER_OBJECT);
dsq->game->removeRenderObject(hair);
hair->destroy();
delete hair;
hair = 0;
}
*/
if (script)
{
dsq->scriptInterface.closeScript(script);
@ -552,14 +430,9 @@ void ScriptedEntity::startPull()
debugLog("HERE!");
if (isEntityProperty(EP_BLOCKER))
{
//debugLog("property set!");
fillGridFromQuad = false;
dsq->game->reconstructEntityGrid();
}
else
{
//debugLog("property not set!");
}
pullEmitter.load("Pulled");
pullEmitter.start();
@ -603,21 +476,8 @@ void ScriptedEntity::onUpdate(float dt)
{
BBGE_PROF(ScriptedEntity_onUpdate);
/*
if (script && preUpdateFunc)
{
if (!script->call("preUpdate", this, dt))
{
debugLog(name + " : preUpdate : " + script->getLastError());
preUpdateFunc = false;
}
}
*/
CollideEntity::onUpdate(dt);
//updateStrands(dt);
if (becomeSolidDelay)
{
if (vel.isLength2DIn(5))
@ -659,15 +519,6 @@ void ScriptedEntity::onUpdate(float dt)
updateSegments(position, reverseSegments);
updateAlpha(alpha.x);
}
/*
//HACK: if this is wanted (to support moving placed entities), then
// springPlant has to notify ScriptedEntity when it is deleted / pulled out
if (springPlant)
{
springPlant->position = this->position;
}
*/
}
void ScriptedEntity::resetTimer(float t)
@ -720,25 +571,14 @@ bool ScriptedEntity::damage(const DamageData &d)
if (!script->call("damage", this, d.attacker, d.bone, int(d.damageType), d.damage, d.hitPos.x, d.hitPos.y, d.shot, &doDefault))
{
debugLog(name + ": damage function failed");
//debugLog(this->name + " : " + script->getLastError() + " hit");
}
else
{
/*
std::ostringstream os;
os << "doDefault: " << doDefault;
debugLog(os.str());
*/
}
}
if (doDefault)
{
//debugLog("doing default damage");
return Entity::damage(d);
}
//debugLog("not doing default damage");
return false;
}
@ -835,24 +675,6 @@ void ScriptedEntity::activate()
{
if (runningActivation) return;
Entity::activate();
/*
if (dsq->game->avatar)
{
Avatar *a = dsq->game->avatar;
if (a->position.x < this->position.x)
{
if (!a->isFlippedHorizontal())
a->flipHorizontal();
}
else
{
if (a->isFlippedHorizontal())
a->flipHorizontal();
}
if (getEntityType() == ET_NEUTRAL)
flipToTarget(dsq->game->avatar->position);
}
*/
runningActivation = true;
if (script)
@ -940,15 +762,6 @@ void ScriptedEntity::onEnterState(int action)
strands.clear();
// BASE ENTITY CLASS WILL HANDLE CLEANING UP HAIR
/*
if (hair)
{
hair->setLife(1.0);
hair->setDecayRate(10);
hair->fadeAlphaWithLife = true;
hair = 0;
}
*/
break;
}
}

View file

@ -91,7 +91,7 @@ protected:
void luaDebugMsg(const std::string &func, const std::string &msg);
float crushDelay;
int beforePullMaxSpeed;
bool songNoteFunction, preUpdateFunc;
bool songNoteFunction;
bool songNoteDoneFunction;
std::vector<ParticleEffect*> emitters;
bool becomeSolidDelay;

View file

@ -189,6 +189,7 @@ public:
void clearRot();
void clearPos();
void flipRot();
void cycleLerpType();
void toggleHideBone();

View file

@ -113,6 +113,13 @@ void AfterEffectManager::deleteShaders()
}
}
void AfterEffectManager::unloadShaders()
{
for(size_t i = 0; i < loadedShaders.size(); ++i)
if(loadedShaders[i])
loadedShaders[i]->unload();
}
void AfterEffectManager::clear()
{
deleteEffects();
@ -196,7 +203,7 @@ void AfterEffectManager::renderGrid()
Shader *activeShader = 0;
for (size_t i = 0; i < shaderPipeline.size(); ++i)
{
if(shaderPipeline[i])
if(shaderPipeline[i] && shaderPipeline[i]->isLoaded())
{
if(firstShader < 0)
{
@ -275,7 +282,7 @@ void AfterEffectManager::renderGrid()
for(int i = firstShader + 1; i <= lastShader; ++i)
{
activeShader = shaderPipeline[i];
if(!activeShader)
if(!(activeShader && activeShader->isLoaded()))
continue;
// Swap and exchange framebuffers. The old output buffer serves as texture input for the other one
@ -373,7 +380,7 @@ void AfterEffectManager::renderGridPoints()
void AfterEffectManager::unloadDevice()
{
backupBuffer.unloadDevice();
deleteShaders();
unloadShaders();
}
void AfterEffectManager::reloadDevice()
@ -399,7 +406,22 @@ void AfterEffectManager::reloadDevice()
else
backupBuffer.init(-1, -1, true);
loadShaders();
for (size_t i = 0; i < loadedShaders.size(); ++i)
{
if (Shader *sh = loadedShaders[i])
{
sh->reload();
if (!sh->isLoaded())
{
debugLog("AfterEffect::reloadDevice(): Failed to reload shader");
delete sh;
loadedShaders[i] = 0;
for(size_t j = 0; j < shaderPipeline.size(); ++j)
if(sh == shaderPipeline[j])
shaderPipeline[j] = 0;
}
}
}
}
void AfterEffectManager::addEffect(Effect *e)
@ -612,7 +634,7 @@ int AfterEffectManager::_insertShader(Shader *sh)
return loadedShaders.size();
}
void AfterEffectManager::unloadShader(int handle)
void AfterEffectManager::deleteShader(int handle)
{
Shader *sh = getShaderPtr(handle);
if(!sh)

View file

@ -91,6 +91,7 @@ public:
void renderGridPoints();
void loadShaders();
void unloadShaders(); // unloads shaders but keeps code and data intact, so that they can be reloaded.
void deleteShaders();
void unloadDevice();
@ -116,7 +117,7 @@ public:
Shader *getShaderPtr(int handle);
void setShaderPipelineSize(size_t size);
bool setShaderPipelinePos(int handle, size_t pos);
void unloadShader(int handle);
void deleteShader(int handle);
protected:
int _insertShader(Shader *sh);

View file

@ -250,11 +250,11 @@ void stringToLowerUserData(std::string &s)
#ifndef HAVE_STRCASECMP
int nocasecmp(const std::string &s1, const std::string &s2)
{
std::string::const_iterator it1=s1.begin();
std::string::const_iterator it2=s2.begin();
const char *it1 = s1.c_str();
const char *it2 = s2.c_str();
//stop when either string's end has been reached
while ( (it1!=s1.end()) && (it2!=s2.end()) )
while ( *it1 && *it2 )
{
if(charToUpper(*it1) != charToUpper(*it2)) //letters differ?
// return -1 to indicate smaller than, 1 otherwise

View file

@ -26,6 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define WIN32_LEAN_AND_MEAN
#define WIN32_NOMINMAX
#include <windows.h>
#undef min
#undef max
#ifdef _MSC_VER
#define strtof (float)strtod

View file

@ -12,6 +12,7 @@ public:
virtual void setText(const std::string& text) = 0;
virtual void setWidth(int width) = 0;
virtual void setFontSize(int sz) = 0;
virtual void setAlign(Align a) = 0;
};

View file

@ -63,7 +63,7 @@ public:
bool isScrollingText();
void stopScrollingText();
bool isEmpty();
void setAlign(Align align);
virtual void setAlign(Align align);
std::string getText();
int getWidthOnScreen();
void loadSpacingMap(const std::string &file);

View file

@ -11,10 +11,10 @@
void cocoaMessageBox(const std::string &title, const std::string &msg)
{
@autoreleasepool {
NSString *nstitle = [NSString stringWithUTF8String:title.c_str()];
NSString *nsmsg = [NSString stringWithUTF8String:msg.c_str()];
NSRunAlertPanel(nstitle, nsmsg, @"OK", nil, nil);
[nsmsg release];
[nstitle release];
NSRunAlertPanel(nstitle, nsmsg, nil, nil, nil);
}
}

View file

@ -2746,8 +2746,6 @@ void Core::setMousePosition(const Vector &p)
// used to update all render objects either uniformly or as part of a time sliced update process
void Core::updateRenderObjects(float dt)
{
//HACK: we may not always be assuming virtual 800x600
Vector cameraC = core->cameraPos + Vector(400,300);
for (int c = 0; c < renderObjectLayers.size(); c++)
{
@ -3560,7 +3558,7 @@ void Core::pollEvents()
case SDL_KEYDOWN:
{
#if __APPLE__
if ((event.key.keysym.sym == SDLK_q) && (event.key.keysym.mod & KMOD_META))
if ((event.key.keysym.sym == SDLK_q) && (event.key.keysym.mod & KMOD_GUI))
#else
if ((event.key.keysym.sym == SDLK_F4) && (event.key.keysym.mod & KMOD_ALT))
#endif

View file

@ -32,7 +32,7 @@ public:
void setWidth(int width);
void setFontSize(int sz);
int getNumLines() { return lines.size(); }
void setAlign(Align align);
virtual void setAlign(Align align);
protected:
int fontDrawSize, textWidth;
void formatText();

View file

@ -0,0 +1,291 @@
// Public domain
// Aquaria specific...
#include "Base.h"
#include "algorithmx.h"
#include "MemoryAllocatorSmallBlock.h"
#include "bithacks.h"
#include <assert.h>
//#define DD(...) fprintf(stderr, __VA_ARGS__)
#define DD(...)
#define logdev(...)
#define logerror(...)
#ifdef NDEBUG
# define ASSERT(x)
#else
# define ASSERT(x) assert(x)
#endif
SmallBlockAllocator::SmallBlockAllocator(unsigned int blockSizeMin,
unsigned int blockSizeMax,
unsigned int blockSizeIncr /* = 8 */,
unsigned int elemsPerBlockMin /* = 64 */,
unsigned int elemsPerBlockMax /* = 2048 */)
: _blockSizeMin(blockSizeMin)
, _blockSizeMax(blockSizeMax)
, _blockSizeIncr(blockSizeIncr)
, _elemsPerBlockMin(elemsPerBlockMin)
, _elemsPerBlockMax(elemsPerBlockMax)
{
ASSERT(_blockSizeIncr % 4 == 0); // less than 4 bytes makes no sense
ASSERT(_blockSizeMin % _blockSizeIncr == 0);
ASSERT(_blockSizeMax % _blockSizeIncr == 0);
ASSERT((_blockSizeMax - _blockSizeMin) % _blockSizeIncr == 0);
unsigned int c = ((_blockSizeMax - _blockSizeMin) / _blockSizeIncr) + 1;
logdev("SBA: Using %u distinct block sizes from %u - %u bytes", c, _blockSizeMin, _blockSizeMax);
_blocks = new Block*[c]; // TODO: Do we really want to use dynamic allocation here?
memset(_blocks, 0, c * sizeof(Block*));
}
SmallBlockAllocator::~SmallBlockAllocator()
{
while(_allblocks.size())
{
Block *blk = _allblocks.back();
logerror("~SmallBlockAllocator(): Warning: Leftover block with %u/%u elements, %uB each",
blk->maxElems, blk->maxElems - blk->freeElems, blk->elemSize);
_FreeBlock(blk);
}
delete [] _blocks;
}
void *SmallBlockAllocator::Alloc(void *ptr, size_t newsize, size_t oldsize)
{
DD("SBA::Alloc() ptr = %p; newsize = %u, oldsize = %u", ptr, newsize, oldsize);
if(ptr)
{
if(!newsize)
{
_Free(ptr, oldsize);
return NULL;
}
else if(newsize == oldsize)
return ptr;
else
return _Realloc(ptr, newsize, oldsize);
}
else
{
if(newsize)
return _Alloc(newsize);
}
return NULL;
}
SmallBlockAllocator::Block *SmallBlockAllocator::_AllocBlock(unsigned int elemCount, unsigned int elemSize)
{
DD("SBA: _AllocBlock: elemCount = %u, elemSize = %u", elemCount, elemSize);
const unsigned int bitsPerInt = (sizeof(unsigned int) * 8); // 32
unsigned int bitmapInts = (elemCount + (bitsPerInt - 1)) / bitsPerInt;
void *ptr = malloc(
(sizeof(Block) - sizeof(unsigned int)) // block header without bitmap[1]
+ (bitmapInts * sizeof(unsigned int)) // actual bitmap size
+ (elemCount * elemSize) // data size
);
if(!ptr)
return NULL;
Block *blk = (Block*)ptr;
memset(&blk->bitmap[0], 0xff, bitmapInts * sizeof(unsigned int)); // all free
blk->elemSize = elemSize;
blk->maxElems = elemCount;
blk->freeElems = elemCount;
blk->bitmapInts = bitmapInts;
blk->next = NULL;
blk->prev = NULL;
// using insertion sort
std::vector<Block*>::iterator insertit = std::lower_bound(_allblocks.begin(), _allblocks.end(), blk);
_allblocks.insert(insertit, blk);
return blk;
}
void SmallBlockAllocator::_FreeBlock(Block *blk)
{
DD("SBA: _FreeBlock: elemCount = %u, elemSize = %u", blk->maxElems, blk->elemSize);
if(blk->prev)
blk->prev->next = blk->next;
else
_blocks[GetIndexForElemSize(blk->elemSize)] = blk->next;
if(blk->next)
blk->next->prev = blk->prev;
free(blk);
// keeps the vector sorted
_allblocks.erase(std::remove(_allblocks.begin(), _allblocks.end(), blk), _allblocks.end());
}
SmallBlockAllocator::Block *SmallBlockAllocator::_AppendBlock(unsigned int elemSize)
{
unsigned int idx = GetIndexForElemSize(elemSize);
Block *blk = _blocks[idx];
unsigned int elemsPerBlock = _elemsPerBlockMin;
if(blk)
{
while(blk->next)
blk = blk->next;
elemsPerBlock = blk->maxElems * 2; // new block is double the size
if(elemsPerBlock > _elemsPerBlockMax)
elemsPerBlock = _elemsPerBlockMax;
}
unsigned int blockElemSize = ((elemSize + (_blockSizeIncr - 1)) / _blockSizeIncr) * _blockSizeIncr;
ASSERT(blockElemSize >= elemSize);
Block *newblk = _AllocBlock(elemsPerBlock, blockElemSize);
if(!newblk)
return NULL;
if(blk)
{
blk->next = newblk; // append to list
newblk->prev = blk;
}
else
_blocks[idx] = newblk; // list head
return newblk;
}
SmallBlockAllocator::Block *SmallBlockAllocator::_GetFreeBlock(unsigned int elemSize)
{
unsigned int idx = GetIndexForElemSize(elemSize);
Block *blk = _blocks[idx];
while(blk && !blk->freeElems)
blk = blk->next;
return blk;
}
void *SmallBlockAllocator::Block::allocElem()
{
ASSERT(freeElems);
unsigned int i = 0;
for( ; !bitmap[i]; ++i) // as soon as one isn't all zero, there's a free slot
ASSERT(i < bitmapInts);
ASSERT(i < bitmapInts);
int freeidx = bithacks::ctz(bitmap[i]);
ASSERT(bitmap[i] & (1 << freeidx)); // make sure this is '1' (= free)
bitmap[i] &= ~(1 << freeidx); // put '0' where '1' was (-> mark as non-free)
--freeElems;
const unsigned int offs = (i * sizeof(unsigned int) * 8 * elemSize); // skip forward i bitmaps (32 elems each)
unsigned char *ret = getPtr() + offs + (elemSize * freeidx);
ASSERT(contains(ret));
return ret;
}
bool SmallBlockAllocator::Block::contains(unsigned char *ptr) const
{
const unsigned char *pp = getPtr();
if(ptr < pp)
return false; // pointer is out of range (1)
if(ptr >= pp + (maxElems * elemSize))
return false; // pointer is out of range (2)
return true;
}
void SmallBlockAllocator::Block::freeElem(unsigned char *ptr)
{
ASSERT(contains(ptr));
ASSERT(freeElems < maxElems); // make sure the block is not all free
const ptrdiff_t p = ptr - getPtr();
ASSERT((p % elemSize) == 0); // make sure alignment is right
const unsigned int idx = p / elemSize;
const unsigned int bitsPerInt = sizeof(unsigned int) * 8; // 32
const unsigned int bitmapIdx = idx / bitsPerInt;
const unsigned int bitIdx = idx % bitsPerInt;
ASSERT(bitmapIdx < bitmapInts);
ASSERT(!(bitmap[bitmapIdx] & (1 << bitIdx))); // make sure this is '0' (= used)
bitmap[bitmapIdx] |= (1 << bitIdx); // put '1' where '0' was (-> mark as free)
++freeElems;
#ifdef _DEBUG
memset(ptr, 0xfa, elemSize);
#endif
}
void *SmallBlockAllocator::_FallbackAlloc(unsigned int size)
{
return malloc(size);
}
void SmallBlockAllocator::_FallbackFree(void *ptr)
{
free(ptr);
}
void *SmallBlockAllocator::_Alloc(unsigned int size)
{
if(size > _blockSizeMax)
return _FallbackAlloc(size);
Block *blk = _GetFreeBlock(size);
ASSERT(!blk || blk->freeElems);
if(!blk)
{
blk = _AppendBlock(size);
if(!blk)
return _FallbackAlloc(size);
}
return blk->allocElem();
}
bool SmallBlockAllocator::Block_ptr_cmp(const Block *blk, const void *ptr)
{
return blk->getEndPtr() < ((unsigned char*)ptr);
}
SmallBlockAllocator::Block *SmallBlockAllocator::_FindBlockContainingPtr(void *ptr)
{
// MSVC's std::lower_bound uses iterator debug checks in debug mode,
// which breaks Block_ptr_cmp() because the left and right types are different.
std::vector<Block*>::iterator it = stdx_fg::lower_bound(_allblocks.begin(), _allblocks.end(), ptr, Block_ptr_cmp);
return (it != _allblocks.end() && (*it)->contains((unsigned char*)ptr)) ? *it : NULL;
}
void SmallBlockAllocator::_Free(void *ptr, unsigned int size)
{
if(size <= _blockSizeMax)
{
Block *blk = _FindBlockContainingPtr(ptr);
if(blk)
{
ASSERT(blk->elemSize >= size); // ptr might be from a larger block in case _Realloc() failed to shrink
blk->freeElem((unsigned char*)ptr);
if(blk->freeElems == blk->maxElems)
_FreeBlock(blk); // remove if completely unused
return;
}
}
_FallbackFree(ptr);
}
void *SmallBlockAllocator::_Realloc(void *ptr, unsigned int newsize, unsigned int oldsize)
{
void *newptr = _Alloc(newsize);
// If the new allocation failed, just re-use the old pointer if it was a shrink request
// This also satisfies Lua, which assumes that realloc() shrink requests cannot fail
if(!newptr)
return newsize <= oldsize ? ptr : NULL;
memcpy(newptr, ptr, std::min(oldsize, newsize));
_Free(ptr, oldsize);
return newptr;
}

View file

@ -0,0 +1,100 @@
#ifndef MEMORY_ALLOCATOR_SMALL_BLOCK_H
#define MEMORY_ALLOCATOR_SMALL_BLOCK_H
/* Optimized memory allocator for small & frequent (de-)allocations.
* Low memory overhead. Used for Lua.
* Inspired by http://dns.achurch.org/cgi-bin/hg/aquaria-psp/file/tip/PSP/src/lalloc.c
*/
// Originally made for LV3proj_ng (https://github.com/fgenesis/lv3proj_ng)
// Hacked in shape for use in Aquaria
// Public domain
#include <vector>
class SmallBlockAllocator
{
public:
SmallBlockAllocator(unsigned int blockSizeMin, unsigned int blockSizeMax, unsigned int blockSizeIncr = 8,
unsigned int elemsPerBlockMin = 64, unsigned int elemsPerBlockMax = 2048);
~SmallBlockAllocator();
void *Alloc(void *ptr, size_t newsize, size_t oldsize);
private:
void *_Alloc(unsigned int size);
void *_Realloc(void *ptr, unsigned int newsize, unsigned int oldsize);
void _Free(void* ptr, unsigned int size);
void *_FallbackAlloc(unsigned int size);
void _FallbackFree(void *ptr);
struct Block
{
// block header start
Block *next;
Block *prev;
unsigned short maxElems;
unsigned short freeElems;
unsigned short elemSize;
unsigned short bitmapInts;
// block header end
unsigned int bitmap[1]; // variable sized
// actual storage memory starts after bitmap[bitmapInts]
inline unsigned char *getPtr()
{
return (unsigned char*)&bitmap[bitmapInts];
}
inline const unsigned char *getPtr() const
{
return (unsigned char*)&bitmap[bitmapInts];
}
inline unsigned char *getEndPtr()
{
return getPtr() + (maxElems * elemSize);
}
inline const unsigned char *getEndPtr() const
{
return getPtr() + (maxElems * elemSize);
}
void *allocElem();
void freeElem(unsigned char *ptr);
bool contains(unsigned char *ptr) const;
};
Block *_AllocBlock(unsigned int elemCount, unsigned int elemSize);
void _FreeBlock(Block *blk);
Block *_AppendBlock(unsigned int elemSize);
Block *_GetFreeBlock(unsigned int elemSize); // NULL if none free
Block *_FindBlockContainingPtr(void *ptr);
inline unsigned int GetIndexForElemSize(unsigned int elemSize)
{
//ASSERT(elemSize);
//ASSERT(elemSize <= _blockSizeMax);
return ((elemSize + (_blockSizeIncr - 1)) / _blockSizeIncr) - 1;
}
static bool Block_ptr_cmp(const Block *blk, const void *ptr);
Block **_blocks;
std::vector<Block*> _allblocks; // always sorted by pointer address
unsigned int _blockSizeMin;
unsigned int _blockSizeMax;
unsigned int _blockSizeIncr;
unsigned int _elemsPerBlockMin;
unsigned int _elemsPerBlockMax;
};
#endif

View file

@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
ParticleEffect::ParticleEffect() : RenderObject()
{
addType(SCO_PARTICLE_EFFECT);
running = false;
waitForParticles = true;
effectLife = -1;

View file

@ -39,6 +39,7 @@ static const char *scriptObjTypeNames[] =
/* (1 <<11) */ "Text",
/* (1 <<12) */ "PauseQuad",
/* (1 <<13) */ "Shader",
/* (1 <<14) */ "ParticleEffect",
NULL
};

View file

@ -41,6 +41,7 @@ enum ScriptObjectType
SCO_TEXT = 0x0800,
SCO_PAUSEQUAD = 0x1000,
SCO_SHADER = 0x2000,
SCO_PARTICLE_EFFECT = 0x4000,
SCO_FORCE_32BIT = 0xFFFFFFFF
};

View file

@ -164,7 +164,10 @@ bool Shader::isLoaded() const
void Shader::reload()
{
if (vertFile.size() || fragFile.size())
load(vertFile, fragFile);
else
loadSrc(vertSrc.c_str(), fragSrc.c_str());
}
void Shader::bind()
@ -321,6 +324,9 @@ void Shader::loadSrc(const char *vertCode, const char *fragCode)
return;
}
vertSrc = vertCode ? vertCode : "";
fragSrc = fragCode ? fragCode : "";
_queryUniforms();
#endif
@ -328,15 +334,6 @@ void Shader::loadSrc(const char *vertCode, const char *fragCode)
void Shader::_setUniform(Uniform *u)
{
/*if(u->location == -1)
{
u->location = glGetUniformLocationARB(g_programObj, u->name);
if(u->location == -1)
{
u->dirty = false;
return;
}
}*/
switch(u->type)
{
case GL_FLOAT: glUniform1fvARB(u->location, 1, u->data.f); break;
@ -381,9 +378,13 @@ void Shader::_queryUniforms()
glGetObjectParameterivARB(g_programObj, GL_OBJECT_ACTIVE_UNIFORMS_ARB , &numUniforms);
if (numUniforms <= 0)
{
uniforms.clear();
return;
}
uniforms.reserve(numUniforms);
size_t total = 0;
for (unsigned int i = 0; i < numUniforms; ++i)
{
@ -396,15 +397,27 @@ void Shader::_queryUniforms()
u.location = glGetUniformLocationARB(g_programObj, u.name);
if(u.location == -1)
continue;
u.dirty = false;
u.type = type;
memset(&u.data, 0, sizeof(u.data));
bool add = total >= uniforms.size();
if(add || type != u.type) // keep data intact on reload
memset(&u.data, 0, sizeof(u.data));
u.dirty = true;
u.type = type;
if(add)
uniforms.push_back(u);
else
uniforms[total] = u;
++total;
}
uniforms.resize(total);
// sort to be able to do binary search later
std::sort(uniforms.begin(), uniforms.end());
uniformsDirty = true;
}
int Shader::_getUniformIndex(const char *name)

View file

@ -44,6 +44,7 @@ public:
protected:
std::string vertFile, fragFile;
std::string vertSrc, fragSrc;
#ifdef BBGE_BUILD_OPENGL
GLuint g_programObj;
int numUniforms;
@ -72,7 +73,7 @@ private:
float f[4];
};
} data;
char name[32];
char name[64];
bool operator< (const Uniform&) const;
};

View file

@ -251,6 +251,7 @@ public:
void selectNextBone();
bool isLoaded();
int getNumAnimLayers() const { return animLayers.size(); }
AnimationLayer* getAnimationLayer(int l);
int getBoneIdx(Bone *b);

View file

@ -483,7 +483,6 @@ std::string SoundManager::getVolumeString()
musicChannel2->getVolume(&musicChannel2Vol);
os << "curMusVol (c1/c2/g): " << musicChannelVol << " " << musicChannel2Vol << " " << musicGroupVol << std::endl;
os << "runInBG: " << core->settings.runInBackground << std::endl;
return os.str();
}

84
BBGE/bithacks.h Normal file
View file

@ -0,0 +1,84 @@
#ifndef BITHACKS_H
#define BITHACKS_H
#ifdef _MSC_VER
# include <intrin.h>
#endif
namespace bithacks {
typedef unsigned int uint32;
typedef int int32;
// floor to next power of 2
inline uint32 flp2(uint32 x)
{
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
x |= (x >> 16);
return x - (x >> 1);
}
// ceil to next power of 2
inline uint32 clp2(uint32 x)
{
--x;
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
x |= (x >> 16);
return x + 1;
}
inline uint32 popcnt(uint32 x)
{
x -= ((x >> 1) & 0x55555555);
x = (((x >> 2) & 0x33333333) + (x & 0x33333333));
x = (((x >> 4) + x) & 0x0f0f0f0f);
x += (x >> 8);
x += (x >> 16);
return x & 0x0000003f;
}
inline uint32 ctz(uint32 x)
{
#ifdef __GNUC__
return __builtin_ctz(x);
#elif defined(_MSC_VER) && defined(_M_IX86)
unsigned long r = 0;
_BitScanForward(&r, x);
return r;
#else
return popcnt((x & -x) - 1);
#endif
}
inline unsigned int clz(uint32 x)
{
#ifdef __GNUC__
return __builtin_clz(x);
#elif defined(_MSC_VER) && defined(_M_IX86)
unsigned long r = 0;
_BitScanReverse(&r, x);
return r;
#else
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
x |= (x >> 16);
return 32 - popcnt(x);
#endif
}
}; // end namespace bithacks
#endif

View file

@ -30,7 +30,7 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
OPTION(AQUARIA_DEMO_BUILD "Demo Build?" FALSE)
OPTION(AQUARIA_USE_VFS "Use Virtual File System? Required for some additional features." TRUE)
OPTION(AQUARIA_USE_SDL2 "Use SDL2" FAlSE)
OPTION(AQUARIA_USE_SDL2 "Use SDL2" FALSE)
# No Steamworks SDK for Linux at the moment. Roll our own achievements.
ADD_DEFINITIONS(-DBBGE_BUILD_ACHIEVEMENTS_INTERNAL=1)
@ -448,6 +448,7 @@ SET(BBGE_SRCS
${BBGEDIR}/LensFlare.cpp
${BBGEDIR}/Localization.cpp
${BBGEDIR}/Math.cpp
${BBGEDIR}/MemoryAllocatorSmallBlock.cpp
${BBGEDIR}/MT.cpp
${BBGEDIR}/ParticleEffect.cpp
${BBGEDIR}/ParticleManager.cpp

View file

@ -97,6 +97,10 @@ bool VFSDir::merge(VFSDir *dir, bool overwrite, EntryFlags flag)
if(dir == this)
return true; // nothing to do then
// HACK: make sure the files are there before merging
this->load(false);
dir->load(false);
bool result = false;
VFS_GUARD_OPT(this);

33
VS2010/.gitignore vendored Normal file
View file

@ -0,0 +1,33 @@
.*
*.o
*.o.*
*.so
*.so.dbg
*.bin
*.gz
*.obj
*.user
*.manifest
*.suo
*.ncb
*.pdb
*.ilk
*.exp
*.tmp
*.aps
*.opensdf
temp/*
build/*
bin/*
ipch/*
Debug/*
Release/*
New Folder/*
*.sdf
VS2010/*.vcxproj.user
VS2010/*.vcxproj.filters
*.patch
*.diff
!.gitignore

36
VS2010/AquariaVS2010.sln Normal file
View file

@ -0,0 +1,36 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aquaria", "VS2010\Aquaria.vcxproj", "{4DB6D5AA-4EAD-4195-9B54-389B558036D8}"
ProjectSection(ProjectDependencies) = postProject
{4C2AD812-6776-4728-A4B0-ABA397224152} = {4C2AD812-6776-4728-A4B0-ABA397224152}
{6A2DACD7-DA30-49A1-9214-CCDEB48E6050} = {6A2DACD7-DA30-49A1-9214-CCDEB48E6050}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BBGE", "VS2010\BBGE.vcxproj", "{4C2AD812-6776-4728-A4B0-ABA397224152}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "external", "VS2010\external.vcxproj", "{6A2DACD7-DA30-49A1-9214-CCDEB48E6050}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4DB6D5AA-4EAD-4195-9B54-389B558036D8}.Debug|Win32.ActiveCfg = Debug|Win32
{4DB6D5AA-4EAD-4195-9B54-389B558036D8}.Debug|Win32.Build.0 = Debug|Win32
{4DB6D5AA-4EAD-4195-9B54-389B558036D8}.Release|Win32.ActiveCfg = Release|Win32
{4DB6D5AA-4EAD-4195-9B54-389B558036D8}.Release|Win32.Build.0 = Release|Win32
{4C2AD812-6776-4728-A4B0-ABA397224152}.Debug|Win32.ActiveCfg = Debug|Win32
{4C2AD812-6776-4728-A4B0-ABA397224152}.Debug|Win32.Build.0 = Debug|Win32
{4C2AD812-6776-4728-A4B0-ABA397224152}.Release|Win32.ActiveCfg = Release|Win32
{4C2AD812-6776-4728-A4B0-ABA397224152}.Release|Win32.Build.0 = Release|Win32
{6A2DACD7-DA30-49A1-9214-CCDEB48E6050}.Debug|Win32.ActiveCfg = Debug|Win32
{6A2DACD7-DA30-49A1-9214-CCDEB48E6050}.Debug|Win32.Build.0 = Debug|Win32
{6A2DACD7-DA30-49A1-9214-CCDEB48E6050}.Release|Win32.ActiveCfg = Release|Win32
{6A2DACD7-DA30-49A1-9214-CCDEB48E6050}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,573 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="Aquaria"
ProjectGUID="{4DB6D5AA-4EAD-4195-9B54-389B558036D8}"
RootNamespace="Aquaria_vc90"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)\..\bin"
IntermediateDirectory="$(SolutionDir)\temp\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config&quot;;&quot;$(SolutionDir)\..\ExternalLibs\gl&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\zlib&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\png&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\FTGL\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\SDL2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\AL\include&quot;;&quot;$(SolutionDir)\..\BBGE&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lua-5.1.4\src&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa&quot;;&quot;$(SolutionDir)\..\ExternalLibs\ttvfs&quot;;&quot;$(SolutionDir)\..\ExternalLibs&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1"
MinimalRebuild="true"
BasicRuntimeChecks="0"
RuntimeLibrary="3"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\$(ProjectName)d.exe"
LinkIncremental="2"
AdditionalLibraryDirectories=""
IgnoreDefaultLibraryNames="msvcrt.lib"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)\..\bin"
IntermediateDirectory="$(SolutionDir)\temp\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
EnableFiberSafeOptimizations="true"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config&quot;;&quot;$(SolutionDir)\..\ExternalLibs\gl&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\zlib&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\png&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\FTGL\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\SDL2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\AL\include&quot;;&quot;$(SolutionDir)\..\BBGE&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lua-5.1.4\src&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa&quot;;&quot;$(SolutionDir)\..\ExternalLibs\ttvfs&quot;;&quot;$(SolutionDir)\..\ExternalLibs&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="false"
EnableEnhancedInstructionSet="2"
FloatingPointModel="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
IgnoreDefaultLibraryNames="msvcrt.lib"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\Aquaria\AnimationEditor.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\AquariaComboBox.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\AquariaMenuItem.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\AquariaMenuItem.h"
>
</File>
<File
RelativePath="..\..\Aquaria\AquariaProgressBar.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\AquariaProgressBar.h"
>
</File>
<File
RelativePath="..\..\Aquaria\AquariaSaveSlot.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\AStar.h"
>
</File>
<File
RelativePath="..\..\Aquaria\AutoMap.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\AutoMap.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Avatar.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Avatar.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Beam.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\BitBlotLogo.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\CollideEntity.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\CollideEntity.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Continuity.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Credits.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\CurrentRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Demo.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\DSQ.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\DSQ.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Element.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Element.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Emote.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Entity.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Entity.h"
>
</File>
<File
RelativePath="..\..\Aquaria\FlockEntity.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\FlockEntity.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Game.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Game.h"
>
</File>
<File
RelativePath="..\..\Aquaria\GameplayVariables.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\GasCloud.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\GridRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\GridRender.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Hair.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Hair.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Ingredient.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Intro.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Main.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\ManaBall.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\MiniMapRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Mod.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\ModDownloader.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\ModDownloader.h"
>
</File>
<File
RelativePath="..\..\Aquaria\ModSelector.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Network.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Network.h"
>
</File>
<File
RelativePath="..\..\Aquaria\ParticleEditor.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Path.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Path.h"
>
</File>
<File
RelativePath="..\..\Aquaria\PathFinding.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\PathFinding.h"
>
</File>
<File
RelativePath="..\..\Aquaria\PathRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\RecipeMenuEntry.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\resource.h"
>
</File>
<File
RelativePath="..\..\Aquaria\SceneEditor.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\SchoolFish.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\SchoolFish.h"
>
</File>
<File
RelativePath="..\..\Aquaria\ScriptedEntity.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\ScriptedEntity.h"
>
</File>
<File
RelativePath="..\..\Aquaria\ScriptInterface.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\ScriptInterface.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Segmented.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Segmented.h"
>
</File>
<File
RelativePath="..\..\Aquaria\SFXLoops.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Shot.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Shot.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Spore.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\States.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\States.h"
>
</File>
<File
RelativePath="..\..\Aquaria\StatsAndAchievements.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\StatsAndAchievements.h"
>
</File>
<File
RelativePath="..\..\Aquaria\SteamRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Strand.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\StringBank.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\SubtitlePlayer.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\TileVector.h"
>
</File>
<File
RelativePath="..\..\Aquaria\ToolTip.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\ToolTip.h"
>
</File>
<File
RelativePath="..\..\Aquaria\UserSettings.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\UserSettings.h"
>
</File>
<File
RelativePath="..\..\Aquaria\WaterFont.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\WaterFont.h"
>
</File>
<File
RelativePath="..\..\Aquaria\WaterSurfaceRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\WaterSurfaceRender.h"
>
</File>
<File
RelativePath="..\..\Aquaria\Web.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\Web.h"
>
</File>
<File
RelativePath="..\..\Aquaria\WorldMapRender.cpp"
>
</File>
<File
RelativePath="..\..\Aquaria\WorldMapTiles.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\Aquaria\AquariaCompileConfig.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath="..\..\Aquaria\Aquaria.rc"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4DB6D5AA-4EAD-4195-9B54-389B558036D8}</ProjectGuid>
<RootNamespace>Aquaria_vc90</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config;$(SolutionDir)\..\ExternalLibs\gl;$(SolutionDir)\..\ExternalLibs\glpng\zlib;$(SolutionDir)\..\ExternalLibs\glpng\png;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include;$(SolutionDir)\..\ExternalLibs\freetype2\include;$(SolutionDir)\..\ExternalLibs\FTGL\include;$(SolutionDir)\..\ExternalLibs\SDL2\include;$(SolutionDir)\..\ExternalLibs\AL\include;$(SolutionDir)\..\BBGE;$(SolutionDir)\..\ExternalLibs\lua-5.1.4\src;$(SolutionDir)\..\ExternalLibs\lvpa\include;$(SolutionDir)\..\ExternalLibs\lvpa;$(SolutionDir)\..\ExternalLibs\ttvfs;$(SolutionDir)\..\ExternalLibs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
<ObjectFileName>$(IntDir)/$(Configuration/%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(SolutionDir)temp\$(Configuration)\external\;$(SolutionDir)temp\$(Configuration)\BBGE\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalDependencies>external.lib;BBGE.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<AdditionalIncludeDirectories>$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config;$(SolutionDir)\..\ExternalLibs\gl;$(SolutionDir)\..\ExternalLibs\glpng\zlib;$(SolutionDir)\..\ExternalLibs\glpng\png;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include;$(SolutionDir)\..\ExternalLibs\freetype2\include;$(SolutionDir)\..\ExternalLibs\FTGL\include;$(SolutionDir)\..\ExternalLibs\SDL2\include;$(SolutionDir)\..\ExternalLibs\AL\include;$(SolutionDir)\..\BBGE;$(SolutionDir)\..\ExternalLibs\lua-5.1.4\src;$(SolutionDir)\..\ExternalLibs\lvpa\include;$(SolutionDir)\..\ExternalLibs\lvpa;$(SolutionDir)\..\ExternalLibs\ttvfs;$(SolutionDir)\..\ExternalLibs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>false</FunctionLevelLinking>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
<ObjectFileName>$(IntDir)/$(Configuration/%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Link>
<IgnoreSpecificDefaultLibraries>msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalLibraryDirectories>$(SolutionDir)temp\$(Configuration)\external\;$(SolutionDir)temp\$(Configuration)\BBGE\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>external.lib;BBGE.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\Aquaria\AnimationEditor.cpp" />
<ClCompile Include="..\..\Aquaria\AquariaComboBox.cpp" />
<ClCompile Include="..\..\Aquaria\AquariaMenuItem.cpp" />
<ClCompile Include="..\..\Aquaria\AquariaProgressBar.cpp" />
<ClCompile Include="..\..\Aquaria\AquariaSaveSlot.cpp" />
<ClCompile Include="..\..\Aquaria\AutoMap.cpp" />
<ClCompile Include="..\..\Aquaria\Avatar.cpp" />
<ClCompile Include="..\..\Aquaria\Beam.cpp" />
<ClCompile Include="..\..\Aquaria\BitBlotLogo.cpp" />
<ClCompile Include="..\..\Aquaria\CollideEntity.cpp" />
<ClCompile Include="..\..\Aquaria\Continuity.cpp" />
<ClCompile Include="..\..\Aquaria\Credits.cpp" />
<ClCompile Include="..\..\Aquaria\CurrentRender.cpp" />
<ClCompile Include="..\..\Aquaria\Demo.cpp" />
<ClCompile Include="..\..\Aquaria\DSQ.cpp" />
<ClCompile Include="..\..\Aquaria\Element.cpp" />
<ClCompile Include="..\..\Aquaria\Emote.cpp" />
<ClCompile Include="..\..\Aquaria\Entity.cpp" />
<ClCompile Include="..\..\Aquaria\FlockEntity.cpp" />
<ClCompile Include="..\..\Aquaria\Game.cpp" />
<ClCompile Include="..\..\Aquaria\GameplayVariables.cpp" />
<ClCompile Include="..\..\Aquaria\GasCloud.cpp" />
<ClCompile Include="..\..\Aquaria\GridRender.cpp" />
<ClCompile Include="..\..\Aquaria\Hair.cpp" />
<ClCompile Include="..\..\Aquaria\Ingredient.cpp" />
<ClCompile Include="..\..\Aquaria\Intro.cpp" />
<ClCompile Include="..\..\Aquaria\Main.cpp" />
<ClCompile Include="..\..\Aquaria\ManaBall.cpp" />
<ClCompile Include="..\..\Aquaria\MiniMapRender.cpp" />
<ClCompile Include="..\..\Aquaria\Mod.cpp" />
<ClCompile Include="..\..\Aquaria\ModDownloader.cpp" />
<ClCompile Include="..\..\Aquaria\ModSelector.cpp" />
<ClCompile Include="..\..\Aquaria\Network.cpp" />
<ClCompile Include="..\..\Aquaria\ParticleEditor.cpp" />
<ClCompile Include="..\..\Aquaria\Path.cpp" />
<ClCompile Include="..\..\Aquaria\PathFinding.cpp" />
<ClCompile Include="..\..\Aquaria\PathRender.cpp" />
<ClCompile Include="..\..\Aquaria\RecipeMenuEntry.cpp" />
<ClCompile Include="..\..\Aquaria\SceneEditor.cpp" />
<ClCompile Include="..\..\Aquaria\SchoolFish.cpp" />
<ClCompile Include="..\..\Aquaria\ScriptedEntity.cpp" />
<ClCompile Include="..\..\Aquaria\ScriptInterface.cpp" />
<ClCompile Include="..\..\Aquaria\Segmented.cpp" />
<ClCompile Include="..\..\Aquaria\SFXLoops.cpp" />
<ClCompile Include="..\..\Aquaria\Shot.cpp" />
<ClCompile Include="..\..\Aquaria\Spore.cpp" />
<ClCompile Include="..\..\Aquaria\States.cpp" />
<ClCompile Include="..\..\Aquaria\StatsAndAchievements.cpp" />
<ClCompile Include="..\..\Aquaria\SteamRender.cpp" />
<ClCompile Include="..\..\Aquaria\Strand.cpp" />
<ClCompile Include="..\..\Aquaria\StringBank.cpp" />
<ClCompile Include="..\..\Aquaria\SubtitlePlayer.cpp" />
<ClCompile Include="..\..\Aquaria\ToolTip.cpp" />
<ClCompile Include="..\..\Aquaria\UserSettings.cpp" />
<ClCompile Include="..\..\Aquaria\WaterFont.cpp" />
<ClCompile Include="..\..\Aquaria\WaterSurfaceRender.cpp" />
<ClCompile Include="..\..\Aquaria\Web.cpp" />
<ClCompile Include="..\..\Aquaria\WorldMapRender.cpp" />
<ClCompile Include="..\..\Aquaria\WorldMapTiles.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Aquaria\AquariaMenuItem.h" />
<ClInclude Include="..\..\Aquaria\AquariaProgressBar.h" />
<ClInclude Include="..\..\Aquaria\AStar.h" />
<ClInclude Include="..\..\Aquaria\AutoMap.h" />
<ClInclude Include="..\..\Aquaria\Avatar.h" />
<ClInclude Include="..\..\Aquaria\CollideEntity.h" />
<ClInclude Include="..\..\Aquaria\DSQ.h" />
<ClInclude Include="..\..\Aquaria\Element.h" />
<ClInclude Include="..\..\Aquaria\Entity.h" />
<ClInclude Include="..\..\Aquaria\FlockEntity.h" />
<ClInclude Include="..\..\Aquaria\Game.h" />
<ClInclude Include="..\..\Aquaria\GridRender.h" />
<ClInclude Include="..\..\Aquaria\Hair.h" />
<ClInclude Include="..\..\Aquaria\ModDownloader.h" />
<ClInclude Include="..\..\Aquaria\Network.h" />
<ClInclude Include="..\..\Aquaria\Path.h" />
<ClInclude Include="..\..\Aquaria\PathFinding.h" />
<ClInclude Include="..\..\Aquaria\resource.h" />
<ClInclude Include="..\..\Aquaria\SchoolFish.h" />
<ClInclude Include="..\..\Aquaria\ScriptedEntity.h" />
<ClInclude Include="..\..\Aquaria\ScriptInterface.h" />
<ClInclude Include="..\..\Aquaria\Segmented.h" />
<ClInclude Include="..\..\Aquaria\Shot.h" />
<ClInclude Include="..\..\Aquaria\States.h" />
<ClInclude Include="..\..\Aquaria\StatsAndAchievements.h" />
<ClInclude Include="..\..\Aquaria\TileVector.h" />
<ClInclude Include="..\..\Aquaria\ToolTip.h" />
<ClInclude Include="..\..\Aquaria\UserSettings.h" />
<ClInclude Include="..\..\Aquaria\WaterFont.h" />
<ClInclude Include="..\..\Aquaria\WaterSurfaceRender.h" />
<ClInclude Include="..\..\Aquaria\Web.h" />
<ClInclude Include="..\..\Aquaria\AquariaCompileConfig.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\Aquaria\Aquaria.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

543
VS2010/VS2010/BBGE.vcproj Normal file
View file

@ -0,0 +1,543 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="BBGE"
ProjectGUID="{4C2AD812-6776-4728-A4B0-ABA397224152}"
RootNamespace="Aquaria_vc90"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)\temp\$(ConfigurationName)\$(ProjectName)"
IntermediateDirectory="$(SolutionDir)\temp\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4"
UseOfMFC="0"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config&quot;;&quot;$(SolutionDir)\..\ExternalLibs\gl&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\zlib&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\png&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\FTGL\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\SDL2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\AL\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\ttvfs&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1"
MinimalRebuild="true"
BasicRuntimeChecks="0"
RuntimeLibrary="3"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="SDL2.lib SDL2main.lib OpenAL32.lib"
AdditionalLibraryDirectories="&quot;$(SolutionDir)\..\ExternalLibs\AL\lib\win32&quot;;&quot;$(SolutionDir)\..\ExternalLibs\SDL2\lib\win32&quot;"
IgnoreAllDefaultLibraries="true"
IgnoreDefaultLibraryNames=""
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)\temp\$(ConfigurationName)\$(ProjectName)"
IntermediateDirectory="$(SolutionDir)\temp\$(ConfigurationName)\$(ProjectName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
InlineFunctionExpansion="2"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
EnableFiberSafeOptimizations="true"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config&quot;;&quot;$(SolutionDir)\..\ExternalLibs\gl&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\zlib&quot;;&quot;$(SolutionDir)\..\ExternalLibs\glpng\png&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\freetype2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\FTGL\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\SDL2\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\AL\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs\ttvfs&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa&quot;;&quot;$(SolutionDir)\..\ExternalLibs\lvpa\include&quot;;&quot;$(SolutionDir)\..\ExternalLibs&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="false"
EnableEnhancedInstructionSet="2"
FloatingPointModel="2"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
AdditionalDependencies="SDL2.lib SDL2main.lib OpenAL32.lib"
AdditionalLibraryDirectories="&quot;$(SolutionDir)\..\ExternalLibs\AL\lib\win32&quot;;&quot;$(SolutionDir)\..\ExternalLibs\SDL2\lib\win32&quot;"
IgnoreAllDefaultLibraries="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\BBGE\ActionInput.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\ActionInput.h"
>
</File>
<File
RelativePath="..\..\BBGE\ActionMapper.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\ActionMapper.h"
>
</File>
<File
RelativePath="..\..\BBGE\ActionSet.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\ActionSet.h"
>
</File>
<File
RelativePath="..\..\BBGE\AfterEffect.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\AfterEffect.h"
>
</File>
<File
RelativePath="..\..\BBGE\Base.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Base.h"
>
</File>
<File
RelativePath="..\..\BBGE\BaseText.h"
>
</File>
<File
RelativePath="..\..\BBGE\BitmapFont.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\BitmapFont.h"
>
</File>
<File
RelativePath="..\..\BBGE\Collision.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Collision.h"
>
</File>
<File
RelativePath="..\..\BBGE\CommonEvents.h"
>
</File>
<File
RelativePath="..\..\BBGE\Core.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Core.h"
>
</File>
<File
RelativePath="..\..\BBGE\DarkLayer.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\DarkLayer.h"
>
</File>
<File
RelativePath="..\..\BBGE\DebugFont.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\DebugFont.h"
>
</File>
<File
RelativePath="..\..\BBGE\Effects.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Effects.h"
>
</File>
<File
RelativePath="..\..\BBGE\Emitter.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Event.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Event.h"
>
</File>
<File
RelativePath="..\..\BBGE\Flags.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Flags.h"
>
</File>
<File
RelativePath="..\..\BBGE\FmodOpenALBridge.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\FmodOpenALBridge.h"
>
</File>
<File
RelativePath="..\..\BBGE\FrameBuffer.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\FrameBuffer.h"
>
</File>
<File
RelativePath="..\..\BBGE\Gradient.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Gradient.h"
>
</File>
<File
RelativePath="..\..\BBGE\Joystick.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\LensFlare.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Localization.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Localization.h"
>
</File>
<File
RelativePath="..\..\BBGE\Math.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\MathFunctions.h"
>
</File>
<File
RelativePath="..\..\BBGE\MT.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\MT.h"
>
</File>
<File
RelativePath="..\..\BBGE\OpenGLStubs.h"
>
</File>
<File
RelativePath="..\..\BBGE\ParticleEffect.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\ParticleManager.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Particles.h"
>
</File>
<File
RelativePath="..\..\BBGE\Precacher.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Precacher.h"
>
</File>
<File
RelativePath="..\..\BBGE\Quad.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Quad.h"
>
</File>
<File
RelativePath="..\..\BBGE\QuadTrail.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\QuadTrail.h"
>
</File>
<File
RelativePath="..\..\BBGE\Rect.h"
>
</File>
<File
RelativePath="..\..\BBGE\RenderObject.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\RenderObject.h"
>
</File>
<File
RelativePath="..\..\BBGE\RenderObject_inline.h"
>
</File>
<File
RelativePath="..\..\BBGE\RenderObjectLayer.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\RenderRect.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Resource.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Resource.h"
>
</File>
<File
RelativePath="..\..\BBGE\RoundedRect.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\RoundedRect.h"
>
</File>
<File
RelativePath="..\..\BBGE\ScreenTransition.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\ScreenTransition.h"
>
</File>
<File
RelativePath="..\..\BBGE\ScriptObject.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\ScriptObject.h"
>
</File>
<File
RelativePath="..\..\BBGE\Shader.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Shader.h"
>
</File>
<File
RelativePath="..\..\BBGE\SimpleIStringStream.h"
>
</File>
<File
RelativePath="..\..\BBGE\SkeletalSprite.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\SkeletalSprite.h"
>
</File>
<File
RelativePath="..\..\BBGE\Slider.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Slider.h"
>
</File>
<File
RelativePath="..\..\BBGE\SoundManager.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\SoundManager.h"
>
</File>
<File
RelativePath="..\..\BBGE\SpawnParticleData.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\StateMachine.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\StateMachine.h"
>
</File>
<File
RelativePath="..\..\BBGE\StateManager.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\StateManager.h"
>
</File>
<File
RelativePath="..\..\BBGE\Strings.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Texture.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Texture.h"
>
</File>
<File
RelativePath="..\..\BBGE\TTFFont.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\TTFFont.h"
>
</File>
<File
RelativePath="..\..\BBGE\Vector.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\Vector.h"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\BBGE\BBGECompileConfig.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

198
VS2010/VS2010/BBGE.vcxproj Normal file
View file

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4C2AD812-6776-4728-A4B0-ABA397224152}</ProjectGuid>
<RootNamespace>Aquaria_vc90</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config;$(SolutionDir)\..\ExternalLibs\gl;$(SolutionDir)\..\ExternalLibs\glpng\zlib;$(SolutionDir)\..\ExternalLibs\glpng\png;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include;$(SolutionDir)\..\ExternalLibs\freetype2\include;$(SolutionDir)\..\ExternalLibs\FTGL\include;$(SolutionDir)\..\ExternalLibs\SDL2\include;$(SolutionDir)\..\ExternalLibs\AL\include;$(SolutionDir)\..\ExternalLibs\ttvfs;$(SolutionDir)\..\ExternalLibs\lvpa;$(SolutionDir)\..\ExternalLibs\lvpa\include;$(SolutionDir)\..\ExternalLibs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
<ObjectFileName>$(IntDir)/$(Configuration/%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Lib>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\..\ExternalLibs\AL\lib\win32;$(SolutionDir)\..\ExternalLibs\SDL2\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<AdditionalIncludeDirectories>$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config;$(SolutionDir)\..\ExternalLibs\gl;$(SolutionDir)\..\ExternalLibs\glpng\zlib;$(SolutionDir)\..\ExternalLibs\glpng\png;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include;$(SolutionDir)\..\ExternalLibs\freetype2\include;$(SolutionDir)\..\ExternalLibs\FTGL\include;$(SolutionDir)\..\ExternalLibs\SDL2\include;$(SolutionDir)\..\ExternalLibs\AL\include;$(SolutionDir)\..\ExternalLibs\ttvfs;$(SolutionDir)\..\ExternalLibs\lvpa;$(SolutionDir)\..\ExternalLibs\lvpa\include;$(SolutionDir)\..\ExternalLibs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;FTGL_LIBRARY_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;BBGE_BUILD_WINDOWS=1;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>false</FunctionLevelLinking>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
<ObjectFileName>$(IntDir)/$(Configuration/%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Lib>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;OpenAL32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\..\ExternalLibs\AL\lib\win32;$(SolutionDir)\..\ExternalLibs\SDL2\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\BBGE\ActionInput.cpp" />
<ClCompile Include="..\..\BBGE\ActionMapper.cpp" />
<ClCompile Include="..\..\BBGE\ActionSet.cpp" />
<ClCompile Include="..\..\BBGE\AfterEffect.cpp" />
<ClCompile Include="..\..\BBGE\Base.cpp" />
<ClCompile Include="..\..\BBGE\BitmapFont.cpp" />
<ClCompile Include="..\..\BBGE\Collision.cpp" />
<ClCompile Include="..\..\BBGE\Core.cpp" />
<ClCompile Include="..\..\BBGE\DarkLayer.cpp" />
<ClCompile Include="..\..\BBGE\DebugFont.cpp" />
<ClCompile Include="..\..\BBGE\Effects.cpp" />
<ClCompile Include="..\..\BBGE\Emitter.cpp" />
<ClCompile Include="..\..\BBGE\Event.cpp" />
<ClCompile Include="..\..\BBGE\Flags.cpp" />
<ClCompile Include="..\..\BBGE\FmodOpenALBridge.cpp" />
<ClCompile Include="..\..\BBGE\FrameBuffer.cpp" />
<ClCompile Include="..\..\BBGE\Gradient.cpp" />
<ClCompile Include="..\..\BBGE\Joystick.cpp" />
<ClCompile Include="..\..\BBGE\LensFlare.cpp" />
<ClCompile Include="..\..\BBGE\Localization.cpp" />
<ClCompile Include="..\..\BBGE\Math.cpp" />
<ClCompile Include="..\..\BBGE\MT.cpp" />
<ClCompile Include="..\..\BBGE\ParticleEffect.cpp" />
<ClCompile Include="..\..\BBGE\ParticleManager.cpp" />
<ClCompile Include="..\..\BBGE\Precacher.cpp" />
<ClCompile Include="..\..\BBGE\Quad.cpp" />
<ClCompile Include="..\..\BBGE\QuadTrail.cpp" />
<ClCompile Include="..\..\BBGE\RenderObject.cpp" />
<ClCompile Include="..\..\BBGE\RenderObjectLayer.cpp" />
<ClCompile Include="..\..\BBGE\RenderRect.cpp" />
<ClCompile Include="..\..\BBGE\Resource.cpp" />
<ClCompile Include="..\..\BBGE\RoundedRect.cpp" />
<ClCompile Include="..\..\BBGE\ScreenTransition.cpp" />
<ClCompile Include="..\..\BBGE\ScriptObject.cpp" />
<ClCompile Include="..\..\BBGE\Shader.cpp" />
<ClCompile Include="..\..\BBGE\SkeletalSprite.cpp" />
<ClCompile Include="..\..\BBGE\Slider.cpp" />
<ClCompile Include="..\..\BBGE\SoundManager.cpp" />
<ClCompile Include="..\..\BBGE\SpawnParticleData.cpp" />
<ClCompile Include="..\..\BBGE\StateMachine.cpp" />
<ClCompile Include="..\..\BBGE\StateManager.cpp" />
<ClCompile Include="..\..\BBGE\Strings.cpp" />
<ClCompile Include="..\..\BBGE\Texture.cpp" />
<ClCompile Include="..\..\BBGE\TTFFont.cpp" />
<ClCompile Include="..\..\BBGE\Vector.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\BBGE\ActionInput.h" />
<ClInclude Include="..\..\BBGE\ActionMapper.h" />
<ClInclude Include="..\..\BBGE\ActionSet.h" />
<ClInclude Include="..\..\BBGE\AfterEffect.h" />
<ClInclude Include="..\..\BBGE\Base.h" />
<ClInclude Include="..\..\BBGE\BaseText.h" />
<ClInclude Include="..\..\BBGE\BitmapFont.h" />
<ClInclude Include="..\..\BBGE\Collision.h" />
<ClInclude Include="..\..\BBGE\CommonEvents.h" />
<ClInclude Include="..\..\BBGE\Core.h" />
<ClInclude Include="..\..\BBGE\DarkLayer.h" />
<ClInclude Include="..\..\BBGE\DebugFont.h" />
<ClInclude Include="..\..\BBGE\Effects.h" />
<ClInclude Include="..\..\BBGE\Event.h" />
<ClInclude Include="..\..\BBGE\Flags.h" />
<ClInclude Include="..\..\BBGE\FmodOpenALBridge.h" />
<ClInclude Include="..\..\BBGE\FrameBuffer.h" />
<ClInclude Include="..\..\BBGE\Gradient.h" />
<ClInclude Include="..\..\BBGE\Localization.h" />
<ClInclude Include="..\..\BBGE\MathFunctions.h" />
<ClInclude Include="..\..\BBGE\MT.h" />
<ClInclude Include="..\..\BBGE\OpenGLStubs.h" />
<ClInclude Include="..\..\BBGE\Particles.h" />
<ClInclude Include="..\..\BBGE\Precacher.h" />
<ClInclude Include="..\..\BBGE\Quad.h" />
<ClInclude Include="..\..\BBGE\QuadTrail.h" />
<ClInclude Include="..\..\BBGE\Rect.h" />
<ClInclude Include="..\..\BBGE\RenderObject.h" />
<ClInclude Include="..\..\BBGE\RenderObject_inline.h" />
<ClInclude Include="..\..\BBGE\Resource.h" />
<ClInclude Include="..\..\BBGE\RoundedRect.h" />
<ClInclude Include="..\..\BBGE\ScreenTransition.h" />
<ClInclude Include="..\..\BBGE\ScriptObject.h" />
<ClInclude Include="..\..\BBGE\Shader.h" />
<ClInclude Include="..\..\BBGE\SimpleIStringStream.h" />
<ClInclude Include="..\..\BBGE\SkeletalSprite.h" />
<ClInclude Include="..\..\BBGE\Slider.h" />
<ClInclude Include="..\..\BBGE\SoundManager.h" />
<ClInclude Include="..\..\BBGE\StateMachine.h" />
<ClInclude Include="..\..\BBGE\StateManager.h" />
<ClInclude Include="..\..\BBGE\Texture.h" />
<ClInclude Include="..\..\BBGE\TTFFont.h" />
<ClInclude Include="..\..\BBGE\Vector.h" />
<ClInclude Include="..\..\BBGE\BBGECompileConfig.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,421 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{6A2DACD7-DA30-49A1-9214-CCDEB48E6050}</ProjectGuid>
<RootNamespace>Aquaria_vc90</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)temp\$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config;$(SolutionDir)\..\ExternalLibs\gl;$(SolutionDir)\..\ExternalLibs\glpng\zlib;$(SolutionDir)\..\ExternalLibs\glpng\png;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include;$(SolutionDir)\..\ExternalLibs\freetype2\include;$(SolutionDir)\..\ExternalLibs\FTGL\include;$(SolutionDir)\..\ExternalLibs\SDL2\include;$(SolutionDir)\..\ExternalLibs\ttvfs;$(SolutionDir)\..\ExternalLibs\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;HAVE_FCNTL_H;FT_CONFIG_OPTION_SYSTEM_ZLIB;FTGL_LIBRARY_STATIC;FT2_BUILD_LIBRARY;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;BBGE_BUILD_VFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4244;4996;4305;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ObjectFileName>$(IntDir)/$(Configuration/%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Lib>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
<AdditionalIncludeDirectories>$(SolutionDir)\..\ExternalLibs\freetype2\include\freetype\config;$(SolutionDir)\..\ExternalLibs\gl;$(SolutionDir)\..\ExternalLibs\glpng\zlib;$(SolutionDir)\..\ExternalLibs\glpng\png;$(SolutionDir)\..\ExternalLibs\libogg-1.3.0\include;$(SolutionDir)\..\ExternalLibs\libvorbis-1.3.3\include;$(SolutionDir)\..\ExternalLibs\freetype2\include;$(SolutionDir)\..\ExternalLibs\FTGL\include;$(SolutionDir)\..\ExternalLibs\SDL12\include;$(SolutionDir)\..\ExternalLibs\ttvfs;$(SolutionDir)\..\ExternalLibs;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;HAVE_FCNTL_H;FT_CONFIG_OPTION_SYSTEM_ZLIB;FTGL_LIBRARY_STATIC;FT2_BUILD_LIBRARY;GL_GLEXT_LEGACY=1;TIXML_USE_STL=1;HAVE_PUTENV=1;_HAS_EXCEPTIONS=0;BBGE_BUILD_VFS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>false</FunctionLevelLinking>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;4996;4305;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ObjectFileName>$(IntDir)/$(Configuration/%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Lib>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\ExternalLibs\ByteBuffer.h" />
<ClInclude Include="..\..\ExternalLibs\DeflateCompressor.h" />
<ClInclude Include="..\..\ExternalLibs\FileAPI.h" />
<ClInclude Include="..\..\ExternalLibs\minihttp.h" />
<ClInclude Include="..\..\ExternalLibs\tinyxml.h" />
<ClInclude Include="..\..\ExternalLibs\glpng.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\png.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\pngconf.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\pngdebug.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\pnginfo.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\pnglibconf.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\pngpriv.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\png\pngstruct.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\crc32.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\deflate.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\inffast.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\inffixed.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\inflate.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\inftrees.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\trees.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\zconf.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\zlib.h" />
<ClInclude Include="..\..\ExternalLibs\glpng\zlib\zutil.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\backends.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\bitrate.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\codebook.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\codec_internal.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\envelope.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\highlevel.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lookup.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lookup_data.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lpc.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lsp.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\masking.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\mdct.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\misc.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\os.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\psy.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\registry.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\scales.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\smallft.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\window.h" />
<ClInclude Include="..\..\ExternalLibs\freetype2\src\base\ftbase.h" />
<ClInclude Include="..\..\ExternalLibs\glfont2\glfont2.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lapi.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lauxlib.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lcode.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\ldebug.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\ldo.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lfunc.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lgc.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\llex.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\llimits.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lmem.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lobject.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lopcodes.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lparser.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lstate.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lstring.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\ltable.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\ltm.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lua.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\luaconf.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lualib.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lundump.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lvm.h" />
<ClInclude Include="..\..\ExternalLibs\lua-5.1.4\src\lzio.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFS.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSArchiveLoader.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSAtomic.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSBase.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSDefines.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSDir.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSFile.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSFileFuncs.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSHashmap.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSHelper.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSInternal.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSLoader.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSSelfRefCounter.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs\VFSTools.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs_zip\miniz.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs_zip\VFSDirZip.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs_zip\VFSFileZip.h" />
<ClInclude Include="..\..\ExternalLibs\ttvfs_zip\VFSZipArchiveLoader.h" />
<ClInclude Include="..\..\ExternalLibs\algorithmx.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTBBox.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTBitmapGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTCharmap.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTCharToGlyphIndexMap.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTContour.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTExtrdGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTFace.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGL.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGLBitmapFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGLExtrdFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGLOutlineFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGLPixmapFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGLPolygonFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGLTextureFont.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTGlyphContainer.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTLibrary.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTList.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTOutlineGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTPixmapGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTPoint.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTPolyGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTSize.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTTextureGlyph.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTVector.h" />
<ClInclude Include="..\..\ExternalLibs\FTGL\include\FTVectoriser.h" />
<ClInclude Include="..\..\ExternalLibs\AL\include\al.h" />
<ClInclude Include="..\..\ExternalLibs\AL\include\alc.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\include\vorbis\codec.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\include\vorbis\vorbisenc.h" />
<ClInclude Include="..\..\ExternalLibs\libvorbis-1.3.3\include\vorbis\vorbisfile.h" />
<ClInclude Include="..\..\ExternalLibs\libogg-1.3.0\include\ogg\ogg.h" />
<ClInclude Include="..\..\ExternalLibs\libogg-1.3.0\include\ogg\os_types.h" />
<ClInclude Include="..\..\ExternalLibs\gl\gl.h" />
<ClInclude Include="..\..\ExternalLibs\gl\gles.h" />
<ClInclude Include="..\..\ExternalLibs\gl\glext.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\begin_code.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\close_code.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_active.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_audio.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_byteorder.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_cdrom.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_config.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_cpuinfo.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_endian.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_error.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_events.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_getenv.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_joystick.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_keyboard.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_keysym.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_loadso.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_main.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_mouse.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_mutex.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_name.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_net.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_opengl.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_platform.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_quit.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_rwops.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_stdinc.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_syswm.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_thread.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_timer.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_types.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_version.h" />
<ClInclude Include="..\..\ExternalLibs\SDL12\include\SDL_video.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\ExternalLibs\DeflateCompressor.cpp" />
<ClCompile Include="..\..\ExternalLibs\FileAPI.cpp" />
<ClCompile Include="..\..\ExternalLibs\minihttp.cpp" />
<ClCompile Include="..\..\ExternalLibs\tinyxml.cpp" />
<ClCompile Include="..\..\ExternalLibs\tinyxmlerror.cpp" />
<ClCompile Include="..\..\ExternalLibs\tinyxmlparser.cpp" />
<ClCompile Include="..\..\ExternalLibs\glpng\glpng.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\png.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngerror.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngget.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngmem.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngpread.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngread.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngrio.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngrtran.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngrutil.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngset.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\png\pngtrans.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\adler32.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\compress.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\crc32.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\deflate.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\infback.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\inffast.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\inflate.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\inftrees.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\trees.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\uncompr.c" />
<ClCompile Include="..\..\ExternalLibs\glpng\zlib\zutil.c" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTBitmapGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTCharmap.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTContour.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTExtrdGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTFace.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGLBitmapFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGLExtrdFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGLOutlineFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGLPixmapFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGLPolygonFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGLTextureFont.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTGlyphContainer.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTLibrary.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTOutlineGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTPixmapGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTPoint.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTPolyGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTSize.cpp" />
<ClCompile Include="..\..\ExternalLibs\FTGL\src\FTTextureGlyph.cpp" />
<ClCompile Include="..\..\ExternalLibs\libogg-1.3.0\src\bitwise.c" />
<ClCompile Include="..\..\ExternalLibs\libogg-1.3.0\src\framing.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\analysis.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\bitrate.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\block.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\codebook.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\envelope.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\floor0.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\floor1.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\info.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lookup.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lpc.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\lsp.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\mapping0.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\mdct.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\psy.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\registry.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\res0.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\sharedbook.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\smallft.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\synthesis.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\vorbisenc.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\vorbisfile.c" />
<ClCompile Include="..\..\ExternalLibs\libvorbis-1.3.3\lib\window.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\autofit\autofit.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\bdf\bdf.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\cff\cff.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftapi.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftbase.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftbbox.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftbdf.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftbitmap.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\cache\ftcache.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftcid.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftdebug.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftfstype.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftgasp.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftglyph.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftgxval.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\gzip\ftgzip.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftinit.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftlcdfil.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\lzw\ftlzw.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftmm.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftotval.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftpatent.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftpfr.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftstroke.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftsynth.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftsystem.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\fttype1.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftwinfnt.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\base\ftxf86.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\pcf\pcf.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\pfr\pfr.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\psaux\psaux.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\pshinter\pshinter.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\psnames\psmodule.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\raster\raster.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\sfnt\sfnt.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\smooth\smooth.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\truetype\truetype.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\type1\type1.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\cid\type1cid.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\type42\type42.c" />
<ClCompile Include="..\..\ExternalLibs\freetype2\src\winfonts\winfnt.c" />
<ClCompile Include="..\..\ExternalLibs\glfont2\glfont2.cpp" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lapi.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lauxlib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lbaselib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lcode.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ldblib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ldebug.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ldo.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ldump.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lfunc.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lgc.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\linit.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\liolib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\llex.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lmathlib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lmem.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\loadlib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lobject.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lopcodes.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\loslib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lparser.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lstate.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lstring.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lstrlib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ltable.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ltablib.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\ltm.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lundump.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lvm.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\lzio.c" />
<ClCompile Include="..\..\ExternalLibs\lua-5.1.4\src\print.c" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSAtomic.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSBase.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSDir.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSFile.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSFileFuncs.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSHelper.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSLoader.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs\VFSTools.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs_zip\miniz.c" />
<ClCompile Include="..\..\ExternalLibs\ttvfs_zip\VFSDirZip.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs_zip\VFSFileZip.cpp" />
<ClCompile Include="..\..\ExternalLibs\ttvfs_zip\VFSZipArchiveLoader.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -212,6 +212,10 @@
RelativePath="..\..\BBGE\BaseText.h"
>
</File>
<File
RelativePath="..\..\BBGE\bithacks.h"
>
</File>
<File
RelativePath="..\..\BBGE\BitmapFont.cpp"
>
@ -332,6 +336,14 @@
RelativePath="..\..\BBGE\MathFunctions.h"
>
</File>
<File
RelativePath="..\..\BBGE\MemoryAllocatorSmallBlock.cpp"
>
</File>
<File
RelativePath="..\..\BBGE\MemoryAllocatorSmallBlock.h"
>
</File>
<File
RelativePath="..\..\BBGE\MT.cpp"
>