Mercurial > mm7
diff Arcomage/Arcomage.h @ 2496:5abd8fc8f1c6
for ITEM_ARTIFACT_LADYS_ESCORT
author | Ritor1 |
---|---|
date | Thu, 18 Sep 2014 17:38:54 +0600 |
parents | |
children | dd36326a9994 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Arcomage/Arcomage.h Thu Sep 18 17:38:54 2014 +0600 @@ -0,0 +1,298 @@ +#pragma once +#include "OSAPI.h" + +#include "..\Engine/Graphics/Texture.h" + + + + +/* 272 */ +#pragma pack(push, 1) +struct ArcomageCard +{ + char pCardName[32]; + int slot; + char field_24; + char needed_quarry_level; + char needed_magic_level; + char needed_zoo_level; + char needed_bricks; + char needed_gems; + char needed_beasts; + bool can_be_discarded; + int compare_param; + char field_30; + char draw_extra_card_count; + char to_player_quarry_lvl; + char to_player_magic_lvl; + char to_player_zoo_lvl; + char to_player_bricks; + char to_player_gems; + char to_player_beasts; + char to_player_buildings; + char to_player_wall; + char to_player_tower; + char to_enemy_quarry_lvl; + char to_enemy_magic_lvl; + char to_enemy_zoo_lvl; + char to_enemy_bricks; + char to_enemy_gems; + char to_enemy_beasts; + char to_enemy_buildings; + char to_enemy_wall; + char to_enemy_tower; + char to_pl_enm_quarry_lvl; + char to_pl_enm_magic_lvl; + char to_pl_enm_zoo_lvl; + char to_pl_enm_bricks; + char to_pl_enm_gems; + char to_pl_enm_beasts; + char to_pl_enm_buildings; + char to_pl_enm_wall; + char to_pl_enm_tower; + char field_4D; + char can_draw_extra_card2; + char to_player_quarry_lvl2; + char to_player_magic_lvl2; + char to_player_zoo_lvl2; + char to_player_bricks2; + char to_player_gems2; + char to_player_beasts2; + char to_player_buildings2; + char to_player_wall2; + char to_player_tower2; + char to_enemy_quarry_lvl2; + char to_enemy_magic_lvl2; + char to_enemy_zoo_lvl2; + char to_enemy_bricks2; + char to_enemy_gems2; + char to_enemy_beasts2; + char to_enemy_buildings2; + char to_enemy_wall2; + char to_enemy_tower2; + char to_pl_enm_quarry_lvl2; + char to_pl_enm_magic_lvl2; + char to_pl_enm_zoo_lvl2; + char to_pl_enm_bricks2; + char to_pl_enm_gems2; + char to_pl_enm_beasts2; + char to_pl_enm_buildings2; + char to_pl_enm_wall2; + char to_pl_enm_tower2; + char field_6A; + char field_6B; +}; +#pragma pack(pop) + + +/* 401 */ +#pragma pack(push, 1) +struct AcromageCardOnTable +{ + int uCardId; + int field_4; + POINT field_8; + int field_10_xplus; + int field_14_y_plus; + POINT field_18_point; +}; +#pragma pack(pop) + + +#pragma pack(push, 1) +struct ArcomagePlayer +{ + char pPlayerName[32]; + int IsHisTurn; + int tower_height; + int wall_height; + int quarry_level; + int magic_level; + int zoo_level; + int resource_bricks; + int resource_gems; + int resource_beasts; + int cards_at_hand[10]; + POINT card_shift[10]; +}; +#pragma pack(pop) + + + +#pragma pack(push, 1) +struct ArcomageGame_stru1 +{ + int field_0; + int field_4; + int field_8; +}; +#pragma pack(pop) + + + + +#pragma pack(push, 1) +struct ArcomageGame +{ + ArcomageGame(); + + static bool LoadBackground(); + static bool LoadSprites(); + static bool MsgLoop(int a1, ArcomageGame_stru1 *a2); + static void PlaySound(unsigned int event_id); + static void OnMouseClick(char right_left, bool bDown); + static void OnMouseMove(int x, int y); + static void GetCardRect(unsigned int uCardID, RECT *pCardRect); + static void PrepareArcomage(); + static void DoBlt_Copy(unsigned __int16 *pPixels); // idb + + static void Loop(); + + char field_0; + char field_1; + char field_2; + char field_3; + int field_4; + ArcomageGame_stru1 stru1; + tagMSG msg; + int mouse_x; + int mouse_y; + char mouse_left; + char field_39; + char mouse_right; + char field_3B; + unsigned __int16 *pBackgroundPixels; + unsigned __int16 *pSpritesPixels; + unsigned __int16 *pBlit_Copy_pixels; + struct GUIFont *pfntComic;//ptr_48; + struct GUIFont *pfntArrus;//ptr_4C; + int field_50; + int field_54; + RGBTexture pGameBackground; + RGBTexture pSprites; + int event_timer_time; + int uGameWinner; + int Victory_type; + char pPlayer1Name[32]; + char pPlayer2Name[32]; + char field_F4; + char GameOver; + char field_F6; + char prev_mouse_left; + char prev_mouse_right; + char field_F9; + char bGameInProgress; +}; +#pragma pack(pop) + + + + +extern ArcomageGame *pArcomageGame; +extern ArcomageCard pCards[87]; +extern void set_stru1_field_8_InArcomage(int inValue); + + + +#pragma pack(push, 1) +struct stru272_stru1 +{ + int have_spark; + POINT spark_position; + int field_C; + int field_10; + int field_14; + int field_18; +}; +#pragma pack(pop) + +/* 404 */ +#pragma pack(push, 1) +struct stru272_stru2 +{ +/*int field_0; +int field_4; +int field_8; +int field_C;*/ + RECT effect_area; + int field_10; + int field_14; + int field_18; + float field_1Cf; + int field_20; + float field_24f; + float field_28f; + float field_2Cf; + int field_30; + int field_34; + stru272_stru1* sparks_array; +}; +#pragma pack(pop) + + +/* 270 */ +#pragma pack(push, 1) +struct stru272_stru0 // ARCOMAGE stuff +{ + static stru272_stru0 *New(); + + int Free(); + int StartFill(stru272_stru2* a2); + int Clear(char a2, char a3); + int DrawEffect(); + int _40E2A7(); + + int signature; + int field_4; + int position_in_sparks_arr; + int field_C; + int field_10; + int field_14; + int field_18; + int field_1C; + int field_20; + int field_24; + float field_28; + float field_2C; + float field_30; + int field_34; + int field_38; + int field_3C; + int field_40; + int field_44; + int field_48; + int field_4C; + int field_50; + stru272_stru1 * field_54; + char field_58; + char field_59; + char field_5A; + char field_5B; +}; +#pragma pack(pop) + +#define DECK_SIZE 108 + +#pragma pack(push, 1) +struct ArcomageDeck +{ + char name[32]; + char cardsInUse[DECK_SIZE]; + int cards_IDs[DECK_SIZE]; +}; + +#pragma pack(pop) + +#pragma pack(push, 1) +struct stru272 +{ + char have_effect; + char effect_sign; + char _pad_2; + char _pad_3; + stru272_stru2 field_4; + stru272_stru0 *field_40; + stru272_stru1 effect_sparks[150]; +}; +#pragma pack(pop) +