]> icculus.org git repositories - divverent/nexuiz.git/blob - data/menuqc/custom/campaign.qc
one char less for campaign text box
[divverent/nexuiz.git] / data / menuqc / custom / campaign.qc
1 void Campaign_Init()
2 {
3         CampaignFile_Load(0, CAMPAIGN_MAX_ENTRIES);
4 }
5
6 void Campaign_Shutdown()
7 {
8         CampaignFile_Unload();
9 }
10
11 void Campaign_DumpLevels()
12 {
13         float i;
14         float imax;
15         imax = cvar("g_campaign_index") - campaign_offset;
16         if(imax >= campaign_entries)
17                 imax = campaign_entries - 1;
18         for(i = 0; i <= imax; ++i)
19         {
20                 print("Level ");
21                 print(ftos(i + campaign_offset));
22                 print(": ");
23                 print(campaign_gametype[i]);
24                 print("_");
25                 print(campaign_mapname[i]);
26                 print(" - ");
27                 print(campaign_shortdesc[i]);
28                 print("\n");
29         }
30         print("\n");
31 }
32
33 void Campaign_JumpLevel(float n)
34 {
35         float current;
36         // 1. current level?
37         current = cvar("g_campaign_index");
38         if(n > current)
39                 n = current;
40         if(n < 0)
41                 n = current;
42         
43         n = n - campaign_offset;
44         if(n >= 0 && n < campaign_entries)
45                 CampaignSetup(n);
46 }
47
48 float campaign_index;
49
50 void() Nex_Action_Campaign_Start =
51 {
52         Campaign_JumpLevel(campaign_index);
53
54         // force the menu to hide
55         m_hide();
56 };
57
58 void() Nex_Action_Campaign_Update =
59 {
60         local entity lItem;
61         local string longdesc;
62         local string shortdesc;
63         lItem = Menu_GetItem( "ShortDescription" );
64         shortdesc = campaign_shortdesc[campaign_index];
65         shortdesc = strcat("Level ", ftos(campaign_index + 1), ": ", shortdesc);
66         String_EntitySet( lItem, text,  shortdesc);
67
68         lItem = Menu_GetItem( "LongDescription" );
69         longdesc = Campaign_wordwrap(campaign_longdesc[campaign_index], lItem.wrap - 1);
70         String_EntitySet( lItem, text, longdesc );
71
72         lItem = Menu_GetItem( "Picture" );
73         String_EntitySet( lItem, picture, strcat("maps/",campaign_mapname[campaign_index], ".jpg") );
74 };
75
76 void() Nex_Action_Campaign_Init =
77 {
78         campaign_index = cvar("g_campaign_index");
79
80         Nex_Action_Campaign_Update();
81 };
82
83 void() Nex_Action_Campaign_Prev =
84 {
85         if (campaign_index <= 0) {
86                 campaign_index = min(campaign_entries, cvar("g_campaign_index"));
87         } else {
88                 campaign_index -= 1;
89         }
90
91         Nex_Action_Campaign_Update();
92 };
93
94 void() Nex_Action_Campaign_Next =
95 {
96         if (campaign_index >= min(campaign_entries, cvar("g_campaign_index"))) {
97                 campaign_index = 0;
98         } else {
99                 campaign_index += 1;
100         }
101
102         Nex_Action_Campaign_Update();
103 };
104