Subversion Repositories shark

Rev

Rev 1589 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1090 pj 1
/*
2
 * Project: S.Ha.R.K.
3
 *
4
 * Coordinators:
5
 *   Giorgio Buttazzo    <giorgio@sssup.it>
6
 *   Paolo Gai           <pj@gandalf.sssup.it>
7
 *
8
 * Authors     :
9
 *   Paolo Gai           <pj@gandalf.sssup.it>
10
 *   Massimiliano Giorgi <massy@gandalf.sssup.it>
11
 *   Luca Abeni          <luca@gandalf.sssup.it>
12
 *   (see the web pages for full authors list)
13
 *
14
 * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
15
 *
16
 * http://www.sssup.it
17
 * http://retis.sssup.it
18
 * http://shark.sssup.it
19
 */
20
 
1590 tullio 21
/* CVS :        $Id: scenario.c,v 1.3 2006-07-03 15:10:15 tullio Exp $ */
1090 pj 22
 
23
/*
24
 * Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
25
 *
26
 * This program is free software; you can redistribute it and/or modify
27
 * it under the terms of the GNU General Public License as published by
28
 * the Free Software Foundation; either version 2 of the License, or
29
 * (at your option) any later version.
30
 *
31
 * This program is distributed in the hope that it will be useful,
32
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
33
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
34
 * GNU General Public License for more details.
35
 *
36
 * You should have received a copy of the GNU General Public License
37
 * along with this program; if not, write to the Free Software
38
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
39
 *
40
 */
41
 
1590 tullio 42
#include "bca.h"
1090 pj 43
 
1590 tullio 44
char * titolo[10];
45
 
1090 pj 46
void scenario_ca()
47
{   //SFONDO
48
    FAB_image_fill(image_sfondo,0,0,800,600);
49
 
50
    //FRAME_BCA
51
    FAB_frame_put(frame_bca,X0-7,Y0-7,500+7*2,500+7*2);
52
}
53
void scenario_misure()
54
{   int   x, y, cx, cy;
55
    char* str_km ="X.Xkm";
56
    char* str_m  ="XXXXm";
57
    int   h;
58
 
59
     //FRAME_MISURE orizzontale
60
    FAB_frame_put(frame_misure_oriz, X0-7, Y1+7+20-7,
61
                  500+7*2, FRAME_MISURE_ORIZ_LY+7*2);
62
    cy = frame_misure_oriz->y0 + 10;
63
    cx = frame_misure_oriz->x0 +
64
         (frame_misure_oriz->x1 - frame_misure_oriz->x0) / 2;
65
    for(x=frame_misure_oriz->x0 ;x<frame_misure_oriz->x1+1 ;x+=5)
66
        grx_line(x,cy,x+2,cy,FRAME_MISURE_LINE_COLOR);
67
    for(y=frame_misure_oriz->y0; y<cy-1; y+=5) {
68
      grx_line(frame_misure_oriz->x0,y,frame_misure_oriz->x0,y+2,FRAME_MISURE_LINE_COLOR);
69
      grx_line(cx,y,cx,y+2,FRAME_MISURE_LINE_COLOR);
70
      grx_line(frame_misure_oriz->x1,y,frame_misure_oriz->x1,y+2,FRAME_MISURE_LINE_COLOR);
71
      }
72
    sprintf(str_km,"%02.1fkm",0.0);
73
    grx_text(str_km,frame_misure_oriz->x0+10,cy+2,FRAME_MISURE_LINE_COLOR,frame_misure_oriz->color);
74
    sprintf(str_km,"%02.1fkm",BASE_L/2.0);
75
    grx_text(str_km,cx-10,cy+2,FRAME_MISURE_LINE_COLOR,frame_misure_oriz->color);
76
    sprintf(str_km,"%02.1fkm",BASE_L);
77
    grx_text(str_km,frame_misure_oriz->x1-FRAME_MISURE_ORIZ_LY,cy+2,FRAME_MISURE_LINE_COLOR,frame_misure_oriz->color);
78
 
79
   //FRAME_MISURE verticale
80
   FAB_frame_put(frame_misure_vert, X1+7+20-7, Y0-7,
81
                 FRAME_MISURE_VERT_LX+7*2, 500+7*2);
82
   cy = frame_misure_vert->y0 +
83
        (frame_misure_vert->y1 - frame_misure_vert->y0) / 2;
84
   cx = frame_misure_vert->x0 + 10;
85
   for(y=frame_misure_vert->y1; y>frame_misure_vert->y0-1; y-=5)
86
     grx_line(cx,y,cx,y-2,FRAME_MISURE_LINE_COLOR);
87
   h=0;
88
   for(y=frame_misure_vert->y1; y>frame_misure_vert->y0-1;
89
       y-=500.0*(X1-X0)/BASE_H, h+=500) {
90
     for(x=frame_misure_vert->x0; x<cx-1; x+=5)
91
        grx_line(x,y,x+2,y,FRAME_MISURE_LINE_COLOR);
92
     sprintf(str_m,"%dm",h);
93
     grx_text(str_m, cx+2, y-6,
94
              FRAME_MISURE_LINE_COLOR, frame_misure_vert->color);
95
     }
96
}
97
void scenario_radar()
98
{  FAB_ballframe_put(ballframe_radar,
99
                     frame_bca->x1+7+30, frame_bca->y1+7+30, 30);
100
   FAB_ballframe_put(ballframe_lucerossa[2],605,546,20);
101
   FAB_ballframe_put(ballframe_lucerossa[1],594,578,15);
102
   FAB_ballframe_put(ballframe_lucerossa[0],574,591,10);
103
}
104
void scenario_titolo()
105
{  int x0,y0;
106
   x0 = frame_misure_vert->x1+7+20-7;
107
   y0 = frame_bca->y0-7;
108
   FAB_frame_put(frame_titolo,x0,y0,800-x0-20+7,170);
109
   x0 = frame_titolo->x0;
110
   y0 = frame_titolo->y0;
111
   grx_text(titolo[0],x0+2,y0+10,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
112
   grx_text(titolo[1],x0+2,y0+20,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
113
   grx_text(titolo[2],x0+2,y0+30,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
114
   grx_text(titolo[3],x0+2,y0+46,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
115
   grx_text(titolo[4],x0+2,y0+66,FRAME_TITOLO_TEXT_COLOR1,FRAME_TITOLO_BACK_COLOR2);
116
   grx_text(titolo[5],x0+2,y0+81,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
117
   grx_text(titolo[6],x0+2,y0+96,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
118
   grx_text(titolo[7],x0+2,y0+116,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
119
   grx_text(titolo[8],x0+2,y0+133,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
120
   grx_text(titolo[9],x0+2,y0+141,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
121
}
122
void scenario_comandi()
123
{  int x0, y0;
124
   x0 = frame_misure_vert->x1+7+20-7;
125
   y0 = frame_titolo->y1+7+20-7;
126
   FAB_frame_put(frame_comandi,x0,y0,800-x0-20+7,100+7*2);
127
   x0 = frame_comandi->x0;
128
   y0 = frame_comandi->y0;
1589 tullio 129
   grx_text("      COMMANDS     \0",x0+2,y0+10,FRAME_COMANDI_TEXT_COLOR1,FRAME_COMANDI_BACK_COLOR1);
1090 pj 130
   grx_text("-------------------\0",x0+2,y0+20,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
1589 tullio 131
   grx_text("         exit      \0",x0+2,y0+40,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
132
   grx_text("[Ctrl+C]",x0+2,y0+40,FRAME_COMANDI_TEXT_COLOR3,FRAME_COMANDI_BACK_COLOR2);
133
   grx_text("        +/- plane  \0",x0+2,y0+60,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
1090 pj 134
   grx_text("[1/2]",x0+2,y0+60,FRAME_COMANDI_TEXT_COLOR3,FRAME_COMANDI_BACK_COLOR2);
1589 tullio 135
   grx_text("        +/- cannon \0",x0+2,y0+80,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
1090 pj 136
   grx_text("[3/4]",x0+2,y0+80,FRAME_COMANDI_TEXT_COLOR3,FRAME_COMANDI_BACK_COLOR2);
137
}
138
void scenario_control()
139
{  int x0,y0;
140
 
141
   x0 = frame_misure_vert->x1+7+20-7;
142
   y0 = frame_comandi->y1+7+20-7;
143
   FAB_frame_put(frame_control,x0,y0,800-x0-20+7,frame_misure_vert->y1+7-y0);
144
   x0 = frame_control->x0;
145
   y0 = frame_control->y0;
146
   grx_text("      CONTROL      \0",x0+2, y0+5,FRAME_CONTROL_TEXT_COLOR2,FRAME_CONTROL_BACK_COLOR);
147
   grx_line(x0-3, y0+15,
148
            frame_control->x1+3, y0+15,
149
            FRAME_CONTROL_TEXT_COLOR1);
150
 
151
   grx_line(x0-3, frame_control->y1-81,
152
            frame_control->x1+3, frame_control->y1-81,
153
            FRAME_CONTROL_TEXT_COLOR1);
154
}
155
void scenario()
156
{   scenario_ca();
157
    scenario_misure();
158
    scenario_radar();
159
    scenario_titolo();
160
    scenario_comandi();
161
    scenario_control();
162
}
163
 
164
void info()
165
{ int i;
166
  for(i=0; i<10; i++) kern_printf("%s\n",titolo[i]);
167
}