Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Sonic+Miscellaneous.cpp : Defines the exported functions for the DLL application.
- //
- #include "stdafx.h"
- #include "SADXModLoader.h"
- #include "functions.h"
- bool just_untransformed = false;
- bool gauge2_lv1 = false;
- bool gauge2_lv2 = false;
- bool gauge2_full = false;
- bool HUD_loaded = false;
- bool glow_down = false;
- //bool sonic_gameplay = false;
- int Gauge;
- int Gauge2;
- int test = 0;
- int untest = 0;
- int OldRingsHUD;
- int can_animate_gain = 0;
- int can_animate_loss = 0;
- int zero_ring_alpha = 0;
- int energy_glow = 0;
- ////////////////////// HUD //////////////////////////////////////////////////////////////////////////
- enum HUDTextureIndex
- {
- HUD_gauge, HUD_rings, HUD_lives, HUD_score, HUD_timer, HUD_sonic_lv1, HUD_sonic_lv2, HUD_sonic_lv3, HUD_shadow_lv1, HUD_shadow_lv2, HUD_shadow_lv3,
- HUD_metal_lv1, HUD_metal_lv2, HUD_metal_lv3, HUD_sonic_life, HUD_tails_life, HUD_knuckles_life, HUD_shadow_life, HUD_amy_life, HUD_gamma_life,
- HUD_metalsonic_life, HUD_tailsdoll_life, HUD_metalknuckles_life, HUD_0, HUD_1, HUD_2, HUD_3, HUD_4, HUD_5, HUD_6, HUD_7, HUD_8, HUD_9, HUD_0s_red,
- HUD_0s_red_glow, HUD_ring_a, HUD_ring_b, HUD_ring_c, HUD_ring_d, HUD_ring_e, HUD_ring_f, HUD_ring_g, HUD_ring_h, HUD_energy_1, HUD_energy_2, HUD_energy_3,
- HUD_energy_left_closure, HUD_energy_middle, HUD_energy_right_closure, HUD_energy_full, HUD_energy_glow, HUD_soniclvl_energy_full, HUD_soniclvl_energy_glow,
- HUD_shadowlvl_energy_full, HUD_shadowlvl_energy_glow, HUD_metallvl_energy_full, HUD_metallvl_energy_glow,
- };
- static NJS_TEXNAME HUD_TEXNAME[57];
- static NJS_TEXLIST HUD_TEXLIST = { arrayptrandlength(HUD_TEXNAME) }; //MY OWN HUD STUFF
- static NJS_TEXANIM HUD_TEXANIM[] = {
- // w, h, cx, cy, u1, v1, u2, v2, texid, attr
- // u2 and v2 must be 0xFF
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_gauge, 0 },//width and height must be the texture's size
- { 314, 55, 0, 0, 0, 0, 0xFF, 0xFF, HUD_rings, 0 },//cx and cy are the position on the screen cx => + or - to go left or right; cy => + or - to go up or down
- { 314, 55, 0, 0, 0, 0, 0xFF, 0xFF, HUD_lives, 0 },
- { 394, 55, 0, 0, 0, 0, 0xFF, 0xFF, HUD_score, 0 },
- { 394, 55, 0, 0, 0, 0, 0xFF, 0xFF, HUD_timer, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_sonic_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_tails_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_knuckles_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_shadow_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_amy_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_gamma_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_metalsonic_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_tailsdoll_life, 0 },
- { 75, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_metalknuckles_life, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_NUMBERS[] = {
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_0, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_1, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_2, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_3, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_4, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_5, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_6, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_7, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_8, 0 },
- { 40, 40, 0, 0, 0, 0, 0xFF, 0xFF, HUD_9, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_NUMBERS_RING_ANIM[] = {
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_a, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_b, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_c, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_d, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_e, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_f, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_g, 0 },
- { 50, 50, 0, 0, 0, 0, 0xFF, 0xFF, HUD_ring_h, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_NUMBERS_RINGS_0_RED[] = {
- { 90, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_0s_red, 0 }, //-212 -216 why ??
- { 90, 75, 0, 0, 0, 0, 0xFF, 0xFF, HUD_0s_red_glow, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_ENERGY[] = {
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_1, 0 },
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_2, 0 },
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_3, 0 },
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_left_closure, 0 },
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_full, 0 },
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_glow, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_ENERGY2[] = {
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_middle, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_ENERGY3[] = {
- { 375, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_energy_right_closure, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_LVL_ENERGY[] = {
- { 300, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_soniclvl_energy_full, 0 },
- { 300, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_soniclvl_energy_glow, 0 },
- { 300, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_shadowlvl_energy_full, 0 },
- { 300, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_shadowlvl_energy_glow, 0 },
- { 300, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_metallvl_energy_full, 0 },
- { 300, 85, 0, 0, 0, 0, 0xFF, 0xFF, HUD_metallvl_energy_glow, 0 }
- };
- static NJS_TEXANIM HUD_TEXANIM_LVLUPS[] = {
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_sonic_lv1, 0 }, //-1104, -700
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_sonic_lv2, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_sonic_lv3, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_shadow_lv1, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_shadow_lv2, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_shadow_lv3, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_metal_lv1, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_metal_lv2, 0 },
- { 100, 40, 50, 20, 0, 0, 0xFF, 0xFF, HUD_metal_lv3, 0 }
- };
- NJS_SPRITE HUD_SPRITE = { { 0.0f, 0.0f, 0.0f }, 1.3f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM };//the three numbers in the brackets are X, Y, and Z position, then X and Y scaling, rotation, texlist, and texanim
- NJS_SPRITE HUD_SPRITE_NUMBERS = { { 0.0f, 0.0f, 0.0f }, 1.3f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_NUMBERS };
- NJS_SPRITE HUD_SPRITE_RING_ANIM = { { 0.0f, 0.0f, 0.0f }, 1.0f * HorizontalResolution / 1680.0f, 1.0f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_NUMBERS_RING_ANIM };
- NJS_SPRITE HUD_SPRITE_RINGS_0_RED = { { 0.0f, 0.0f, 0.0f }, 1.0f * HorizontalResolution / 1680.0f, 1.0f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_NUMBERS_RINGS_0_RED };
- NJS_SPRITE HUD_SPRITE_ENERGY = { { 0.0f, 0.0f, 0.0f }, 1.3f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_ENERGY };
- NJS_SPRITE HUD_SPRITE_ENERGY2 = { { 0.0f, 0.0f, 0.0f }, 1.3f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_ENERGY2 };
- NJS_SPRITE HUD_SPRITE_ENERGY3 = { { 0.0f, 0.0f, 0.0f }, 1.3f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_ENERGY3 };
- NJS_SPRITE HUD_SPRITE_LVL_ENERGY = { { 0.0f, 0.0f, 0.0f }, 1.0f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_ENERGY3 };
- NJS_SPRITE HUD_SPRITE_LVLUPS = { { 0.0f, 0.0f, 0.0f }, 1.0f * HorizontalResolution / 1680.0f, 1.3f * VerticalResolution / 1050.0f, 0, &HUD_TEXLIST, HUD_TEXANIM_ENERGY3 };
- //Counter Zeros
- void HudDisplayZerosSTH06(signed int ringCount, unsigned __int8 digits, NJS_SPRITE *hud_R)
- {
- int count_R; // edi
- int i_R; // ecx
- int max_R; // eax MAPDST
- count_R = ringCount;
- //if (HideHud >= 0)
- //{
- if (ringCount >= 100000)
- {
- count_R = 99999;
- }
- i_R = digits;
- max_R = 1;
- if ((signed int)digits > 0)
- {
- do
- {
- max_R *= 10;
- --i_R;
- } while (i_R);
- }
- if (count_R > --max_R)
- {
- count_R = max_R;
- }
- if (digits >= 5u)
- {
- njDrawSprite2D_Queue(
- hud_R,
- count_R / 10000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_R->p.x = hud_R->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 4u)
- {
- njDrawSprite2D_Queue(
- hud_R,
- count_R % 10000 / 1000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_R->p.x = hud_R->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 3u)
- {
- njDrawSprite2D_Queue(
- hud_R,
- count_R % 1000 / 100,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_R->p.x = hud_R->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 2u)
- {
- njDrawSprite2D_Queue(
- hud_R,
- count_R % 100 / 10,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_R->p.x = hud_R->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 1u)
- {
- njDrawSprite2D_Queue(
- hud_R,
- count_R % 10,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- }
- //}
- }
- //Counter No Zeros
- void HudDisplayNoZerosSTH06(signed int scoreCount, unsigned __int8 digits, NJS_SPRITE *hud_S)
- {
- int count_S; // edi
- int i_S; // ecx
- int max_S; // eax MAPDST
- count_S = scoreCount;
- //if (HideHud >= 0)
- //{
- if (scoreCount >= 1000000000)
- {
- count_S = 999999999;
- }
- i_S = digits;
- max_S = 1;
- if ((signed int)digits > 0)
- {
- do
- {
- max_S *= 10;
- --i_S;
- } while (i_S);
- }
- if (count_S > --max_S)
- {
- count_S = max_S;
- }
- if (digits >= 9u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S / 100000000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 8u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 100000000 / 10000000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 7u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 10000000 / 1000000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 6u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 1000000 / 100000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 5u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 100000 / 10000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 4u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 10000 / 1000,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 3u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 1000 / 100,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 2u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 100 / 10,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_S->p.x = hud_S->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 1u)
- {
- njDrawSprite2D_Queue(
- hud_S,
- count_S % 10,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- }
- //}
- }
- //Timer Frames counter HUD
- void HudDisplayFramesSTH06(signed int frameCount, unsigned __int8 digits, NJS_SPRITE *hud_TF)
- {
- int count_TF; // edi
- int i_TF; // ecx
- int max_TF; // eax MAPDST
- count_TF = 16.666 * frameCount;
- //if (HideHud >= 0)
- //{
- if (frameCount >= 10000)
- {
- count_TF = 9999;
- }
- i_TF = digits;
- max_TF = 1;
- if ((signed int)digits > 0)
- {
- do
- {
- max_TF *= 10;
- --i_TF;
- } while (i_TF);
- }
- if (count_TF > --max_TF)
- {
- count_TF = max_TF;
- }
- if (digits >= 3u)
- {
- njDrawSprite2D_Queue(
- hud_TF,
- count_TF / 100,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_TF->p.x = hud_TF->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 2u)
- {
- njDrawSprite2D_Queue(
- hud_TF,
- count_TF % 100 / 10,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- hud_TF->p.x = hud_TF->p.x + 23.4 * HorizontalResolution / 1680.0f;
- }
- if (digits >= 1u)
- {
- njDrawSprite2D_Queue(
- hud_TF,
- count_TF % 10,
- -1,
- NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR,
- QueuedModelFlagsB_SomeTextureThing);
- }
- //}
- }
- void MyHudThing()
- {
- if (GameState == 4)
- {
- can_animate_gain = 0;
- can_animate_loss = 0;
- energy_glow = 0;
- glow_down = false;
- }
- if (GameState != 21)
- {
- if (GetCharacterObject(0))
- {
- njColorBlendingMode(NJD_SOURCE_COLOR, NJD_COLOR_BLENDING_SRCALPHA);
- njColorBlendingMode(NJD_DESTINATION_COLOR, NJD_COLOR_BLENDING_INVSRCALPHA);
- SetMaterialAndSpriteColor_Float(1, 1, 1, 1);
- HUD_SPRITE.p.x = -44 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE.p.y = 70 * 1.3f * VerticalResolution / 1050.0f;
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_score, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- HUD_SPRITE.p.x = -44 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE.p.y = 120 * 1.3f * VerticalResolution / 1050.0f;
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_timer, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- HUD_SPRITE.p.x = -44 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE.p.y = 170 * 1.3f * VerticalResolution / 1050.0f;
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_rings, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- HUD_SPRITE.p.x = -44 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE.p.y = 220 * 1.3f * VerticalResolution / 1050.0f;
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_lives, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- if (GetCharacterID(0) == Characters_Sonic && MetalSonicFlag == 0)
- {
- HUD_SPRITE.p.x = 810 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE.p.y = 660 * 1.3f * VerticalResolution / 1050.0f;
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_metalknuckles_life, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- HUD_SPRITE.p.x = 110 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE.p.y = 205 * 1.3f * VerticalResolution / 1050.0f;
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_sonic_life, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- }
- else if (GetCharacterID(0) == Characters_Tails)
- {
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_tails_life, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- }
- else if (GetCharacterID(0) == Characters_Knuckles)
- {
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_knuckles_life, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- }
- else if (GetCharacterID(0) == Characters_Amy)
- {
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_amy_life, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- }
- else if (GetCharacterID(0) == Characters_Gamma)
- {
- njDrawSprite2D_Queue(&HUD_SPRITE, HUD_gamma_life, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- }
- ////Energy Counter
- //if (Gauge > 0 && Gauge < 100)
- //{
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 0, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- //}
- //else if (Gauge >= 100 && Gauge < 200)
- //{
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 1, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- //}
- //else if (Gauge >= 200 && Gauge < 300)
- //{
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 2, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- //}
- //else if (Gauge >= 300 && Gauge < 10000)
- //{
- // HUD_SPRITE_ENERGY2.sx = Gauge * 0.0033333f;
- // HUD_SPRITE_ENERGY3.p.x = Gauge * 0.02f;
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 3, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY2, 0, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY3, 0, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- //}
- //else if (Gauge >= 10000)
- //{
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 4, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // if (energy_glow <= 20)
- // {
- // if (!glow_down)
- // {
- // if (energy_glow < 20)
- // {
- // ++energy_glow;
- // SetMaterialAndSpriteColor_Float((0 + energy_glow) / 20.0f, 1, 1, 1);
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 5, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // }
- // else if (energy_glow == 20)
- // {
- // energy_glow = 0;
- // SetMaterialAndSpriteColor_Float(1, 1, 1, 1);
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 5, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // glow_down = true;
- // }
- // }
- // else if (glow_down)
- // {
- // if (energy_glow < 20)
- // {
- // ++energy_glow;
- // SetMaterialAndSpriteColor_Float((20 - energy_glow) / 20.0f, 1, 1, 1);
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 5, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // }
- // else if (energy_glow == 20)
- // {
- // energy_glow = 0;
- // SetMaterialAndSpriteColor_Float(0, 1, 1, 1);
- // njDrawSprite2D_Queue(&HUD_SPRITE_ENERGY, 5, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- // glow_down = false;
- // }
- // }
- // }
- // SetMaterialAndSpriteColor_Float(1, 1, 1, 1);
- //}
- //Ring Counter
- HUD_SPRITE_NUMBERS.p.x = 157 * 1.3f * HorizontalResolution / 1680.0f;
- HUD_SPRITE_NUMBERS.p.y = 174 * 1.3f * VerticalResolution / 1050.0f;
- HUD_SPRITE_RINGS_0_RED.p.x = (HUD_SPRITE_NUMBERS.p.x/1.3f) + (55 * HorizontalResolution / 1680.0f);
- HUD_SPRITE_RINGS_0_RED.p.y = (HUD_SPRITE_NUMBERS.p.y/1.3f) + (42 * VerticalResolution / 1050.0f);
- if (Rings == 0)
- {
- njDrawSprite2D_Queue(&HUD_SPRITE_RINGS_0_RED, 0, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- ++zero_ring_alpha;
- SetMaterialAndSpriteColor_Float((9 - zero_ring_alpha) / 9.0f, 1, 1, 1);
- njDrawSprite2D_Queue(&HUD_SPRITE_RINGS_0_RED, 1, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- SetMaterialAndSpriteColor_Float(1, 1, 1, 1);
- if (zero_ring_alpha == 9)
- {
- zero_ring_alpha = 0;
- }
- }
- else if (Rings > 0 && Rings < 1000)
- {
- HudDisplayZerosSTH06(Rings, 3, &HUD_SPRITE_NUMBERS);
- zero_ring_alpha = 0;
- }
- else if (Rings >= 1000)
- {
- HudDisplayZerosSTH06(Rings, 4, &HUD_SPRITE_NUMBERS);
- zero_ring_alpha = 0;
- }
- HUD_SPRITE_RING_ANIM.p.x = 161 * HorizontalResolution / 1680.0f;
- HUD_SPRITE_RING_ANIM.p.y = 225 * VerticalResolution / 1050.0f;
- if (Rings - OldRingsHUD > 0)
- {
- can_animate_loss = 0;
- ++can_animate_gain;
- njDrawSprite2D_Queue(&HUD_SPRITE_RING_ANIM, can_animate_gain, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- if (can_animate_gain == 7)
- {
- OldRingsHUD = Rings;
- can_animate_gain = 0;
- }
- }
- else if (Rings - OldRingsHUD < 0)
- {
- can_animate_gain = 0;
- ++can_animate_loss;
- njDrawSprite2D_Queue(&HUD_SPRITE_RING_ANIM, 8 - can_animate_loss, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- if (can_animate_loss == 7)
- {
- OldRingsHUD = Rings;
- can_animate_loss = 0;
- }
- }
- else if (OldRingsHUD == Rings)
- {
- njDrawSprite2D_Queue(&HUD_SPRITE_RING_ANIM, 0, -1, NJD_SPRITE_ALPHA | NJD_SPRITE_COLOR, (QueuedModelFlagsB)0);
- }
- //Timer Minutes
- HUD_SPRITE_NUMBERS.p.x = (130.846 * 1.3f * HorizontalResolution / 1680.0f);
- HUD_SPRITE_NUMBERS.p.y = (124 * 1.3f * VerticalResolution / 1050.0f);
- HudDisplayZerosSTH06(TimeMinutes, 2, &HUD_SPRITE_NUMBERS);
- //Timer Seconds
- HUD_SPRITE_NUMBERS.p.x = HUD_SPRITE_NUMBERS.p.x + (35 *1.3f * HorizontalResolution / ( 1680.0f));
- HUD_SPRITE_NUMBERS.p.y = HUD_SPRITE_NUMBERS.p.y;
- HudDisplayZerosSTH06(TimeSeconds, 2, &HUD_SPRITE_NUMBERS);
- //Timer Frames
- HUD_SPRITE_NUMBERS.p.x = HUD_SPRITE_NUMBERS.p.x + (37 *1.3f * HorizontalResolution / ( 1680.0f));
- HUD_SPRITE_NUMBERS.p.y = HUD_SPRITE_NUMBERS.p.y;
- HudDisplayFramesSTH06(TimeFrames, 3, &HUD_SPRITE_NUMBERS);
- //Lives Counter
- HUD_SPRITE_NUMBERS.p.y = 224 * 1.3f * VerticalResolution / 1050.0f;
- if (Lives < 10)
- {
- HUD_SPRITE_NUMBERS.p.x = 194.538 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(Lives, 1, &HUD_SPRITE_NUMBERS);
- }
- else if (Lives >= 10)
- {
- HUD_SPRITE_NUMBERS.p.x = 176.538 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(Lives, 2, &HUD_SPRITE_NUMBERS);
- }
- //Score Counter
- HUD_SPRITE_NUMBERS.p.y = 71.692 * 1.3f * VerticalResolution / 1050.0f;
- if (EnemyBonus < 10)
- {
- HUD_SPRITE_NUMBERS.p.x = 274.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 1, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 10 && EnemyBonus < 100)
- {
- HUD_SPRITE_NUMBERS.p.x = 256.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 2, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 100 && EnemyBonus < 1000)
- {
- HUD_SPRITE_NUMBERS.p.x = 238.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 3, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 1000 && EnemyBonus < 10000)
- {
- HUD_SPRITE_NUMBERS.p.x = 220.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 4, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 10000 && EnemyBonus < 100000)
- {
- HUD_SPRITE_NUMBERS.p.x = 202.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 5, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 100000 && EnemyBonus < 1000000)
- {
- HUD_SPRITE_NUMBERS.p.x = 184.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 6, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 1000000 && EnemyBonus < 10000000)
- {
- HUD_SPRITE_NUMBERS.p.x = 166.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 7, &HUD_SPRITE_NUMBERS);
- }
- else if (EnemyBonus >= 10000000 && EnemyBonus < 100000000)
- {
- HUD_SPRITE_NUMBERS.p.x = 148.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 8, &HUD_SPRITE_NUMBERS);
- }
- else
- {
- HUD_SPRITE_NUMBERS.p.x = 130.692 * 1.3f * HorizontalResolution / 1680.0f;
- HudDisplayNoZerosSTH06(EnemyBonus, 9, &HUD_SPRITE_NUMBERS);
- }
- }
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////
- extern "C"
- {
- __declspec(dllexport) ModInfo SADXModInfo = { ModLoaderVer };
- __declspec(dllexport) void Init(const char *path, const HelperFunctions &helperFunctions)
- {
- Sonic_Init(path, helperFunctions);
- Miscellaneous_Init(path, helperFunctions);
- WriteJump((void*)0x425F90, MyHudThing);
- WriteData((char*)0x427F50, (char)0xC3);
- }
- __declspec(dllexport) void OnInput()
- {
- Sonic_OnInput();
- //Miscellaneous_OnInput();
- }
- __declspec(dllexport) void OnFrame()
- {
- //if (ControllerPointers[0]->PressedButtons & Buttons_Y)
- //{
- // sonic_gameplay = true;
- //}
- //if (ControllerPointers[0]->PressedButtons & Buttons_B)
- //{
- // sonic_gameplay = false;
- //}
- //if (sonic_gameplay)
- //{
- // Sonic_OnFrame();
- //}
- Sonic_OnFrame();
- Miscellaneous_OnFrame();
- //Character Select HUD
- //if (GameState == 21)
- //{
- if (GetCharacterObject(0))
- {
- LoadPVM("HUD", &HUD_TEXLIST);// do better loading (not have it repeat)
- //njDrawSprite2D_Queue(&HUD_SPRITE2, char_sel_sonic, -1, NJD_SPRITE_ALPHA, (QueuedModelFlagsB)0);
- }
- //}
- //HUD *******************************************************************************************************************************************
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement