windmill-gint/src/map.cpp

1428 lines
33 KiB
C++

//-----------------------------------------------------------------------------
//
// MAP
//
// fichier ou sont enregistres les sprites, les textures, et les objets
//
//
// Ce fichier est compilé avec -Wp,-w et -Wno-missing-field-initializers.
//
//-----------------------------------------------------------------------------
#include "windmill.hpp"
// SPRITES
const unsigned char sprite_brique_base[]={
0xff,0xff,0xff,0xff,
0xa0,0x80,0x81,0x80,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0xff,0xff,0xff,0xff,
0x08,0x08,0x08,0x08,
0x0c,0x08,0x08,0x08,
0x0a,0x08,0x08,0x88,
0xff,0xff,0xff,0xff,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0xff,0xff,0xff,0xff,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x18,
0x08,0x08,0x08,0x10,
0xff,0xff,0xff,0xff,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0x80,0x88,0x80,0x80,
0xff,0xf7,0xff,0xff,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x0c,
0x88,0x08,0x08,0x08,
0xff,0xff,0xff,0xff,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0xff,0xff,0xff,0xff,
0xdd,0xdc,0xdd,0xfd,
0xdd,0xdd,0xdd,0xdd,
0xff,0xff,0xff,0xff,
};
const unsigned char sprite_brique[]={
0x80,0x80,0x80,0x80,
0xa0,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0xff,0xff,0xff,0xff,
0x08,0x08,0x08,0x18,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x08,
0xff,0xff,0xff,0xff,
0x80,0xc0,0x80,0x80,
0x80,0x80,0x80,0x80,
0x80,0x80,0x81,0x80,
0xff,0xff,0xfe,0xff,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x18,
0x08,0x08,0x08,0x28,
0xff,0xff,0xff,0xff,
0x81,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,
0xff,0xff,0xff,0xff,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x18,
0xff,0xff,0xff,0xff,
0x80,0x80,0x80,0x80,
0x80,0x80,0xc0,0x80,
0x88,0x80,0xa0,0x80,
0xf7,0xff,0xff,0xff,
0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x18,
0x08,0x08,0x48,0x08,
0xff,0xff,0xff,0xff,
};
const unsigned char sprite_toit_tuile[]={
0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,
0x08,0x88,0x84,0x41,
0x08,0x88,0x84,0x41,
0x08,0x8c,0x8c,0x41,
0x09,0x88,0x88,0x41,
0x19,0x08,0x88,0x41,
0x1d,0x18,0x8c,0x41,
0xf7,0xb7,0xf6,0xe3,
0x22,0xe6,0x33,0xbe,
0x22,0x42,0x11,0x10,
0x22,0x42,0x11,0x10,
0x32,0x46,0x11,0x10,
0x1e,0x65,0x39,0xd8,
0xe5,0xdd,0xef,0x7d,
0x84,0x84,0x44,0x27,
0x84,0x84,0x44,0x21,
0x8c,0x84,0x46,0x21,
0xdc,0xcc,0x66,0x21,
0x77,0xde,0xf7,0x73,
0x42,0x73,0x9d,0xde,
0x42,0x21,0x08,0x88,
0x42,0x21,0x08,0x88,
0x42,0x21,0x08,0x88,
0x47,0x21,0x0d,0xdc,
0xfd,0xf3,0x15,0x77,
0x99,0x9e,0xf7,0x21,
0x08,0x84,0x42,0x21,
0x08,0x84,0x42,0x21,
0x88,0x84,0x42,0x21,
0x8d,0xcc,0xe6,0x73,
0xff,0xff,0xff,0xff,
};
const unsigned char sprite_paille[]={
0x5a,0x95,
0x58,0x95,
0x5a,0x95,
0x5e,0xd5,
0xd2,0xd0,
0xd3,0x59,
0x93,0x59,
0x37,0x49,
0x36,0x49,
0x26,0x49,
0x24,0xcb,
0xa4,0xeb,
0xa9,0xaa,
0xe9,0xaa,
0x69,0xaa,
0x49,0x8a,
};
const unsigned char sprite_paille_dessus[]={
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
0x88,0x88,
0x22,0x22,
};
const unsigned char sprite_mur_moulin[]={
0x81,0x02,0x08,0x73,
0x81,0x02,0x08,0x4d,
0x81,0x02,0x08,0x41,
0x81,0x02,0x08,0x41,
0x81,0x02,0x08,0x41,
0x81,0x02,0x08,0x41,
0x81,0x02,0x09,0xc1,
0x81,0x1e,0x0e,0x41,
0x81,0xe2,0x08,0x41,
0x81,0x02,0x08,0x41,
0x81,0x02,0x08,0x41,
0x81,0x02,0x48,0x41,
0x81,0x02,0xa8,0x41,
0x81,0x03,0x18,0x79,
0x81,0x02,0x08,0x47,
0x81,0x02,0x08,0x41,
0xf9,0x02,0x08,0x41,
0x87,0x04,0x08,0x21,
0x81,0x04,0x08,0x21,
0x81,0x04,0x08,0x21,
0x81,0x04,0x08,0x21,
0x81,0x04,0x0e,0x61,
0x81,0x04,0x09,0xa1,
0x81,0x04,0x08,0x21,
0x81,0x04,0x08,0x21,
0x81,0x3c,0x08,0x21,
0x81,0xc4,0x08,0x21,
0x81,0x04,0x08,0x21,
0x81,0x04,0x08,0x31,
0x99,0x04,0x08,0x2f,
0xe7,0x04,0x08,0x21,
0x81,0x07,0xf8,0x21,
};
const unsigned char sprite_pale_moulin[]={
0xff,0xff,
0x87,0xe1,
0x87,0xe1,
0x8f,0xf1,
0x8f,0xf1,
0x9b,0xd9,
0x9b,0xd9,
0xb3,0xcd,
0xb3,0xcd,
0xe7,0xe7,
0xe7,0xe7,
0xc7,0xe3,
0xff,0xff,
0xc7,0xe3,
0xc7,0xe3,
0xc7,0xe3,
0xc7,0xe3,
0xc7,0xe3,
0xc5,0xa3,
0xcd,0xb3,
0xcd,0xb3,
0xff,0xff,
0xcd,0xb3,
0xcd,0xb3,
0xcd,0xb3,
0xcd,0xb3,
0xcd,0xb3,
0xd9,0x9b,
0xff,0xff,
0xd9,0x9b,
0xd9,0x9b,
0xd9,0x9b,
0xd9,0x9b,
0xd9,0x9b,
0xd9,0x9b,
0xd9,0x9b,
0xd1,0x8b,
0xff,0xff,
0xf1,0x8f,
0xf1,0x8f,
0xf1,0x8f,
0xf1,0x8f,
0xf1,0x8f,
0xf1,0x8f,
0xf1,0x8f,
0xff,0xff,
0xe1,0x87,
0xe1,0x87,
0xe1,0x87,
0xe1,0x87,
0xe1,0x87,
0xe1,0x87,
0xe1,0x87,
0xe1,0x87,
0xff,0xff,
0xc1,0x83,
0xc1,0x83,
0xc1,0x83,
0xc1,0x83,
0xc1,0x83,
0xc1,0x83,
0xff,0xff,
0xff,0xff,
0xff,0xff,
};
const unsigned char sprite_fenetre_simple[]={
0xff,0xff,
0xc1,0x03,
0xc1,0x03,
0xc1,0x03,
0xc1,0x03,
0xff,0xff,
0xc1,0x03,
0xc1,0x03,
0xc1,0x03,
0xff,0xff,
0xc1,0x03,
0xc1,0x03,
0xc1,0x03,
0xc1,0x03,
0xff,0xff,
0xff,0xff,
};
const unsigned char sprite_porte_simple[]={
0xff,0xff,
0x80,0x01,
0x80,0x01,
0xff,0xff,
0xff,0xff,
0xe0,0x07,
0xc9,0x43,
0xc9,0x4b,
0xc9,0x4b,
0xc1,0x0b,
0xc9,0x0b,
0xc9,0x4b,
0xc9,0x43,
0xc8,0x43,
0xc8,0x4b,
0xc9,0x4b,
0xc1,0x03,
0xc9,0x3b,
0xc9,0x3b,
0xc9,0x2b,
0xc9,0x13,
0xc9,0x03,
0xc8,0x03,
0xc8,0x43,
0xc8,0x43,
0xc9,0x4b,
0xc1,0x4b,
0xc9,0x4b,
0xc9,0x4b,
0xc9,0x0b,
0xc0,0x03,
0xff,0xff,
};
const unsigned char sprite_pierre_eglise[]={
0xe0,0x00,0x00,0x07,
0x20,0x00,0x00,0x04,
0xe0,0x00,0x00,0x07,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0xe0,0x00,0x00,0x07,
0x20,0x00,0x00,0x04,
0xe0,0x00,0x00,0x07,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0xe0,0x00,0x00,0x07,
0x20,0x00,0x00,0x04,
0xe0,0x00,0x00,0x07,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
};
const unsigned char sprite_pierre_eglise2[]={
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0xe0,0x00,0x00,0x07,
0x20,0x00,0x00,0x04,
0xe0,0x00,0x00,0x07,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0xe0,0x00,0x00,0x07,
0x20,0x00,0x00,0x04,
0xe0,0x00,0x00,0x07,
0x40,0x00,0x00,0x02,
0x40,0x00,0x00,0x02,
0xe0,0x00,0x00,0x07,
0x20,0x00,0x00,0x04,
0xe0,0x00,0x00,0x07,
};
const unsigned char sprite_horloge[]={
0x00,0x7f,0xfe,0x00,
0x01,0x80,0x01,0x80,
0x06,0x02,0xc0,0x60,
0x08,0x82,0x41,0x10,
0x10,0x02,0x80,0x08,
0x24,0x02,0xc0,0x24,
0x20,0x00,0x00,0x04,
0x40,0x00,0x00,0x02,
0x50,0x00,0x00,0x0a,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x90,0x00,0x00,0x0d,
0xa8,0x01,0x80,0x05,
0x98,0x01,0x80,0x0d,
0x88,0x00,0x00,0x05,
0x90,0x00,0x00,0x0d,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x50,0x00,0x00,0x12,
0x40,0x00,0x00,0x02,
0x20,0x01,0x00,0x04,
0x24,0x02,0x00,0x24,
0x10,0x03,0x00,0x08,
0x08,0x82,0x81,0x10,
0x06,0x01,0x00,0x60,
0x01,0x80,0x01,0x80,
0x00,0x7f,0xfe,0x00,
};
const unsigned char sprite_porte_eglise[]={
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x3f,0xfc,0x00,
0x00,0xc0,0x83,0x00,
0x03,0x05,0x28,0xc0,
0x04,0x90,0x03,0x20,
0x0a,0x41,0x20,0x10,
0x10,0x10,0x0a,0xa8,
0x23,0x12,0x10,0x04,
0x24,0x00,0x44,0x24,
0x50,0xbf,0xfc,0x92,
0x44,0xff,0xff,0x12,
0x93,0xc1,0x83,0xc5,
0xd7,0x01,0x80,0xe1,
0x9c,0x01,0x80,0x35,
0xf8,0x01,0x80,0x19,
0xb0,0x01,0x80,0x0d,
0xa0,0x01,0x80,0x05,
0xe0,0x01,0x80,0x07,
0xc0,0x01,0x80,0x83,
0xc0,0x81,0x80,0x03,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x82,0x01,
0x80,0x01,0x82,0x01,
0xc0,0x01,0x82,0x03,
0xc0,0x01,0x80,0x03,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x81,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x1d,0xb8,0x01,
0x80,0x09,0x90,0x01,
0x80,0x15,0xa8,0x01,
0x80,0x09,0x90,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0xf1,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0xc0,0x01,0x80,0x03,
0xc0,0x01,0x80,0x03,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,
0xff,0xff,0xff,0xff,
};
const unsigned char sprite_planche_bois[]={
0x81,0x04,0x08,0x20,
0xff,0x04,0x08,0x20,
0x81,0x04,0x08,0x20,
0xa5,0x04,0x08,0x20,
0x81,0x04,0x08,0x20,
0x81,0x04,0x0a,0xa0,
0x81,0x54,0x08,0x20,
0x81,0x04,0x0f,0xe0,
0x81,0xfc,0x08,0x20,
0x81,0x04,0x0a,0xa0,
0x81,0x54,0x08,0x20,
0x81,0x05,0x28,0x2a,
0x81,0x04,0x08,0x20,
0x81,0x07,0xf8,0x3f,
0x81,0x04,0x08,0x20,
0xa5,0x05,0x28,0x24,
0x81,0x04,0x08,0x20,
0xff,0x04,0x08,0x20,
0x81,0x04,0x08,0x20,
0xa5,0x04,0x0a,0x20,
0x81,0x04,0x08,0x20,
0x81,0x04,0x0f,0xe0,
0x81,0x04,0x08,0x20,
0x81,0x54,0x0a,0xaa,
0x81,0x04,0x08,0x20,
0x81,0xfc,0x08,0x3f,
0x81,0x04,0x08,0x20,
0x81,0x04,0x08,0x2a,
0x81,0x04,0x08,0x20,
0x81,0x05,0x28,0x20,
0x81,0x04,0x08,0x20,
0xa5,0x07,0xf8,0x20,
};
const unsigned char sprite_haie[]={
0x80,0x01,
0xff,0xff,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0xff,0xff,
0x80,0x01,
0x80,0x01,
};
const unsigned char sprite_epouvantail[]={
0x00,0x00,
0x03,0x8c,
0x06,0xd0,
0x04,0x20,
0x0f,0xf0,
0x04,0x20,
0x04,0x20,
0x06,0x60,
0x03,0xc0,
0x01,0x80,
0xe1,0x80,
0xff,0xfc,
0x3f,0xff,
0x04,0x23,
0x04,0xa0,
0x04,0xa0,
0x04,0x20,
0x06,0x20,
0x04,0x20,
0x04,0x20,
0x05,0x20,
0x04,0x20,
0x04,0x60,
0x04,0xa0,
0x07,0xe0,
0x03,0xc0,
0x03,0xc0,
0x03,0xc0,
0x01,0x80,
0x01,0x80,
0x01,0x80,
0x01,0x80,
};
const unsigned char sprite_epouvantail_masque[]={
0x00,0x00,
0x03,0x8c,
0x07,0xd0,
0x07,0xe0,
0x0f,0xf0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x03,0xc0,
0x01,0x80,
0xe1,0x80,
0xff,0xfc,
0x3f,0xff,
0x07,0xe3,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x07,0xe0,
0x03,0xc0,
0x03,0xc0,
0x03,0xc0,
0x01,0x80,
0x01,0x80,
0x01,0x80,
0x01,0x80,
};
const unsigned char sprite_herbe[]={
0x08,0x00,
0x48,0x20,
0x49,0x22,
0x44,0x92,
0x44,0x94,
0x25,0x15,
0x25,0x15,
0x25,0x15,
};
const unsigned char sprite_panneau[]={
0xff,0xff,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x92,0xb1,
0xb5,0x95,
0x94,0xb5,
0x80,0x01,
0x80,0x01,
0x95,0x6d,
0x95,0x45,
0xa2,0x65,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0xff,0xff,
};
const unsigned char sprite_mur_int_maison[]={
0xff,0xff,
0x98,0x19,
0xb0,0x0d,
0xe0,0x07,
0xc0,0x03,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0xff,0xff,
0xff,0xff,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0x91,0x11,
0xff,0xff,
};
const unsigned char sprite_planche[]={
0xff,0xff,0xff,0xff,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x04,0x00,0x81,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x80,0x01,
0x80,0x00,0x00,0x01,
0x82,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x41,
0x80,0x00,0x00,0x01,
0xff,0xff,0xff,0xff,
};
const unsigned char sprite_exemple[]={
0xff,0xff,0xff,0xff,
0x87,0xff,0xfc,0x01,
0xb4,0x00,0x05,0xfd,
0xb4,0x00,0x05,0xfd,
0x84,0x00,0x04,0x01,
0xfc,0x00,0x07,0xff,
0xc0,0x00,0x00,0x01,
0xc0,0xfc,0x00,0x01,
0xc3,0x86,0x00,0x01,
0xcc,0x03,0x00,0x01,
0xc9,0x99,0x00,0x01,
0xc9,0x99,0x07,0xff,
0xc8,0x01,0x04,0x01,
0xc8,0x01,0x04,0x01,
0xc8,0xf1,0x04,0x01,
0xcc,0x62,0xff,0xff,
0xc6,0x06,0x80,0x21,
0xc3,0xfc,0x80,0x21,
0xc0,0x00,0x80,0x21,
0xc0,0x00,0xff,0xff,
0xc0,0x00,0x04,0x01,
0xc0,0x00,0x04,0x01,
0xc0,0x00,0x04,0x01,
0xc0,0x00,0x07,0xff,
0xc0,0x00,0x00,0x01,
0xc0,0x00,0x80,0x01,
0xfc,0x01,0xc0,0x3f,
0xc4,0x03,0xe0,0x3f,
0xa4,0x07,0x70,0x33,
0x94,0x0e,0x38,0x33,
0x8f,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,
};
/*
const unsigned char sprite_mur_colombage[]={
0xff,0xff,0xff,0xff,
0xc0,0x00,0x00,0x03,
0xc0,0x00,0x00,0x03,
0xe0,0x00,0x00,0x07,
0xe0,0x3f,0xfc,0x07,
0xe0,0x20,0x84,0x07,
0xb0,0x20,0x84,0x0d,
0xb0,0x20,0x84,0x0d,
0xb0,0x20,0x84,0x0d,
0x98,0x20,0x84,0x19,
0x98,0x3f,0xfc,0x19,
0x98,0x20,0x84,0x19,
0x8c,0x20,0x84,0x31,
0x8c,0x20,0x84,0x31,
0xff,0xe0,0x87,0xff,
0xff,0xe0,0x87,0xff,
0x86,0x20,0x84,0x61,
0x83,0x3f,0xfc,0xe1,
0x83,0x20,0x84,0xc1,
0x83,0x20,0x84,0xc1,
0x81,0xa0,0x85,0x81,
0x81,0xa0,0x85,0x81,
0x81,0xbf,0xfd,0x81,
0x80,0xc0,0x03,0x01,
0x80,0xc0,0x03,0x01,
0x80,0xc0,0x03,0x01,
0x80,0x60,0x06,0x01,
0x80,0x60,0x06,0x01,
0x80,0x60,0x06,0x01,
0x80,0x30,0x0c,0x01,
0x80,0x30,0x0c,0x01,
0xff,0xff,0xff,0xff,
};
const unsigned char sprite_plaque_egout[]={
0x07,0xe0,
0x18,0x18,
0x21,0x04,
0x40,0x02,
0x48,0x82,
0x80,0x01,
0x80,0x11,
0x82,0x21,
0x84,0x81,
0x80,0x21,
0x90,0x01,
0x41,0x02,
0x40,0x02,
0x20,0x04,
0x18,0x18,
0x07,0xe0,
};
const unsigned char sprite_pancarte_forgeron[]={
0xff,0xff,
0x80,0x01,
0x80,0x01,
0x80,0x01,
0xbf,0x81,
0xbf,0xfd,
0x9f,0xf9,
0x87,0xe1,
0x87,0xe1,
0x83,0xc1,
0x83,0xc1,
0x8f,0xf1,
0x9f,0xf9,
0x80,0x01,
0x80,0x01,
0xff,0xff,
};
const unsigned char sprite_comptoire[]={
0x88,0x88,
0x88,0x88,
0x88,0x88,
0x88,0x88,
0xaa,0xaa,
0x88,0x88,
0x88,0x88,
0x88,0x88,
};
const unsigned char sprite_trappe[]={
0xff,0xff,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x89,
0x88,0x09,
0x89,0xc9,
0x89,0x49,
0x89,0xc9,
0x88,0x09,
0xff,0xff,
};
const unsigned char sprite_arbre1[]={
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x07,0x80,0x00,
0x00,0x08,0x7c,0x00,
0x00,0x10,0x04,0x00,
0x03,0x60,0x0b,0x80,
0x04,0x80,0x04,0x40,
0x04,0x00,0x00,0x40,
0x04,0x00,0x00,0x20,
0x08,0x78,0x00,0x10,
0x14,0x07,0xc0,0x08,
0x12,0x00,0x00,0x04,
0x20,0x00,0x00,0x04,
0x40,0x00,0x00,0x06,
0x40,0x00,0x00,0xc6,
0x40,0x00,0x03,0x04,
0xe0,0x01,0x3c,0x04,
0xa0,0x01,0xc0,0x06,
0x9e,0x80,0x00,0x02,
0x83,0x80,0x00,0x02,
0x80,0x00,0x00,0x02,
0x80,0x00,0x00,0x02,
0x80,0x00,0x00,0x03,
0x80,0x00,0x00,0x05,
0x80,0x00,0x0c,0x05,
0x88,0x00,0x0c,0x1d,
0x88,0x1f,0x00,0x01,
0x4e,0x08,0x00,0x06,
0x70,0x00,0x00,0x01,
0x10,0x00,0x00,0x01,
0x60,0x00,0x00,0x01,
0x40,0x00,0x30,0x09,
0x50,0x00,0xc0,0x05,
0x50,0x00,0x00,0x0e,
0x40,0x00,0x00,0x08,
0x48,0x00,0x00,0x84,
0x74,0x00,0x00,0x04,
0x07,0x7f,0x80,0xf8,
0x00,0x89,0xff,0x80,
0x00,0x06,0x51,0x00,
0x00,0x05,0x50,0x80,
0x00,0x04,0x10,0x00,
0x00,0x04,0xd0,0x00,
0x00,0x04,0xd0,0x00,
0x00,0x04,0x10,0x00,
0x00,0x04,0x90,0x00,
0x00,0x05,0x30,0x00,
0x00,0x05,0x30,0x00,
0x00,0x05,0x30,0x00,
0x00,0x05,0x30,0x00,
0x00,0x04,0x10,0x00,
0x00,0x04,0x10,0x00,
0x00,0x06,0x10,0x00,
0x00,0x05,0x50,0x00,
0x00,0x04,0x50,0x00,
0x00,0x04,0x50,0x00,
0x00,0x04,0x90,0x00,
0x00,0x04,0x50,0x00,
0x00,0x04,0x30,0x00,
0x00,0x05,0x10,0x00,
0x00,0x05,0x10,0x00,
0x00,0x0f,0x78,0x00,
0x00,0x31,0xc4,0x00,
0x00,0x02,0x20,0x00,
};
const unsigned char mask_arbre1[]={
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x07,0x80,0x00,
0x00,0x0f,0xfc,0x00,
0x00,0x1f,0xfc,0x00,
0x03,0x7f,0xfb,0x80,
0x07,0xff,0xff,0xc0,
0x07,0xff,0xff,0xc0,
0x07,0xff,0xff,0xe0,
0x0f,0xff,0xff,0xf0,
0x1f,0xff,0xff,0xf8,
0x1f,0xff,0xff,0xfc,
0x3f,0xff,0xff,0xfc,
0x7f,0xff,0xff,0xfe,
0x7f,0xff,0xff,0xfe,
0x7f,0xff,0xff,0xfc,
0xff,0xff,0xff,0xfc,
0xff,0xff,0xff,0xfe,
0xff,0xff,0xff,0xfe,
0xff,0xff,0xff,0xfe,
0xff,0xff,0xff,0xfe,
0xff,0xff,0xff,0xfe,
0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,
0x7f,0xff,0xff,0xfe,
0x7f,0xff,0xff,0xff,
0x1f,0xff,0xff,0xff,
0x7f,0xff,0xff,0xff,
0x7f,0xff,0xff,0xff,
0x7f,0xff,0xff,0xff,
0x7f,0xff,0xff,0xfe,
0x7f,0xff,0xff,0xf8,
0x7f,0xff,0xff,0xfc,
0x77,0xff,0xff,0xfc,
0x07,0xff,0xff,0xf8,
0x00,0x8f,0xff,0x80,
0x00,0x07,0xf1,0x00,
0x00,0x07,0xf0,0x80,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x07,0xf0,0x00,
0x00,0x0f,0xf8,0x00,
0x00,0x31,0xc4,0x00,
0x00,0x02,0x20,0x00,
};
*/
// Personnages
const unsigned char sprite_forgeron[]={
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x07,0xc0,0x00,
0x00,0x18,0x30,0x00,
0x00,0x20,0x08,0x00,
0x00,0x2f,0xe8,0x00,
0x00,0x24,0x48,0x00,
0x00,0x25,0x48,0x00,
0x00,0x21,0x08,0x00,
0x00,0x20,0x08,0x00,
0x00,0x23,0x88,0x00,
0x00,0x30,0x18,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x1f,0xf0,0x00,
0x03,0xff,0xff,0xc0,
0x04,0x6f,0xe6,0x20,
0x08,0x63,0x86,0x10,
0x08,0x50,0x09,0x10,
0x08,0x90,0x09,0x10,
0x08,0x8f,0xf1,0x10,
0x08,0x80,0x03,0x90,
0x08,0xe1,0xfe,0x50,
0x08,0xfe,0x02,0x50,
0x08,0x80,0x03,0xd0,
0x08,0x01,0xfe,0x10,
0x08,0x0f,0xf0,0x10,
0x07,0xf0,0x0f,0xe0,
0x01,0x00,0x00,0x80,
0x01,0x00,0x00,0x80,
0x01,0x00,0x00,0x80,
0x01,0x00,0x00,0x80,
0x01,0x00,0x70,0x80,
0x01,0x00,0x70,0x80,
0x01,0x00,0x24,0x80,
0x01,0x10,0x28,0x80,
0x01,0x0f,0xf0,0x80,
0x02,0x00,0x00,0x40,
0x02,0x00,0x00,0x40,
0x02,0x00,0x10,0x40,
0x02,0x0c,0x60,0x40,
0x02,0x00,0x00,0x40,
0x03,0xff,0xff,0xc0,
0x00,0x42,0x42,0x00,
0x00,0x5a,0x5a,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x42,0x42,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x42,0x42,0x00,
0x00,0x5a,0x5a,0x00,
0x00,0x66,0x66,0x00,
0x00,0x66,0x66,0x00,
0x00,0x7e,0x7e,0x00,
};
const unsigned char mask_forgeron[]={
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x07,0xc0,0x00,
0x00,0x1f,0xf0,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x3f,0xf8,0x00,
0x00,0x1f,0xf0,0x00,
0x03,0xff,0xff,0xc0,
0x07,0xff,0xff,0xe0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x0f,0xff,0xff,0xf0,
0x07,0xff,0xff,0xe0,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x01,0xff,0xff,0x80,
0x03,0xff,0xff,0xc0,
0x03,0xff,0xff,0xc0,
0x03,0xff,0xff,0xc0,
0x03,0xff,0xff,0xc0,
0x03,0xff,0xff,0xc0,
0x03,0xff,0xff,0xc0,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
0x00,0x7e,0x7e,0x00,
};
// TEXTURE
Texture tex_white = {};
Texture tex_light = {};
Texture tex_dark = {};
Texture tex_black = {};
const Texture tex_brique_base = {sprite_brique_base, NULL, 32, 32, 30, 30, 0.5, false, false};
const Texture tex_brique = {sprite_brique, NULL, 32, 32, 30, 30, 0.5, false, false};
const Texture tex_toit_tuile = {sprite_toit_tuile, NULL, 32, 32, 15, 15, 0.5, false, false};
const Texture tex_paille = {sprite_paille, NULL, 16, 16, 10, 10, 0, false, false};
const Texture tex_paille_dessus = {sprite_paille_dessus, NULL, 16, 16, 10, 10, 0, false, false};
const Texture tex_mur_moulin = {sprite_planche_bois, NULL, 32, 32, 25, 25, 0.5, false, false};
const Texture tex_pale_moulin = {sprite_pale_moulin, NULL, 16, 64, 0, 0, 0.5, false, false};
const Texture tex_fenetre_simple = {sprite_fenetre_simple, NULL, 16, 16, 0, 0, 0, false, true};
const Texture tex_porte_simple = {sprite_porte_simple, NULL, 16, 32, 0, 0, 0, false, true};
const Texture tex_porte_entrepot = {sprite_planche_bois, NULL, 32, 32, 25, 25, 0, false, true};
const Texture tex_pierre_eglise = {sprite_pierre_eglise, NULL, 32, 16, 0, 15, 0, false, false};
const Texture tex_pierre_eglise2 = {sprite_pierre_eglise2, NULL, 32, 16, 0, 15, 0, false, false};
const Texture tex_horloge = {sprite_horloge, NULL, 32, 32, 0, 0, 0, false, true, false};
const Texture tex_porte_eglise = {sprite_porte_eglise, NULL, 32, 64, 0, 0, 0, false, true};
const Texture tex_planche_bois = {sprite_planche_bois, NULL, 32, 32, 15, 15, 0.5, false, false};
const Texture tex_haie = {sprite_haie, NULL, 16, 8, 20, 0, 0, true};
const Texture tex_epouvantail = {sprite_epouvantail, sprite_epouvantail_masque, 16, 32, 0, 0, 0, false};
const Texture tex_herbe = {sprite_herbe, NULL, 16, 8, 7, 0, 0, true};
const Texture tex_panneau = {sprite_panneau, NULL, 16, 16, 0, 0, 0, false, true};
const Texture tex_forgeron = {sprite_forgeron, mask_forgeron, 32, 64, 0, 0};
const Texture tex_mur_int_maison = {sprite_mur_int_maison, NULL, 16, 32, 15, 0};
const Texture tex_planche = {sprite_planche, NULL, 32, 16, 0, 0};
// MODELES
#define L1 20 // longueur extension X
#define W1 15 // largueur extension Y
#define H1 30 // hauteur mur Z
#define HT1 45 // hauteur toit nef Z
#define D 5 // decalage toit XY
#define L2 80 // longueur tour X
#define W2 20 // largeur tour X
#define H2 70 // hauteur mur tour Z
#define HT2 90 // hauteur toit tour Z
#define L3 (L1+(L2-L1)/2) // milieu toit tour X
const Modele modele_moulin[] = {
// les murs extension
{RECTANGLE, &tex_white, NULL, L1,W1,0, -L1,W1,0, L1,W1,H1},
{RECTANGLE, &tex_brique, NULL, -L1,W1,0, -L1,-W1,0, -L1,W1,H1},
{RECTANGLE, &tex_white, NULL, -L1,-W1,0, L1,-W1,0, -L1,-W1,H1},
// la tour
{RECTANGLE, &tex_mur_moulin, NULL, L2,-W2,0, L2,W2,0, L2,-W2,H2},
{RECTANGLE, &tex_mur_moulin, NULL, L2,W2,0, L1,W2,0, L2,W2,H2},
{RECTANGLE, &tex_mur_moulin, NULL, L1,W2,0, L1,-W2,0, L1,W2,H2},
{RECTANGLE, &tex_mur_moulin, NULL, L1,-W2,0, L2,-W2,0, L1,-W2,H2},
// prolongement mur nef jusqu au toit
{TRIANGLE, &tex_brique, NULL, -L1,W1,H1, -L1,-W1,H1, -L1,0,HT1},
// le toit de l extension
{RECTANGLE, &tex_paille, &tex_black, L1,W1+D,H1-3, -L1-D,W1+D,H1-3, L1,0,HT1},
{RECTANGLE, &tex_paille, &tex_black, -L1-D,-W1-D,H1-3, L1,-W1-D,H1-3, -L1-D,0,HT1},
// prolongement mur nef jusqu au toit
{TRIANGLE, &tex_mur_moulin, NULL, L2,W2,H2, L1,W2,H2, L3,W2,HT2},
{TRIANGLE, &tex_mur_moulin, NULL, L1,-W2,H2, L2,-W2,H2, L3,-W2,HT2},
// le toit de la tour
{RECTANGLE, &tex_toit_tuile, NULL, L2,-W2,H2, L2,W2,H2, L3,-W2,HT2},
{RECTANGLE, &tex_toit_tuile, NULL, L1,W2,H2, L1,-W2,H2, L3,W2,HT2},
};
#define A 3 // angle pale
const Modele modele_pale[] = {
{TRIANGLE, &tex_pale_moulin, &tex_pale_moulin, -21,-A,56, 21,A,56, 0,0,0},
{TRIANGLE, &tex_pale_moulin, &tex_pale_moulin, 47,-A,36, 60,A,-2, 0,0,0},
{TRIANGLE, &tex_pale_moulin, &tex_pale_moulin, 50,-A,-34, 17,A,-58, 0,0,0},
{TRIANGLE, &tex_pale_moulin, &tex_pale_moulin, -17,-A,-58, -50,A,-34, 0,0,0},
{TRIANGLE, &tex_pale_moulin, &tex_pale_moulin, -60,-A,-2, -47,A,37, 0,0,0},
};
#define L 40 // longueur X
#define W 20 // largueur Y
#define H 30 // hauteur mur Z
#define HT 55 // hauteur toit Z
#define D 5 // decalage toit XY
#define F1 10 // position X fenetre
#define F2 10 // position X fenetre
#define P -20 // position X fporte
const Modele modele_chaumiere[] = {
// les murs
{RECTANGLE, &tex_brique_base, NULL, L,-W,0, L,W,0, L,-W,H},
{RECTANGLE, &tex_white, NULL, L,W,0, -L,W,0, L,W,H},
{RECTANGLE, &tex_brique_base, NULL, -L,W,0, -L,-W,0, -L,W,H},
{RECTANGLE, &tex_white, NULL, -L,-W,0, L,-W,0, -L,-W,H},
// prolongement mur jusqu au toit
{TRIANGLE, &tex_brique, NULL, L,-W,H, L,W,H, L,0,HT},
{TRIANGLE, &tex_brique, NULL, -L,W,H, -L,-W,H, -L,0,HT},
// le toit
{RECTANGLE, &tex_paille, &tex_black, L+D,W+D,H-3, -L-D,W+D,H-3, L+D,0,HT},
{RECTANGLE, &tex_paille, &tex_black, -L-D,-W-D,H-3, L+D,-W-D,H-3, -L-D,0,HT},
// fenetre
{RECTANGLE, &tex_fenetre_simple, NULL, F1,W,8, F1-9,W,8, F1,W,25},
{RECTANGLE, &tex_fenetre_simple, NULL, F2,-W,8, F2+9,-W,8, F2,-W,25},
// porte
{RECTANGLE, &tex_porte_simple, NULL, P,W,0, P-12,W,0, P,W,25},
};
#define L 80 // longueur X
#define W 30 // largueur Y
#define H 35 // hauteur mur Z
#define HT 55 // hauteur toit Z
#define P -20 // position X fporte
const Modele modele_entrepot[] = {
// les murs
{RECTANGLE, &tex_brique, NULL, L,-W,0, L,W,0, L,-W,H},
{RECTANGLE, &tex_white, NULL, L,W,0, -L,W,0, L,W,HT},
{RECTANGLE, &tex_brique, NULL, -L,W,0, -L,-W,0, -L,W,H},
{RECTANGLE, &tex_white, NULL, -L,-W,0, L,-W,0, -L,-W,H},
// prolongement mur jusqu au toit
{TRIANGLE, &tex_white, NULL, L,-W,H, L,W,H, L,W,HT},
{TRIANGLE, &tex_white, NULL, -L,W,H, -L,-W,H, -L,W,HT},
// le toit
{RECTANGLE, &tex_paille, &tex_black, -L-D,-W-D,H-3, L+D,-W-D,H-3, -L-D,W+D,HT},
// porte
{RECTANGLE, &tex_planche_bois, NULL, P,W+2,0, P-35,W+2,0, P,W+1,40},
// glissiere
{RECTANGLE, &tex_black, NULL, P+35,W+2,0, P-40,W+2,0, P+35,W+1,1},
{RECTANGLE, &tex_black, NULL, P+35,W+2,40, P-40,W+2,40, P+35,W+1,41},
};
#define LN 50 // longueur nef X
#define WN 22 // largueur nef Y
#define HN 60 // hauteur mur nef Z
#define HNT 80 // hauteur toit nef Z
#define D 5 // decalage toit XY
#define LT 90 // longueur tour X
#define WT 28 // largeur tour X
#define HT 100 // hauteur mur tour Z
#define HH 70 // hauteur horloge Z
#define HC 120 // hauteur clocher Z
#define HCT 150 // hauteur clocher max Z
const Modele modele_eglise[] = {
// les murs nefs
{RECTANGLE, &tex_white, NULL, LN,WN,0, -LN,WN,0, LN,WN,HN},
{RECTANGLE, &tex_brique, NULL, -LN,WN,0, -LN,-WN,0, -LN,WN,HN},
{RECTANGLE, &tex_white, NULL, -LN,-WN,0, LN,-WN,0, -LN,-WN,HN},
// la tour
{RECTANGLE, &tex_pierre_eglise, NULL, LT,-WT,0, LT,WT,0, LT,-WT,HT},
{RECTANGLE, &tex_pierre_eglise, NULL, LT,WT,0, LN,WT,0, LT,WT,HT},
{RECTANGLE, &tex_pierre_eglise, NULL, LN,WT,0, LN,-WT,0, LN,WT,HT},
{RECTANGLE, &tex_pierre_eglise, NULL, LN,-WT,0, LT,-WT,0, LN,-WT,HT},
// prolongement mur nef jusqu au toit
{TRIANGLE, &tex_brique, NULL, -LN,WN,HN, -LN,-WN,HN, -LN,0,HNT},
// le toit de la nef
{RECTANGLE, &tex_toit_tuile, &tex_black, LN,WN+D,HN-3, -LN-D,WN+D,HN-3, LN,0,HNT},
{RECTANGLE, &tex_toit_tuile, &tex_black, -LN-D,-WN-D,HN-3, LN,-WN-D,HN-3, -LN-D,0,HNT},
// horloge
{RECTANGLE, &tex_horloge, NULL, LT,-10,HH, LT,10,HH, LT,-10,HH+20},
// porte
{RECTANGLE, &tex_porte_eglise, NULL, LT,-15,0, LT,15,0, LT,-15,60},
// clocher
{TRIANGLE, &tex_toit_tuile, NULL, LT,-WT,HT, LT,WT,HT, 70,0,HCT},
{TRIANGLE, &tex_toit_tuile, NULL, LT,WT,HT, LN,WT,HT, 70,0,HCT},
{TRIANGLE, &tex_toit_tuile, NULL, LN,WT,HT, LN,-WT,HT, 70,0,HCT},
{TRIANGLE, &tex_toit_tuile, NULL, LN,-WT,HT, LT,-WT,HT, 70,0,HCT},
};
#define L 30// longueur X
#define H 10// hauteur Z
const Modele modele_haie1[] = {
{RECTANGLE, &tex_haie, &tex_haie, -L,0,0, L,0,0, -L,0,H}
};
#define L 50// longueur X
#define H 10// hauteur Z
const Modele modele_haie2[] = {
{RECTANGLE, &tex_haie, &tex_haie, -L,0,0, L,0,0, -L,0,H}
};
#define L 10// longueur X
#define H 19// hauteur Z
const Modele modele_epouventail1[] = {
{RECTANGLE, &tex_epouvantail, &tex_epouvantail, -L,0,0, L,0,0, -L,0,H}
};
#define L 60// longueur X
#define H 9// hauteur Z
const Modele modele_herbe1[] = {
{RECTANGLE, &tex_herbe, &tex_herbe, -L,0,0, L,0,0, -L,0,H}
};
#define L 60// longueur X
#define H 9// hauteur Z
const Modele modele_herbe2[] = {
{RECTANGLE, &tex_herbe, &tex_herbe, -L,0,0, L,0,0, -L,0,H}
};
#define L 4// longueur X
#define H1 13// hauteur Z
#define H2 18// hauteur Z
const Modele modele_panneau1[] = {
{RECTANGLE, &tex_panneau, &tex_panneau, -L,0,H1, L,0,H1, -L,0,H2},
{RECTANGLE, &tex_black, &tex_black, -L-1,0,0, -L,0,0, -L-1,0,H2},
{RECTANGLE, &tex_black, &tex_black, L,0,0, L+1,0,0, L,0,H2}
};
#define L 7 // longueur X
#define W 7 // largueur Y
#define H 14 // hauteur Z
const Modele modele_botte_paille[] = {
// les cotes
{RECTANGLE, &tex_paille, NULL, L,-W,0, L,W,0, L,-W,H},
{RECTANGLE, &tex_paille, NULL, L,W,0, -L,W,0, L,W,H},
{RECTANGLE, &tex_paille, NULL, -L,W,0, -L,-W,0, -L,W,H},
{RECTANGLE, &tex_paille, NULL, -L,-W,0, L,-W,0, -L,-W,H},
// dessus
{RECTANGLE, &tex_paille_dessus, NULL, -L,-W,H, L,-W,H, -L,W,H},
};
#define L 50 // longueur X
#define W 25 // largueur Y
#define H 25 // hauteur Z
const Modele modele_murs_maison_forgeron[] = {
// les cotes
{RECTANGLE, NULL, &tex_mur_int_maison, L,-W,0, L,W,0, L,-W,H},
{RECTANGLE, NULL, &tex_mur_int_maison, L,W,0, -L,W,0, L,W,H},
{RECTANGLE, NULL, &tex_mur_int_maison, -L,W,0, -L,-W,0, -L,W,H},
{RECTANGLE, NULL, &tex_mur_int_maison, -L,-W,0, L,-W,0, -L,-W,H},
//plafond
{RECTANGLE, NULL, &tex_black, -L,-W,H, L,-W,H, -L,W,H},
};
#define L 10 // longueur X
#define W 4 // largueur Y
#define H 7 // hauteur Z
#define D 1 // decalage pied
#define E 1 // epaisseur pied
const Modele modele_table[] = {
// planche
{RECTANGLE, &tex_planche, &tex_black, -L,-W,H, L,-W,H, -L,W,H},
// pieds
{RECTANGLE, &tex_black, &tex_black, -L+D,-W+D,0, -L+D+E,-W+D+E,0, -L+D,-W+D,H-1},
{RECTANGLE, &tex_black, &tex_black, L-D,-W+D,0, L-D-E,-W+D+E,0, L-D,-W+D,H-1},
{RECTANGLE, &tex_black, &tex_black, -L+D,W-D,0, -L+D+E,W-D-E,0, -L+D,W-D,H-1},
{RECTANGLE, &tex_black, &tex_black, L-D,W-D,0, L-D-E,W-D-E,0, L-D,W-D,H-1},
};
#define W 7 // largueur Y
#define H 20 // hauteur Z
const Modele modele_forgeron[] = {
{RECTANGLE, &tex_forgeron, NULL, 0,-W,0, 0,W,0, 0,-W,H},
};
// MAP
// ECRAN TITRE
Object moulin_menu = {0,0,0, 0,N, modele_moulin,14, NONE};
Object pale_menu = {50,27,70, 0,Y, modele_pale,5, NONE};
Object* list_menu[] = {
&moulin_menu, &pale_menu
};
Map map_menu = {list_menu, 2, true, true};
// VILLAGE
Object chaumiere1 = {-36,62,0, 0,N, modele_chaumiere,11, ALL};
Object chaumiere2 = {-153,194,0, 251,Z, modele_chaumiere,11, ALL};
Object chaumiere3 = {0,257,0, 143,Z, modele_chaumiere,11, ALL};
Object entrepot = {319,-57,0, 80,Z, modele_entrepot,10, ALL};
Object eglise1 = {153,253,0, -102,Z, modele_eglise,16, ALL};
Object moulin1 = {21,-211,0, 0,N, modele_moulin,14, ALL};
Object pale_moulin1 = {72,-183,70, 0,Y, modele_pale,5, NONE};
Object haie1 = {0,-102,0, -5,Z, modele_haie1,1, ALL};
Object haie2 = {-63,-105,0, 9,Z, modele_haie1,1, ALL};
Object haie3 = {-132,-144,0, 46,Z, modele_haie2,1, ALL};
Object haie4 = {144,-135,0, -14,Z, modele_haie2,1, ALL};
Object haie5 = {-117,-264,0, -30,Z, modele_haie2,1, ALL};
Object epouvantail1 = {-93,-210,0, -28,Z, modele_epouventail1,1, ALL};
Object herbe1 = {-130,-200,0, 90,Z, modele_herbe1,1, NONE};
Object herbe2 = {-109,-200,0, 90,Z, modele_herbe1,1, NONE};
Object herbe3 = {-82,-191,0, 90,Z, modele_herbe1,1, NONE};
Object herbe4 = {-61,-185,0, 90,Z, modele_herbe1,1, NONE};
Object herbe5 = {-37,-179,0, 90,Z, modele_herbe1,1, NONE};
Object herbe6 = {235,119,0, 131,Z, modele_herbe1,1, NONE};
Object herbe7 = {292,51,0, 94,Z, modele_herbe1,1, NONE};
Object panneau1 = {91,-117,0, 0,N, modele_panneau1,3, ALL};
Object botte_paille1 = {269,42,0, 0,N, modele_botte_paille,5, ALL};
Object botte_paille2 = {269,21,0, 0,N, modele_botte_paille,5, ALL};
Object botte_paille3 = {272,30,14, 0,N, modele_botte_paille,5, ALL};
Object* list_village[] = {
&chaumiere1, &chaumiere2, &chaumiere3, &entrepot, &eglise1, &moulin1,
&pale_moulin1, &haie1, &haie2, &haie3, &haie4, &haie5, &epouvantail1,
&herbe1, &herbe2, &herbe3, &herbe4, &herbe5, &herbe6, &herbe7, &panneau1,
&botte_paille1, &botte_paille2, &botte_paille3
};
Map map_village = {list_village, 24, true, true};
// CHEZ LE FORGERON
Object murs_maison_forgeron1 = {0,0,0, 0,N, modele_murs_maison_forgeron,5, INSIDE};
Object table1 = {18,17,0, 0,N, modele_table,5, ALL};
Object table2 = {-23,-7,0, 99,Z, modele_table,5, ALL};
Object forgeron1 = {-34,-8,0, 0,Z_BILLBOARD, modele_forgeron,1, ALL};
Object* liste_interieur_forgeron[] = {
&murs_maison_forgeron1, &table1, &table2, &forgeron1
};
Map map_interieur_forgeron = {liste_interieur_forgeron, 4, false, false};
// EXEMPLE
const Texture tex_exemple = {sprite_exemple, NULL, 32, 32, 0, 0, 1, false, false, false};
//const Texture tex_exemple_mask = {sprite_forgeron, mask_forgeron, 32, 64, 0, 0, 1, false, false, false};
#define L 50 // longueur X
#define W 25 // largueur Y
#define W2 12 // largeur divise par deux
#define H 30 // hauteur mur Z
#define HT 40 // hauteur toit
#define F 20 // fenetre
const Modele modele_maison[] = {
// les murs
{RECTANGLE, &tex_white, NULL, 0,0,0, L,0,0, 0,0,H},
{RECTANGLE, &tex_brique_base, NULL, L,0,0, L,W,0, L,0,H},
{RECTANGLE, &tex_white, NULL, L,W,0, 0,W,0, L,W,H},
{RECTANGLE, &tex_brique_base, NULL, 0,W,0, 0,0,0, 0,W,H},
// prolongement mur jusqu au toit
{TRIANGLE, &tex_brique, NULL, L,0,H, L,W,H, L,W2,HT},
{TRIANGLE, &tex_brique, NULL, 0,W,H, 0,0,H, 0,W2,HT},
// le toit
{RECTANGLE, &tex_paille, NULL, L,W,H, 0,W,H, L,W2,HT},
{RECTANGLE, &tex_paille, NULL, 0,0,H, L,0,H, 0,W2,HT},
// fenetre
{RECTANGLE, &tex_fenetre_simple, NULL, F,0,7, F+9,0,7, F,0,25},
{RECTANGLE, &tex_fenetre_simple, NULL, F,W,7, F-9,W,7, F,W,25},
};
Object maison1 = { 33,-50, 0, 0, N, modele_maison, 10, ALL};
Object maison2 = {100, 12, 0, 90, Z, modele_maison, 10, ALL};
Object* liste_exemple[] = {
&maison1, &maison2
};
Map map_exemple = {liste_exemple, 2, true, true};