Erwan
- Added crude possibility to search for the library (see Diabolic tutor)
This commit is contained in:
@@ -74,99 +74,7 @@ int PlayGuiObjectController::getClosestItem(int direction, float tolerance){
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
int PlayGuiObjectController::getClosestItem(int direction, float tolerance){
|
||||
if (mCount == 0){
|
||||
return -1;
|
||||
}
|
||||
if (mCount == 1){
|
||||
return mCurr;
|
||||
}
|
||||
|
||||
float MaxTolerance = SCREEN_HEIGHT;
|
||||
PlayGuiObject * current = (PlayGuiObject *)mObjects[mCurr];
|
||||
int found = 0;
|
||||
int closest_match_id = -1;
|
||||
for (int i=0;i<mCount;i++){
|
||||
fprintf(stderr, "distance STEP 3-%i\n", i);
|
||||
if (i != mCurr){ //Don't wanna return the same object as currently selected
|
||||
if (closest_match_id == -1){
|
||||
closest_match_id = i;
|
||||
}
|
||||
if (mObjects[i]!=NULL){
|
||||
float x0, y0, x1, y1,closest;
|
||||
PlayGuiObject * closest_match = (PlayGuiObject *)mObjects[closest_match_id];
|
||||
PlayGuiObject * other = (PlayGuiObject *) mObjects[i];
|
||||
fprintf(stderr, "distance STEP 4-%i\n", i);
|
||||
switch(direction){
|
||||
case DIR_DOWN:
|
||||
x0 = current->x;
|
||||
y0 = current->y;
|
||||
x1 = other->x;
|
||||
y1 = other->y;
|
||||
closest = closest_match->y - y0;
|
||||
break;
|
||||
case DIR_UP:
|
||||
x0 = current->x;
|
||||
y0 = other->y;
|
||||
x1 = other->x;
|
||||
y1 = current->y;
|
||||
closest = y1 - closest_match->y;
|
||||
break;
|
||||
case DIR_LEFT:
|
||||
MaxTolerance = SCREEN_WIDTH;
|
||||
x0 = current->y;
|
||||
y1 = current->x;
|
||||
x1 = other->y;
|
||||
y0 = other->x;
|
||||
closest = y1 - closest_match->x;
|
||||
break;
|
||||
case DIR_RIGHT:
|
||||
MaxTolerance = SCREEN_WIDTH;
|
||||
x0 = current->y;
|
||||
fprintf(stderr, "distance STEP 401\n");
|
||||
|
||||
y0 = current->x;
|
||||
fprintf(stderr, "distance STEP 402\n");
|
||||
x1 = other->y;
|
||||
fprintf(stderr, "distance STEP 403\n");
|
||||
y1 = other->x;
|
||||
fprintf(stderr, "distance STEP 404\n");
|
||||
closest = closest_match->x - y0;
|
||||
fprintf(stderr, "distance STEP 405\n");
|
||||
break;
|
||||
}
|
||||
fprintf(stderr, "distance STEP 5\n");
|
||||
float distance = y1-y0;
|
||||
float lateral_distance = fabs(x1-x0);
|
||||
fprintf(stderr, "distance STEP 6 \n");
|
||||
if (lateral_distance < tolerance){
|
||||
fprintf(stderr, "distance STEP 7\n");
|
||||
if (distance > 0 && (!found || (distance < closest && closest > 0 ))){
|
||||
|
||||
found = 1;
|
||||
closest_match_id = i;
|
||||
fprintf(stderr, "distance STEP 8\n");
|
||||
}
|
||||
}
|
||||
}// if (mObjects[i]!=NULL)
|
||||
}
|
||||
}
|
||||
if (!found){
|
||||
fprintf(stderr, "NOT FOUND !\n");
|
||||
if (tolerance < MaxTolerance){
|
||||
fprintf(stderr, "distance STEP 9\n");
|
||||
return getClosestItem(direction, tolerance + 5);
|
||||
}else{
|
||||
fprintf(stderr, "Closest Match ID: %i\n", mCurr);
|
||||
return mCurr;
|
||||
}
|
||||
}
|
||||
fprintf(stderr, "Closest Match ID: %i\n", closest_match_id);
|
||||
return closest_match_id;
|
||||
|
||||
}
|
||||
*/
|
||||
void PlayGuiObjectController::Update(float dt){
|
||||
last_user_move +=dt;
|
||||
for (int i=0;i<mCount;i++){
|
||||
|
||||
Reference in New Issue
Block a user