int aliens_move() { animation_next(invaders->small_alien); animation_next(invaders->medium_alien); animation_next(invaders->large_alien); if(invaders->head == NULL) return -1; alien* iterator = invaders->head; if ((direction == -1 && invaders->leftmost->x + direction * ALIEN_X_DELTA < PLACEHOLDER_LEFT_BORDER) || (direction == 1 && invaders->rightmost->x + invaders->rightmost->width + ALIEN_X_DELTA > PLACEHOLDER_RIGHT_BORDER)) { if (invaders->last->y + invaders->last->height + ALIEN_Y_DELTA > PLACEHOLDER_SHIELD_LINE) { return -1; } do { alien_move(iterator, 0, ALIEN_Y_DELTA); iterator = iterator->next; } while (iterator != NULL); direction = (-1) * direction; } else do { alien_move(iterator, direction * ALIEN_X_DELTA, 0); iterator = iterator->next; } while (iterator != NULL); return 0; }
JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_animationNext (JNIEnv *, jobject) { return animation_next(); }