Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. void createWarpPortal(CUnit* unit) {
  2.  
  3. CExtendedUnitLayout* extendedStatus = unit->extendedStatus();
  4.  
  5. if(extendedStatus) {
  6.  
  7. if(extendedStatus->linkedWarpPortal) {
  8. extendedStatus->linkedWarpPortal->remove();
  9. }
  10.  
  11. Point16 coords;
  12. coords.x = unit->orderTarget.pt.x;
  13. coords.y = unit->orderTarget.pt.y;
  14.  
  15.  
  16. fixTargetLocation(&coords,UnitId::Spell_DarkSwarm);
  17.  
  18. CUnit* dark_swarm_unit = scbw::createUnitAtPos(UnitId::Spell_DarkSwarm,unit->playerId,coords.x,coords.y);
  19. if(dark_swarm_unit) {
  20. unit->energy -= 25600;
  21. replaceUnitWithType(dark_swarm_unit, UnitId::Powerup_YoungChrysalis);
  22. CExtendedUnitLayout* ds_extendedStatus = (CExtendedUnitLayout*)calloc(1, sizeof(CExtendedUnitLayout));
  23. extendedStatusTable.insert(std::make_pair((void*)dark_swarm_unit, (void*)ds_extendedStatus));
  24. ds_extendedStatus->linkedWarpPortal = unit;
  25. extendedStatus->linkedWarpPortal = dark_swarm_unit;
  26. dark_swarm_unit->status |= UnitStatus::NoCollide;
  27. dark_swarm_unit->sprite->elevationLevel = 11; //0x0B
  28. scbw::minimapPing(dark_swarm_unit->sprite->position.x, dark_swarm_unit->sprite->position.y, 0xFF0000, 8);
  29. for(int i = 0; i < 7; i++) {
  30. scbw::showErrorMessageWithSfx(i, 1516, 1132);
  31. }
  32.  
  33. //update various stuff (set hp, set shield...) not finished on CreateUnit
  34. function_004A01F0(dark_swarm_unit);
  35. updateUnitStrength(dark_swarm_unit);
  36. }
  37. unit->mainOrderId = OrderId::Nothing2;
  38. unit->currentButtonSet = 227;
  39. unit->sprite->removeOverlay(ImageId::WarpGateOverlay);
  40. unit->sprite->createOverlay(ImageId::WarpGateOverlay, 0, 0);
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement