Browse Source

add 16 way shooting

Thomas B 1 month ago
parent
commit
ce710a2fa6
2 changed files with 52 additions and 16 deletions
  1. 48
    16
      src/game.c
  2. 4
    0
      src/game.h

+ 48
- 16
src/game.c View File

523
 
523
 
524
             switch (rot) {
524
             switch (rot) {
525
                 case ROT_0:
525
                 case ROT_0:
526
-                    ret = obj_add(SPR_SHOT, 0, -SHIP_OFF, spd_x, spd_y - SHOT_SPEED);
526
+                    ret = obj_add(SPR_SHOT,
527
+                                  0, -SHIP_OFF,
528
+                                  spd_x, spd_y - SHOT_SPEED);
527
                     break;
529
                     break;
528
 
530
 
529
                 case ROT_22_5:
531
                 case ROT_22_5:
530
-                    // TODO
532
+                    ret = obj_add(SPR_SHOT,
533
+                                  SHIP_OFF / 2 - 1, -SHIP_OFF / 2 - 4,
534
+                                  spd_x + SHOT_SPEED_D_LO, spd_y - SHOT_SPEED_D_HI);
531
                     break;
535
                     break;
532
 
536
 
533
                 case ROT_45:
537
                 case ROT_45:
534
-                    ret = obj_add(SPR_SHOT, SHIP_OFF / 2 + 3, -SHIP_OFF / 2 - 2, spd_x + SHOT_SPEED, spd_y - SHOT_SPEED);
538
+                    ret = obj_add(SPR_SHOT,
539
+                                  SHIP_OFF / 2 + 3, -SHIP_OFF / 2 - 2,
540
+                                  spd_x + SHOT_SPEED_DIAG, spd_y - SHOT_SPEED_DIAG);
535
                     break;
541
                     break;
536
 
542
 
537
                 case ROT_67_5:
543
                 case ROT_67_5:
538
-                    // TODO
544
+                    ret = obj_add(SPR_SHOT,
545
+                                  SHIP_OFF / 2 + 5, -SHIP_OFF / 2 + 2,
546
+                                  spd_x + SHOT_SPEED_D_HI, spd_y - SHOT_SPEED_D_LO);
539
                     break;
547
                     break;
540
 
548
 
541
                 case ROT_90:
549
                 case ROT_90:
542
-                    ret = obj_add(SPR_SHOT, SHIP_OFF, 0, spd_x + SHOT_SPEED, spd_y);
550
+                    ret = obj_add(SPR_SHOT,
551
+                                  SHIP_OFF, 0,
552
+                                  spd_x + SHOT_SPEED, spd_y);
543
                     break;
553
                     break;
544
 
554
 
545
                 case ROT_112_5:
555
                 case ROT_112_5:
546
-                    // TODO
556
+                    ret = obj_add(SPR_SHOT,
557
+                                  SHIP_OFF / 2 + 5, SHIP_OFF / 2 + 0,
558
+                                  spd_x + SHOT_SPEED_D_HI, spd_y + SHOT_SPEED_D_LO);
547
                     break;
559
                     break;
548
 
560
 
549
                 case ROT_135:
561
                 case ROT_135:
550
-                    ret = obj_add(SPR_SHOT, SHIP_OFF / 2 + 3, SHIP_OFF / 2 + 2, spd_x + SHOT_SPEED, spd_y + SHOT_SPEED);
562
+                    ret = obj_add(SPR_SHOT,
563
+                                  SHIP_OFF / 2 + 3, SHIP_OFF / 2 + 2,
564
+                                  spd_x + SHOT_SPEED_DIAG, spd_y + SHOT_SPEED_DIAG);
551
                     break;
565
                     break;
552
 
566
 
553
                 case ROT_157_5:
567
                 case ROT_157_5:
554
-                    // TODO
568
+                    ret = obj_add(SPR_SHOT,
569
+                                  SHIP_OFF / 2 + 1, SHIP_OFF / 2 + 4,
570
+                                  spd_x + SHOT_SPEED_D_LO, spd_y + SHOT_SPEED_D_HI);
555
                     break;
571
                     break;
556
 
572
 
557
                 case ROT_180:
573
                 case ROT_180:
558
-                    ret = obj_add(SPR_SHOT, 0, SHIP_OFF, spd_x, spd_y + SHOT_SPEED);
574
+                    ret = obj_add(SPR_SHOT,
575
+                                  0, SHIP_OFF,
576
+                                  spd_x, spd_y + SHOT_SPEED);
559
                     break;
577
                     break;
560
 
578
 
561
                 case ROT_202_5:
579
                 case ROT_202_5:
562
-                    // TODO
580
+                    ret = obj_add(SPR_SHOT,
581
+                                  -SHIP_OFF / 2 + 2, SHIP_OFF / 2 + 3,
582
+                                  spd_x - SHOT_SPEED_D_LO, spd_y + SHOT_SPEED_D_HI);
563
                     break;
583
                     break;
564
 
584
 
565
                 case ROT_225:
585
                 case ROT_225:
566
-                    ret = obj_add(SPR_SHOT, -SHIP_OFF / 2 - 3, SHIP_OFF / 2 + 2, spd_x - SHOT_SPEED, spd_y + SHOT_SPEED);
586
+                    ret = obj_add(SPR_SHOT,
587
+                                  -SHIP_OFF / 2 - 3, SHIP_OFF / 2 + 2,
588
+                                  spd_x - SHOT_SPEED_DIAG, spd_y + SHOT_SPEED_DIAG);
567
                     break;
589
                     break;
568
 
590
 
569
                 case ROT_247_5:
591
                 case ROT_247_5:
570
-                    // TODO
592
+                    ret = obj_add(SPR_SHOT,
593
+                                  -SHIP_OFF / 2 - 5, SHIP_OFF / 2 - 1,
594
+                                  spd_x - SHOT_SPEED_D_HI, spd_y + SHOT_SPEED_D_LO);
571
                     break;
595
                     break;
572
 
596
 
573
                 case ROT_270:
597
                 case ROT_270:
574
-                    ret = obj_add(SPR_SHOT, -SHIP_OFF, 0, spd_x - SHOT_SPEED, spd_y);
598
+                    ret = obj_add(SPR_SHOT,
599
+                                  -SHIP_OFF, 0,
600
+                                  spd_x - SHOT_SPEED, spd_y);
575
                     break;
601
                     break;
576
 
602
 
577
                 case ROT_292_5:
603
                 case ROT_292_5:
578
-                    // TODO
604
+                    ret = obj_add(SPR_SHOT,
605
+                                  -SHIP_OFF / 2 - 2, -SHIP_OFF / 2 + 2,
606
+                                  spd_x - SHOT_SPEED_D_HI, spd_y - SHOT_SPEED_D_LO);
579
                     break;
607
                     break;
580
 
608
 
581
                 case ROT_315:
609
                 case ROT_315:
582
-                    ret = obj_add(SPR_SHOT, -SHIP_OFF / 2 - 3, -SHIP_OFF / 2 - 2, spd_x - SHOT_SPEED, spd_y - SHOT_SPEED);
610
+                    ret = obj_add(SPR_SHOT,
611
+                                  -SHIP_OFF / 2 - 3, -SHIP_OFF / 2 - 2,
612
+                                  spd_x - SHOT_SPEED_DIAG, spd_y - SHOT_SPEED_DIAG);
583
                     break;
613
                     break;
584
 
614
 
585
                 case ROT_337_5:
615
                 case ROT_337_5:
586
-                    // TODO
616
+                    ret = obj_add(SPR_SHOT,
617
+                                  -SHIP_OFF / 2 + 1, -SHIP_OFF / 2 - 4,
618
+                                  spd_x - SHOT_SPEED_D_LO, spd_y - SHOT_SPEED_D_HI);
587
                     break;
619
                     break;
588
 
620
 
589
                 default:
621
                 default:

+ 4
- 0
src/game.h View File

29
 #define SHOT_SPEED 42 //23
29
 #define SHOT_SPEED 42 //23
30
 #define MAX_TRAVEL 64 //128
30
 #define MAX_TRAVEL 64 //128
31
 
31
 
32
+#define SHOT_SPEED_DIAG 30
33
+#define SHOT_SPEED_D_HI 39
34
+#define SHOT_SPEED_D_LO 16
35
+
32
 enum GAME_MODE {
36
 enum GAME_MODE {
33
     GM_SINGLE = 0,
37
     GM_SINGLE = 0,
34
     GM_MULTI,
38
     GM_MULTI,

Loading…
Cancel
Save