1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/* simview.c
*
* Copyright (c) 2001,2002 Hansjrg Malthaner
* hansjoerg.malthaner@gmx.de
*
*
* This file may be copied and modified freely so long as the above credits,
* this paragraph, and the below disclaimer of warranty are retained; no
* financial profit is derived from said modification or copying; and all
* licensing rights to any modifications are granted to the original author,
* Hansjrg Malthaner.
*
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "simview.h"
#include "world_view.h"
#include "world_adaptor.h"
#include "simgraph.h"
/**
* Draws the full iso-view display
* @author Hj. Malthaner
*/
void display()
{
const int IMG_SIZE = display_get_tile_size();
const int const_x_off = display_get_width()/2 + get_x_off();
const int dpy_width = display_get_width()/IMG_SIZE + 2;
const int dpy_height = (display_get_height()*4)/IMG_SIZE;
const int i_off = get_i_off();
const int j_off = get_j_off();
int x,y;
// puts("displaying");
// Hajo: draw grounds first
for(y=-5; y<dpy_height+10; y++) {
const int ypos = y*IMG_SIZE/4+16 + get_y_off();
for(x=-dpy_width + (y & 1); x<=dpy_width+2; x+=2) {
const int i = ((y+x) >> 1) + i_off;
const int j = ((y-x) >> 1) + j_off;
const int xpos = x*IMG_SIZE/2 + const_x_off;
display_boden(i, j, xpos, ypos);
}
}
// Hajo: then draw the objects
for(y=-5; y<dpy_height+10; y++) {
const int ypos = y*IMG_SIZE/4+16 + get_y_off();
for(x=-dpy_width + (y & 1); x<=dpy_width+2; x+=2) {
const int i = ((y+x) >> 1) + i_off;
const int j = ((y-x) >> 1) + j_off;
const int xpos = x*IMG_SIZE/2 + const_x_off;
display_dinge(i, j, xpos, ypos);
}
}
}
|