details.c-Dateireferenz

#include "/obj/tools/roommaker/roommaker.h"
Include-Abhängigkeitsdiagramm für details.c:

gehe zum Quellcode dieser Datei

Funktionen

static void enter_detail ()
static void nodetail ()
static void show_detail ()
static void show_all_details (int mode)
static void detail_redisplay ()
static void getdesc ()
static void insert_detail (string str)
static void store_desc ()
static void same_desc (string str)
static void insert_detail2 (string str)
static void double_detail (string str)
static void delete_detail ()
static void delete_detail_really (int number)
static void delete_detail2 (string str)
static void goto_delete_detail ()

Variablen

static string * detail
static mixed * desc

Dokumentation der Funktionen

static void delete_detail (  )  [static]

Definiert in Zeile 190 der Datei details.c.

Benutzt detail, input_to(), QueryLabel() und show_all_details().

Wird benutzt von goto_delete_detail().

00191 {
00192   show_all_details(1);             /* with numbering */
00193   if(!sizeof(detail))
00194     return (void)call_other(this_object(),QueryLabel("delete_return"));
00195   write("Which detail should be deleted?\n");
00196   input_to("delete_detail2");
00197 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static void delete_detail2 ( string  str  )  [static]

Definiert in Zeile 213 der Datei details.c.

Benutzt delete_detail_really(), detail, member_array() und QueryLabel().

00214 {
00215   int number;                   /* number of the given detail */
00216   if(sscanf(str,"%d",number) && number <= sizeof(detail))
00217   {
00218     delete_detail_really(number-1);
00219     return (void)call_other(this_object(),QueryLabel("delete_return"));
00220   }
00221   number = (member_array(str,detail));
00222   if(number == -1)
00223   {
00224     write("There is no detail named " + str + "!\n");
00225     return (void)call_other(this_object(),QueryLabel("delete_return"));
00226   }
00227   delete_detail_really(number);
00228   return (void)call_other(this_object(),QueryLabel("delete_return"));
00229 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void delete_detail_really ( int  number  )  [static]

Definiert in Zeile 201 der Datei details.c.

Benutzt desc, detail, QueryLabel() und SetLabel().

Wird benutzt von delete_detail2().

00202 {
00203   write("Deleting " + detail[number] + " ...\n");
00204   SetLabel("deleted_detail",({detail[number],desc[number]}));
00205   detail = detail[0..number-1] + detail[number+1..sizeof(detail)-1];
00206   desc = desc[0..number-1] + desc[number+1..sizeof(desc)-1];
00207   if(QueryLabel("delete_return") == "gotogetstring")
00208     SetLabel("prompt","Detail #" + (sizeof(detail)+1) + ": ");
00209 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static void detail_redisplay (  )  [static]

Definiert in Zeile 90 der Datei details.c.

Benutzt gotogetstring() und show_all_details().

00091 {
00092   show_all_details(0);       /* without numbering */
00093   gotogetstring();
00094 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void double_detail ( string  str  )  [static]

Definiert in Zeile 180 der Datei details.c.

Benutzt enter_detail(), getdesc() und input_to().

00181 {
00182   if(str == "y") return getdesc();
00183   if(str == "n") return enter_detail();
00184   write("Do you want to overwrite them?? (y/n) ");
00185   input_to("double_detail");
00186 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void enter_detail (  )  [static]

Definiert in Zeile 17 der Datei details.c.

Benutzt detail, gotogetstring() und SetLabel().

Wird benutzt von double_detail() und same_desc().

00018 {
00019   SetLabel("prompt","Detail #" + (sizeof(detail)+1) + ": ");
00020   SetLabel("nostring","nodetail");
00021   SetLabel("ready","gotomenu");
00022   SetLabel("undo","gotomenu");
00023   SetLabel("redisplay","detail_redisplay");
00024   SetLabel("delete","delete_detail");
00025   SetLabel("save_file","normal_save_string");
00026   SetLabel("insert_string","insert_detail");
00027   SetLabel("delete_return","gotogetstring");
00028   SetLabel("menustring","");
00029   SetLabel("nextfun","gotogetstring");
00030   SetLabel("nextwrite","");
00031   gotogetstring();
00032 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static void getdesc (  )  [static]

Definiert in Zeile 96 der Datei details.c.

Benutzt ClearText(), gotogettext(), SCREEN_WIDTH und SetLabel().

Wird benutzt von double_detail() und insert_detail().

00097 {
00098   ClearText();
00099   SetLabel("lenmax",SCREEN_WIDTH);
00100   SetLabel("ready","store_desc");
00101   SetLabel("show_file","show_detail");
00102   SetLabel("menustring","But you need to describe the detail!\n");
00103   SetLabel("menu","gettext");
00104   write("Please describe the detail (help with \"~h\")!\n");
00105   gotogettext();
00106 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static void goto_delete_detail (  )  [static]

Definiert in Zeile 231 der Datei details.c.

Benutzt delete_detail() und SetLabel().

00232 {
00233   SetLabel("delete_return","gotomenu");
00234   delete_detail();
00235 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void insert_detail ( string  str  )  [static]

Definiert in Zeile 108 der Datei details.c.

Benutzt arrayprint(), desc, description, detail, getdesc(), i, input_to(), member_array(), old_explode() und SetLabel().

00109 {
00110   int i;
00111   string description;
00112   i = member_array(str,detail);
00113   SetLabel("detail",str);
00114   if(i != -1)
00115   {
00116     write("We have already an detail named " + str + "!\n");
00117     write(detail[i] + " ... ");
00118     description = implode(old_explode(arrayprint(desc[i]),"\n")," ");
00119     if(strlen(description) > 74 - strlen(detail[i]))
00120       write(description[0..(70 - strlen(detail[i]))] + "...\n");
00121     else write(description + "\n");
00122     write("Do you want to overwrite them? (y/n) ");
00123     input_to("double_detail");
00124     return;
00125   }
00126   detail += ({str});
00127   desc +=({({"<no description>"})});
00128   return getdesc();
00129 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void insert_detail2 ( string  str  )  [static]

Definiert in Zeile 170 der Datei details.c.

Benutzt desc, detail, input_to(), member_array() und QueryLabel().

00171 {
00172   detail += ({str});
00173   if(sizeof(desc) == sizeof(detail)) desc = desc[0..<2];
00174   desc += ({desc[member_array(QueryLabel("detail"),detail)]});
00175   write(detail[<1] + "..." + implode(desc[<1]," ") + "\n");
00176   write("Do you want to add a detail with the same description? (y/n) ");
00177   input_to("same_desc");
00178 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void nodetail (  )  [static]

Definiert in Zeile 36 der Datei details.c.

Benutzt gotogetstring().

00037 {
00038   write("Please enter a detail! A player can't look at \"\"!\n");
00039   gotogetstring();
00040 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void same_desc ( string  str  )  [static]

Definiert in Zeile 145 der Datei details.c.

Benutzt desc, detail, enter_detail(), gotogetstring(), input_to(), member_array(), QueryLabel() und SetLabel().

00146 {
00147   write(QueryLabel("detail") + "..." +
00148                 implode(desc[member_array(QueryLabel("detail"),detail)]," ") +
00149                 "\n");
00150   if(str == "n") return enter_detail();
00151   if(str == "y")
00152   {
00153     write("Please enter the detail (help with \"~h\")!\n");
00154     SetLabel("prompt","Detail #" + (sizeof(detail)+1) + ": ");
00155     SetLabel("nostring","nodetail");
00156     SetLabel("show_file","show_detail");
00157     SetLabel("ready","gotomenu");
00158     SetLabel("undo","gotomenu");
00159     SetLabel("redisplay","detail_redisplay");
00160     SetLabel("delete","delete_detail");
00161     SetLabel("save_file","detail_save");
00162     SetLabel("insert_string","insert_detail2");
00163     SetLabel("delete_return","gotogetstring");
00164     return gotogetstring();
00165   }
00166   write("Do you want to add a detail with the same description?? (y/n) ");
00167   input_to("same_desc");
00168 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void show_all_details ( int  mode  )  [static]

Definiert in Zeile 63 der Datei details.c.

Benutzt arrayprint(), desc, description, detail, i, old_explode() und SCREEN_WIDTH.

Wird benutzt von delete_detail() und detail_redisplay().

00064 {
00065   int i;
00066   string description;
00067   if(!sizeof(detail))
00068   {
00069     write("No details are given.\n");
00070     return;
00071   }
00072   if(sizeof(detail) == 1) write("This detail is");
00073   else write("These details are");
00074   write(" given:\n");
00075   for(i=0;i<sizeof(detail);i++)
00076   {
00077     if(mode) write((i+1) + ". ");
00078     write(detail[i] + " ... ");
00079     description = implode(old_explode(arrayprint(desc[i]),"\n")," ");
00080     if(strlen(description) >
00081       SCREEN_WIDTH - 5 - (i>9?4:3)*mode - strlen(detail[i]))
00082       write(description[0..(SCREEN_WIDTH - 9 - (i>9?4:3)*mode
00083                             - strlen(detail[i]))] + "...\n");
00084     else write(description + "\n");
00085   }
00086 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

static void show_detail (  )  [static]

Definiert in Zeile 46 der Datei details.c.

Benutzt desc, detail, EditText(), file_print(), i, input_to(), member_array() und QueryLabel().

00047 {
00048   int    i;
00049   string *dummy;
00050 
00051   i = member_array(QueryLabel("detail"),detail);
00052   dummy = desc[i];
00053   if(sizeof(EditText())) desc[i] = EditText();
00054   else                   desc[i] = ({"<no description>"});
00055   write(file_print() + "]");
00056 /*  smore(file_print(),0,this_player()->QueryPagesize()); */
00057   if(sizeof(EditText())) desc[i] = dummy;
00058   input_to("gettext");
00059 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void store_desc (  )  [static]

Definiert in Zeile 131 der Datei details.c.

Benutzt desc, detail, EditText(), gotogettext(), input_to(), member_array() und QueryLabel().

00132 {
00133   int i;
00134   if(!sizeof(EditText()))
00135   {
00136     write(QueryLabel("menustring"));
00137     return gotogettext();
00138   }
00139   i = member_array(QueryLabel("detail"),detail);
00140   desc[i] = EditText();
00141   write("Do you want to add a detail with the same description? (y/n) ");
00142   input_to("same_desc");
00143 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:


Variablen-Dokumentation

mixed* desc [static]
string* detail [static]
Erzeugt am Thu Jun 3 14:40:14 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3