Merge branch 'master' of github.com:Allanis/LibD
This commit is contained in:
commit
2de0088860
@ -64,9 +64,47 @@ void AABB::CreateAABBFromSprite(const char* filename) {
|
||||
// Find the min, look through until we find a first instance of a white color.
|
||||
bool found = false;
|
||||
int color = 0;
|
||||
DWORD* pixels = (DWORD*)screen->pixels;
|
||||
|
||||
for(int width = 0; width < _sprite->GetWidth(); width++) {
|
||||
for(int height = 0; height < _sprite->GetHeight(); height++) {
|
||||
DWORD offset;
|
||||
// FUCKING PAIN IN THE ASS MOTHERFUCKER!!!!
|
||||
DWORD offset = height * screen->pitch + width;
|
||||
if(((DWORD)pixels[offset]) != 0 && !found) {
|
||||
_min = Vec2((float)width, (float)height);
|
||||
found = true;
|
||||
color = ((DWORD)pixels[offset]);
|
||||
// Break out of these god forsaken loops.
|
||||
width = _sprite->GetWidth();
|
||||
height = _sprite->GetHeight();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Let's try to find the max.x now..
|
||||
_max.x = (float)_sprite->GetWidth();
|
||||
found = false;
|
||||
for(int width = (int)_min.x; width < _sprite->GetWidth(); width++) {
|
||||
DWORD offset = _min.y * screen->pitch + width;
|
||||
if(((DWORD)pixels[offset] != color && !found)) {
|
||||
found = true;
|
||||
_max.x = (float)width;
|
||||
}
|
||||
}
|
||||
|
||||
// Now for the max.y
|
||||
_max.y = (float)_sprite->GetHeight();
|
||||
found = false;
|
||||
for(int height = (int)_min.y; height < _sprite->GetWidth(); height++) {
|
||||
DWORD offset = (DWORD)(height * screen->pitch + _min.x);
|
||||
if(((DWORD)pixels[offset]) != color && !found) {
|
||||
found = true;
|
||||
_max.y = (float)height;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_staticMax = _max;
|
||||
_staticMin = _min;
|
||||
delete _sprite;
|
||||
_sprite = 0;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include "../Math/Vec2.h"
|
||||
#include "../Sprite/Sprite.h"
|
||||
#include "../Global/Globals.h"
|
||||
|
||||
/*
|
||||
* The axis aligned bounding box contains
|
||||
|
Loading…
Reference in New Issue
Block a user