Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Draws Overlays and HUD
- if (Debug)
- {
- room_speed = 60 - 57*keyboard_check(vk_shift);
- }
- /// HUD, Trans
- ViewX = view_xview[view_current];
- ViewY = view_yview[view_current];
- ViewW = view_wview[view_current];
- ViewH = view_hview[view_current];
- HudX = 0;
- HudY = 0;
- if (InGame)
- {
- /// -- Death --
- if (DyingType == 0)
- {
- death_control();
- }
- /// -- Demo/Recording
- if (oInput.Recording)
- {
- draw_set_halign(fa_left);
- draw_set_valign(fa_middle);
- draw_set_font(fntMap);
- draw_set_color(0);
- draw_text(ViewX + 3, ViewY + 27, "RECORDING: " + string(oInput.ReplayTime));
- draw_set_color(c_white);
- draw_text(ViewX + 2, ViewY + 26, "RECORDING: " + string(oInput.ReplayTime));
- }
- /// -- Subscreen
- if !PausedGame && global.Transition == -1 && StartFade == 0
- && !instance_exists(oSubscreen) && !instance_exists(oXRay)
- {
- if (input_get_key_game("ENTER",1))
- {
- instance_create(x,y,oSubscreen);
- PausedGame = 1;
- }
- }
- if instance_exists(oSubscreen)
- {
- draw_set_alpha(oSubscreen.Alpha/1.125);
- draw_set_color(make_color_rgb(0,8,2));
- draw_rectangle(ViewX,ViewY,ViewX+ViewW,ViewY+ViewH,0);
- draw_set_alpha(1);
- }
- /// -- Transition & Map
- transition_handle();
- map_update();
- /// -- Editing Weapon (Fade)
- if (EditingWeapon != -1)
- {
- EditFade = min(EditFade + .1, .5);
- }
- else
- {
- EditFade = max(EditFade - .1, 0);
- }
- if (EditFade > 0)
- {
- draw_set_color(0);
- draw_set_alpha(EditFade);
- draw_rectangle(ViewX, ViewY, ViewX + ViewW, ViewY + ViewH, 0);
- draw_set_alpha(1);
- draw_set_color(c_white);
- }
- /// -- Refresh/Redraw minimap
- if !surface_exists(MapSurface)
- {
- MapSurface = surface_create(56,40);
- hud_map_redraw();
- }
- else
- {
- draw_surface_part(MapSurface,8-floor(MapOffX),8-floor(MapOffY),40,24,ViewX + HudX + 274,ViewY + HudY + 5);
- }
- /// Metroid Counter
- draw_set_font(global.FontMain);
- monsterCounter = monstersleft;
- draw_sprite(sHatchling,-1,ViewX + HudX + 174 + HUDAdjust2,ViewY + HudY + 10);
- draw_set_valign(fa_top);
- draw_set_halign(fa_center);
- draw_sprite(sHAmmo,2,ViewX + HudX + 180 - 9 + HUDAdjust2, ViewY + 3 + HudY + 17+4);
- draw_set_color(c_black);
- draw_text(ViewX + HudX + 180 + HUDAdjust2, ViewY + HudY + 17+4, " "+string(monstersleft)+" ")
- draw_set_color(c_white);
- draw_set_font(fntMap);
- draw_text(ViewX + HudX + 179 + HUDAdjust2, ViewY + HudY + 16+4, " "+string(monstersleft)+" ")
- /// -- Energy
- ETanks = floor(Stat[0] / 100);
- ENum = floor(Stat[0] - (ETanks*100));
- ENum2 = floor(ENum/10);
- if ((Stat[0] / Stat[1]) <= .2)
- {
- BlinkTime --;
- if (BlinkTime < 0)
- {
- BlinkTime = 90;
- if ((Stat[0] / Stat[1]) <= .2)
- {
- BlinkTime = 60;
- }
- else
- if ((Stat[0] / Stat[1]) <= .15)
- {
- BlinkTime = 40;
- }
- else
- if ((Stat[0] / Stat[1]) <= .1)
- {
- BlinkTime = 20;
- }
- }
- }
- if (BlinkTime == 0 or BlinkTime == 1 or BlinkTime == 8 or BlinkTime == 9) && ((Stat[0] / Stat[1]) <= .3)
- {
- draw_sprite(sHNumRed,ENum,ViewX + HudX + 16,ViewY + HudY + 5);
- draw_sprite(sHNumRed,ENum2,ViewX + HudX + 3,ViewY + HudY + 5);
- }
- else
- {
- draw_sprite(sHNumBig,ENum,ViewX + HudX + 16,ViewY + HudY + 5);
- draw_sprite(sHNumBig,ENum2,ViewX + HudX + 3,ViewY + HudY + 5);
- }
- /// -- Energy Tanks
- MAXEX = 0;
- if (floor(Stat[1]/100) > 0)
- {
- for(i = 0; i < floor(Stat[1]/100); i++)
- {
- eX = 40;
- eY = 3;
- if (floor(Stat[1]/100) < 7)
- {
- eY += 4;
- }
- if (i >= 6)
- {
- eY += 7;
- eX -= 48;
- }
- eX -= 12;
- if ((eX + (i * 8)) > MAXEX)
- {
- MAXEX = (eX + (i * 8));
- }
- draw_sprite(sHTank,(ETanks <= i),ViewX + HudX + 1 + (i*8) + eX,ViewY + HudY + eY);
- }
- }
- /// -- Reserve Tanks
- if floor(Stat[7]) > 0
- {
- for (i = 0; i < floor(Stat[7]/100); i += 1)
- {
- eX = 0;
- eY = -1;
- if (i >= 2)
- {
- eX -= 16;
- }
- if (floor(Stat[7]/100) < 3)
- {
- eY += 3;
- }
- if (Power[19])
- {
- draw_sprite(sHTankR,(ceil(Stat[6] / 100) <= i),ViewX + HudX + 10 + MAXEX + (i*8) + eX,ViewY + HudY + 5 + ((i >= 2) * 7) + eY);
- }
- else
- {
- draw_sprite(sHTankROff,(ceil(Stat[6] / 100) <= i),ViewX + HudX + 10 + MAXEX + (i*8) + eX,ViewY + HudY + 5 + ((i >= 2) * 7) + eY);
- }
- }
- //draw_sprite(sHAuto, Power[19], ViewX + HudX + 52, ViewY + HudY + 2);
- }
- /// -- Update weapon list every frame (Inefficient but I'm high on caffeine so who cares?!?!??!?!?!aaaa)
- ds_list_clear(Menu[0]);
- for (i=1;i<=string_length(Obtain[3]);i++)
- {
- CB = string_char_at(Obtain[3],i);
- if string_pos(CB,"BSIWP") != 0 /// -- If it's one of the main 5 beams (Power,Spazer,Ice,Wave,Plasma)...
- {
- ds_list_add(Menu[0],string_pos(CB,"BSIWP")-1); /// -- Add them to the toggles in the proper order (order that matches Beam[] array)!
- }
- }
- /// -- Update misc...
- ds_list_clear(Menu[1]);
- if string_pos("M", Obtain[0]) != 0 // -- If we have Missile, add 0
- if (Power[6])
- {
- ds_list_add(Menu[1],0);
- }
- if string_pos("S", Obtain[0]) != 0 // -- SMissile is 1
- if (Power[8])
- {
- ds_list_add(Menu[1],1);
- }
- if string_pos("P", Obtain[2]) != 0 // -- PBomb is 2
- if (Power[10])
- {
- ds_list_add(Menu[1],2);
- }
- if string_pos("G", Obtain[1]) != 0 // -- Grapple is 3
- if (Power[13])
- {
- ds_list_add(Menu[1],3);
- }
- if string_pos("X", Obtain[1]) != 0 // -- XRay is 4
- if (Power[14])
- {
- ds_list_add(Menu[1],4);
- }
- /// -- Do we show
- Show[0] = (ds_list_size(Menu[0]) > 0); // -- Basically always 1
- Show[1] = (ds_list_size(Menu[1]) > 0); // -- Only 1 if we have the items
- if (Selected[1] == 0 && !Power[6])
- {
- Selected[1] = 1;
- }
- if (Selected[1] == 1 && !Power[8])
- {
- Selected[1] = 2;
- }
- if (Selected[1] == 2 && !Power[10])
- {
- Selected[1] = 3;
- }
- if (Selected[1] == 3 && !Power[13])
- {
- Selected[1] = 4;
- }
- if (Selected[1] == 4 && !Power[14])
- {
- Selected[1] = 0;
- }
- if (Show[0])
- {
- draw_sprite(sHSlot, (CurrentMenu == 0), ViewX + HudX + 102 + HUDAdjust, ViewY + HudY + 4);
- BeamIcon = (Beam[2] + (Beam[3]<<1) + (Beam[1]<<2) + (Beam[4]<<3));
- draw_sprite(sHIconB, BeamIcon, ViewX + HudX + 103 + HUDAdjust, ViewY + HudY + 5);
- }
- if (Show[1])
- {
- draw_sprite(sHSlot, (CurrentMenu == 1), ViewX + HudX + 140 + HUDAdjust, ViewY + HudY + 4);
- draw_sprite(sHItemMisc, Selected[1], ViewX + HudX + 141 + HUDAdjust, ViewY + HudY + 5);
- }
- /// -- Ammo
- if (Power[6])
- {
- draw_sprite(sHAmmoIcon,(Selected[1] == 0 && CurrentMenu == 1),ViewX + HudX + 190,ViewY + HudY + 6);
- draw_sprite(sHAmmo,(Selected[1] == 0 && CurrentMenu == 1),ViewX + HudX + 184,ViewY + HudY + 20);
- draw_set_valign(fa_top);
- draw_set_halign(fa_center);
- draw_set_color(c_black);
- draw_text(ViewX + HudX + 201, ViewY + HudY + 17, string(Stat[2]))
- draw_set_color(c_white);
- if !(Selected[1] == 0 && CurrentMenu == 1) or (Stat[2] <= 0)
- {
- draw_set_color(c_gray);
- }
- draw_set_font(fntMap);
- draw_text(ViewX + HudX + 200, ViewY + HudY + 16, string(Stat[2]))
- }
- /// -- SUPER -- \\\
- if (Power[8])
- {
- draw_sprite(sHAmmoIcon,2+(Selected[1] == 1 && CurrentMenu == 1),ViewX + HudX + 218,ViewY + HudY + 6);
- draw_sprite(sHAmmo2,(Selected[1] == 1 && CurrentMenu == 1),ViewX + HudX + 216,ViewY + HudY + 20);
- draw_set_valign(fa_top);
- draw_set_halign(fa_center);
- draw_set_color(c_black);
- draw_text(ViewX + HudX + 228, ViewY + HudY + 17, string(Stat[4]))
- draw_set_color(c_white);
- if !(Selected[1] == 1 && CurrentMenu == 1) or (Stat[4] <= 0)
- {
- draw_set_color(c_gray);
- }
- draw_set_font(fntMap);
- draw_text(ViewX + HudX + 227, ViewY + HudY + 16, string(Stat[4]))
- }
- if (Power[10])
- {
- draw_sprite(sHAmmoIcon,4+(Selected[1] == 2 && CurrentMenu == 1),ViewX + HudX + 245,ViewY + HudY + 6);
- draw_sprite(sHAmmo2,(Selected[1] == 2 && CurrentMenu == 1),ViewX + HudX + 240,ViewY + HudY + 20);
- draw_set_valign(fa_top);
- draw_set_halign(fa_center);
- draw_set_color(c_black);
- draw_text(ViewX + HudX + 252, ViewY + HudY + 17, string(Stat[8]))
- draw_set_color(c_white);
- if !(Selected[1] == 2 && CurrentMenu == 1) or (Stat[8] <= 0)
- {
- draw_set_color(c_gray);
- }
- draw_set_font(fntMap);
- draw_text(ViewX + HudX + 251, ViewY + HudY + 16, string(Stat[8]))
- }
- /// -- Switch between Beam and Misc
- if !instance_exists(oSubscreen)
- {
- if (input_get_key_game("RSELECT",1))
- {
- MenuPrev = CurrentMenu;
- CurrentMenu = !CurrentMenu;
- if !Show[CurrentMenu]
- {
- CurrentMenu = !CurrentMenu;
- }
- if (MenuPrev != CurrentMenu)
- {
- sound_play_pos(sndHTick, ViewX + ViewW/2, ViewY + ViewH/2);
- }
- if (EditingWeapon != -1)
- {
- EditingWeapon = !EditingWeapon;
- }
- }
- /// -- Edit weapons.
- if (PausedGame == 0 && EditingWeapon == -1 && global.Transition == -1 && !instance_exists(oSubscreen))
- if (input_get_key_game("LSELECT",0) && Show[CurrentMenu])
- {
- EditingWeapon = CurrentMenu;
- PausedGame = 1;
- }
- if (!(input_get_key_game("LSELECT",0)) && EditingWeapon != -1)
- {
- EditingWeapon = -1;
- PausedGame = 0;
- }
- }
- /// -- Editing a weapon!
- if (EditingWeapon != -1)
- {
- draw_sprite(sHBase,2,ViewX + HudX + HUDAdjust,ViewY + HudY);
- draw_sprite_ext(sHBase,3,ViewX + HudX + 38 + HUDAdjust,ViewY + HudY, 12, 1, 0, c_white, 1);
- if (EditingWeapon == 0)
- {
- draw_sprite(sHSlot, (CurrentMenu == 0), ViewX + HudX + 102 + HUDAdjust, ViewY + HudY + 4);
- BeamIcon = (Beam[2] + (Beam[3]<<1) + (Beam[1]<<2) + (Beam[4]<<3));
- draw_sprite(sHIconB, BeamIcon, ViewX + HudX + 103 + HUDAdjust, ViewY + HudY + 5);
- SlotPrev = Slot[0];
- if input_get_key_game("RIGHT",1)
- {
- Slot[0] += 1;
- }
- if input_get_key_game("LEFT",1)
- {
- Slot[0] -= 1;
- }
- if (Slot[0] >= ds_list_size(Menu[0]))
- {
- Slot[0] = 0;
- }
- if (Slot[0] < 0)
- {
- Slot[0] = ds_list_size(Menu[0]) - 1;
- }
- if (SlotPrev != Slot[0])
- {
- sound_play_pos(sndHTick, ViewX + ViewW/2, ViewY + ViewH/2);
- }
- if (input_get_key_game("JUMP",1) && ds_list_find_value(Menu[0],Slot[0]) != 0)
- {
- Beam[ds_list_find_value(Menu[0],Slot[0])] = !Beam[ds_list_find_value(Menu[0],Slot[0])];
- sound_play_pos(sndHTick, ViewX + ViewW/2, ViewY + ViewH/2);
- }
- XPos = 107;
- for (i=0;i<ds_list_size(Menu[0]);i++)
- {
- BIndex = ds_list_find_value(Menu[0],i);
- if (Slot[0] == i)
- {
- BIndex += 5;
- }
- else
- if (Beam[BIndex] == 1 or BIndex == 0)
- {
- BIndex += 10;
- }
- draw_sprite(sHBeamIcon, BIndex, ViewX + HudX + XPos + HUDAdjust + ((i*21)*EditFade*2), ViewY + HudY + 27);
- }
- draw_set_font(fntMap);
- draw_set_halign(fa_left);
- draw_set_valign(fa_top);
- draw_set_color(c_white);
- draw_text(ViewX + HudX + 132 + HUDAdjust, ViewY + HudY + 5, Name[0,ds_list_find_value(Menu[0],Slot[0])]);
- }
- else
- if (EditingWeapon == 1)
- {
- if (Power[6] = 1) || (Power[8] = 1) || (Power[10] = 1) || (Power[13] = 1) || (Power[14] = 1) {
- draw_sprite(sHSlot, (CurrentMenu == 1), ViewX + HudX + 140 + HUDAdjust, ViewY + HudY + 4);
- draw_sprite(sHItemMisc, Selected[1], ViewX + HudX + 141 + HUDAdjust, ViewY + HudY + 5);
- SlotPrev = Slot[1];
- if input_get_key_game("RIGHT",1)
- {
- Slot[1] += 1;
- }
- if input_get_key_game("LEFT",1)
- {
- Slot[1] -= 1;
- }
- if (Slot[1] >= ds_list_size(Menu[1]))
- {
- Slot[1] = 0;
- }
- if (Slot[1] < 0)
- {
- Slot[1] = ds_list_size(Menu[1]) - 1;
- }
- if (SlotPrev != Slot[1])
- {
- sound_play_pos(sndSubMove, ViewX + ViewW/2, ViewY + ViewH/2);
- }
- Selected[1] = ds_list_find_value(Menu[1],Slot[1]);
- XPos = 145;
- for (i=0;i<ds_list_size(Menu[1]);i++)
- {
- BIndex = ds_list_find_value(Menu[1],i);
- if (Slot[1] == i)
- {
- BIndex += 5;
- }
- else
- if (Selected[1] == BIndex)
- {
- BIndex += 10;
- }
- draw_sprite(sHMiscIcon, BIndex, ViewX + HudX + HUDAdjust + XPos + ((i*21)*EditFade*2), ViewY + HudY + 27);
- }
- draw_set_font(fntMap);
- draw_set_color(c_white);
- draw_set_halign(fa_left);
- draw_set_valign(fa_top);
- draw_text(ViewX + HudX + 169 + HUDAdjust, ViewY + HudY + 5, Name[1,ds_list_find_value(Menu[1],Slot[1])]);
- }
- }
- }
- if (EditingWeapon == -1)
- {
- /// -- Map Cover
- draw_sprite(sHMap,0,ViewX + HudX + 269,ViewY + HudY+ 2);
- /// -- Draw Blinking Minimap Tile
- BlinkAlpha = (1 - (MapTick/16));
- // -- Map pos of current iteration pos:
- XX = ViewX + HudX + 290 + floor(MapOffX);
- YY = ViewY + HudY + 13 + floor(MapOffY);
- var MX = MapX;
- var MY = MapY;
- var TileID = ds_grid_get(MapGrid[CurrentWorld, 0], MX, MY);
- /// -- If the map tile isn't empty, and has been mapped or trodden:
- if (TileID != -1)
- {
- if (ds_grid_get(MapGrid[CurrentWorld, 4], MX, MY) != 0)
- {
- var TileColor = ds_grid_get(MapGrid[CurrentWorld, 3], MX, MY)
- var TileMark = ds_grid_get(MapGrid[CurrentWorld, 1], MX, MY);
- draw_background_part_ext(bgMinimapColor, ((TileID & 15) << 3), ((TileID >> 4) << 3), 8, 8, XX, YY, 1, 1, c_yellow, BlinkAlpha);
- draw_background_part_ext(bgMinimapWall, ((TileID & 15) << 3), ((TileID >> 4) << 3), 8, 8, XX, YY, 1, 1, c_red, BlinkAlpha);
- }
- }
- }
- MapTick += 0.5;
- if (MapTick > 16)
- {
- MapTick = 0;
- }
- /// -- Smooth minimap and snap it
- MapOffX *= .9;
- MapOffY *= .9;
- if (abs(MapOffX) < .15)
- {
- MapOffX = 0;
- }
- if (abs(MapOffY) < .15)
- {
- MapOffY = 0;
- }
- /// -- Start Fade
- StartFade = max(StartFade - .05, 0);
- if (StartFade > 0)
- {
- draw_set_alpha(StartFade);
- draw_rectangle_colour(ViewX,ViewY,ViewX+ViewW,ViewY+ViewH,0,0,0,0,0);
- }
- draw_set_alpha(1);
- /// -- Death --
- if (DyingType == 1)
- {
- death_control();
- }
- /// -- Death End
- if (DeathFadeWhite > 0)
- {
- draw_set_alpha(DeathFadeWhite);
- draw_rectangle_colour(ViewX,ViewY,ViewX+ViewW,ViewY+ViewH,-1,-1,-1,-1,0);
- draw_set_alpha(1);
- if (DeathFadeWhite == 1 && Dying == 1)
- {
- DeathTick ++;
- if (DeathTick == 60)
- {
- PausedGame = 0;
- InGame = 0;
- Dying = -1;
- DeathFade = 0;
- DeathTime = 0;
- DeathTick = 0;
- with (oPlayer)
- {
- instance_destroy();
- }
- if (savefile_exists(SaveSlot))
- {
- savefile_load(SaveSlot);
- }
- else
- {
- load_defaults(rLandingSite);
- }
- }
- }
- }
- }
- /// -- GMA Debug Flash
- if (GMAFadeWhite > 0)
- {
- draw_set_alpha(GMAFadeWhite);
- draw_rectangle_colour(ViewX,ViewY,ViewX+ViewW,ViewY+ViewH,-1,-1,-1,-1,0);
- draw_set_alpha(1);
- GMAFadeWhite = max(GMAFadeWhite - .05, 0);
- }
- draw_text_adv(ViewX,ViewY + 128,room_get_name(room),1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement