#include "/obj/tools/roommaker/roommaker.h"
gehe zum Quellcode dieser Datei
Funktionen | |
| static void | getdshort () |
| static void | getdlong () |
| static void | getdkey () |
| static void | getstatus (string str) |
| static void | gotogetstatus () |
| mixed | SetProp (string prop, mixed arg) |
| static void | enter_door () |
| static void | delete_door () |
| static void | delete_door_really (int number) |
| static void | delete_door2 (string str) |
| static void | door_redisplay () |
| static void | nodoor () |
| static void | getdpath () |
| static void | insert_door (string str) |
| static void | nodpath () |
| static void | double_door (string str) |
| static void | door_redisplay2 () |
| static void | door_save () |
| static void | insert_door2 (string str) |
| static void | goto_delete_door () |
| static void | nodshort () |
| static void | door_redisplay3 () |
| static void | insert_door3 (string str) |
| static void | show_door () |
| static void | store_dlong () |
| static void | insert_key (string str) |
Variablen | |
| static string * | door |
| static string * | dpath |
| static string * | dshort |
| static mixed * | dlong |
| static string * | dkey |
| static int * | dstatus |
| static string * | statlist |
| static void delete_door | ( | ) | [static] |
Definiert in Zeile 44 der Datei doors.c.
Benutzt door, dpath, dshort, i, input_to() und QueryLabel().
Wird benutzt von getstatus() und goto_delete_door().
00045 { 00046 int i; 00047 if(!sizeof(door)) 00048 { 00049 write("No doors are given.\n"); 00050 return (void)call_other(this_object(),QueryLabel("delete_return")); 00051 } 00052 if(sizeof(door) == 1) write("This door is"); 00053 else write("These doors are"); 00054 write(" given:\n"); 00055 for(i=0;i<sizeof(door);i++) 00056 write((i+1) + ". " + door[i] + " ... " + dpath[i] + ", \"" + 00057 dshort[i] + "\"\n"); 00058 write("Which door should be deleted?\n"); 00059 input_to("delete_door2"); 00060 }


| static void delete_door2 | ( | string | str | ) | [static] |
Definiert in Zeile 80 der Datei doors.c.
Benutzt delete_door_really(), door, member_array() und QueryLabel().
00081 { 00082 int number; /* number of the given door */ 00083 if(sscanf(str,"%d",number) && number <= sizeof(door)) 00084 { 00085 delete_door_really(number-1); 00086 return (void)call_other(this_object(),QueryLabel("delete_return")); 00087 } 00088 number = (member_array(str,door)); 00089 if(number == -1) 00090 { 00091 write("There is no door named " + str + "!\n"); 00092 return (void)call_other(this_object(),QueryLabel("delete_return")); 00093 } 00094 delete_door_really(number); 00095 return (void)call_other(this_object(),QueryLabel("delete_return")); 00096 }

| static void delete_door_really | ( | int | number | ) | [static] |
Definiert in Zeile 64 der Datei doors.c.
Benutzt dkey, dlong, door, dpath, dshort, dstatus, QueryLabel() und SetLabel().
Wird benutzt von delete_door2().
00065 { 00066 write("Deleting " + door[number] + " ...\n"); 00067 SetLabel("deleted_door",({door[number],dpath[number]})); 00068 door = door[0..number-1] + door[number+1..]; 00069 dpath = dpath[0..number-1] + dpath[number+1..]; 00070 dshort = dshort[0..number-1] + dshort[number+1..]; 00071 dlong = dlong[0..number-1] + dlong[number+1..]; 00072 dkey = dkey[0..number-1] + dkey[number+1..]; 00073 dstatus = dstatus[0..number-1] + dstatus[number+1..]; 00074 if(QueryLabel("delete_return") == "gotogetstring") 00075 SetLabel("prompt","Door #" + (sizeof(door)+1) + ": "); 00076 }


| static void door_redisplay | ( | ) | [static] |
Definiert in Zeile 100 der Datei doors.c.
Benutzt door, dpath, dshort, gotogetstring(), i und input_to().
00101 { 00102 int i; 00103 if(!sizeof(door)) 00104 { 00105 write("No doors are given.\ndoor #1: "); 00106 input_to("getstring"); 00107 return; 00108 } 00109 if(sizeof(door) == 1) write("This door is"); 00110 else write("These doors are"); 00111 write(" given:\n"); 00112 for(i=0;i<sizeof(door);i++) 00113 write(door[i] + " ... " + dpath[i] + ", \"" + dshort[i] + "\"\n"); 00114 gotogetstring(); 00115 }

| static void door_redisplay2 | ( | ) | [static] |
Definiert in Zeile 209 der Datei doors.c.
Benutzt door, dpath, dshort, gotogetstring(), member_array() und QueryLabel().
00210 { 00211 int i; 00212 string dummy; 00213 dummy = dpath[member_array(QueryLabel("door"),door)]; 00214 dpath[member_array(QueryLabel("door"),door)] = "<no path>"; 00215 if(sizeof(door) == 1) write("This door is"); 00216 else write("These doors are"); 00217 write(" given:\n"); 00218 for(i=0;i<sizeof(door);i++) 00219 write(door[i] + " ... " + dpath[i] + ", \"" + dshort[i] + "\"\n"); 00220 dpath[member_array(QueryLabel("door"),door)] = dummy; 00221 gotogetstring(); 00222 }

| static void door_redisplay3 | ( | ) | [static] |
Definiert in Zeile 276 der Datei doors.c.
Benutzt door, dpath, dshort, gotogetstring(), member_array() und QueryLabel().
00277 { 00278 int i,j; 00279 string dummy; 00280 dummy = dshort[j = member_array(QueryLabel("door"),door)]; 00281 dshort[j] = "<no description>"; 00282 if(sizeof(door) == 1) write("This door is"); 00283 else write("These doors are"); 00284 write(" given:\n"); 00285 for(i=0;i<sizeof(door);i++) 00286 write(door[i] + " ... " + dpath[i] + ", \"" + dshort[i] + "\"\n"); 00287 dshort[j] = dummy; 00288 gotogetstring(); 00289 }

| static void door_save | ( | ) | [static] |
Definiert in Zeile 228 der Datei doors.c.
Benutzt gotogetstring().
00229 { 00230 write("You can't save. The door needs a path!\n"); 00231 gotogetstring(); 00232 }

| static void double_door | ( | string | str | ) | [static] |
Definiert in Zeile 193 der Datei doors.c.
Benutzt door, enter_door(), getdpath(), input_to() und QueryLabel().
00194 { 00195 if(str == "y") 00196 { 00197 insert_alist(QueryLabel("door"),door); 00198 return getdpath(); 00199 } 00200 if(str == "n") return enter_door(); 00201 write("Do you want to overwrite them?? (y/n) "); 00202 input_to("double_door"); 00203 }

| static void enter_door | ( | ) | [static] |
Definiert in Zeile 28 der Datei doors.c.
Benutzt door, gotogetstring() und SetLabel().
Wird benutzt von double_door(), getstatus() und gotogetstatus().
00029 { 00030 SetLabel("prompt","Door #" + (sizeof(door)+1) + ": "); 00031 SetLabel("nostring","nodoor"); 00032 SetLabel("ready","gotomenu"); 00033 SetLabel("undo","gotomenu"); 00034 SetLabel("redisplay","door_redisplay"); 00035 SetLabel("delete","delete_door"); 00036 SetLabel("save_file","normal_save_string"); 00037 SetLabel("insert_string","insert_door"); 00038 SetLabel("delete_return","gotogetstring"); 00039 gotogetstring(); 00040 }


| static void getdkey | ( | ) | [static] |
Definiert in Zeile 335 der Datei doors.c.
Benutzt dkey, gotogetstring() und SetLabel().
Wird benutzt von store_dlong().
00336 { 00337 SetLabel("prompt","Key #" + sizeof(dkey) + ": "); 00338 SetLabel("nostring","gotogetstatus"); 00339 SetLabel("ready","gotogetstatus"); 00340 SetLabel("undo","gotogetstatus"); 00341 SetLabel("redisplay","door_redisplay4"); 00342 SetLabel("delete","delete_door"); 00343 SetLabel("save_file","door_save"); 00344 SetLabel("insert_string","insert_key"); 00345 gotogetstring(); 00346 }


| static void getdlong | ( | ) | [static] |
Definiert in Zeile 298 der Datei doors.c.
Benutzt ClearText(), gotogettext(), SCREEN_WIDTH und SetLabel().
Wird benutzt von insert_door3().
00299 { 00300 ClearText(); 00301 SetLabel("lenmax",SCREEN_WIDTH); 00302 SetLabel("ready","store_dlong"); 00303 SetLabel("show_file","show_door"); 00304 SetLabel("menustring","But you need to describe the door!\n"); 00305 SetLabel("menu","gettext"); 00306 write("Please describe the door (help with \"~h\")!\n"); 00307 gotogettext(); 00308 }


| static void getdpath | ( | ) | [static] |
Definiert in Zeile 129 der Datei doors.c.
Benutzt dpath, gotogetstring() und SetLabel().
Wird benutzt von double_door() und insert_door().
00130 { 00131 SetLabel("prompt","Path #" + sizeof(dpath) + ": "); 00132 SetLabel("nostring","nodpath"); 00133 SetLabel("ready","nodpath"); 00134 SetLabel("undo","nodpath"); 00135 SetLabel("redisplay","door_redisplay2"); 00136 SetLabel("delete","delete_door"); 00137 SetLabel("save_file","door_save"); 00138 SetLabel("insert_string","insert_door2"); 00139 gotogetstring(); 00140 }


| static void getdshort | ( | ) | [static] |
Definiert in Zeile 250 der Datei doors.c.
Benutzt dshort, gotogetstring() und SetLabel().
Wird benutzt von insert_door2().
00251 { 00252 SetLabel("prompt","Short #" + sizeof(dshort) + ": "); 00253 SetLabel("nostring","nodshort"); 00254 SetLabel("ready","nodshort"); 00255 SetLabel("undo","nodshort"); 00256 SetLabel("redisplay","door_redisplay3"); 00257 SetLabel("insert_string","insert_door3"); 00258 gotogetstring(); 00259 }


| static void getstatus | ( | string | str | ) | [static] |
Definiert in Zeile 362 der Datei doors.c.
Benutzt abort(), delete_door(), dkey, door, dpath, dshort, dstatus, enter_door(), file_print(), gotogetstatus(), help, input_to(), member_array(), P_NAME, QueryFile(), QueryLabel(), QueryProp(), SetLabel() und SetProp().
00363 { 00364 int i; 00365 if(str[0..1] == "~!") 00366 { 00367 if(str[2..-1] == "") 00368 { 00369 SetLabel("nextfun","gotogetstatus"); 00370 write("You interrupt to make " + QueryFile() + 00371 "\nRestart with \"~m\".\n"); 00372 say(this_player()->QueryProp(P_NAME) + " interupts to write a file.\n"); 00373 SetProp("making",1); 00374 return; 00375 } 00376 this_player()->command_me(str[2..-1]); 00377 write("Status: "); 00378 input_to("getstatus"); 00379 return; 00380 } 00381 switch(str) { 00382 case "": 00383 write("Door status is now OPEN.\n"); 00384 return enter_door(); 00385 case "~q": return abort(); 00386 case "~h": 00387 write(help() + 00388 "1 ....... door is per default open 2 ....... door is per default closed\n"); 00389 if(dkey[member_array(QueryLabel("door"),door)] != "0") 00390 write("3 ....... door is per default locked\n"); 00391 return gotogetstatus(); 00392 case "~f": 00393 write(file_print() + "Status: "); 00394 input_to("getstatus"); 00395 return; 00396 case ".": 00397 case "**": 00398 write("Door status is now OPEN.\n"); 00399 return enter_door(); 00400 case "~r": 00401 if(sizeof(door) == 1) write("This door is"); 00402 else write("These doors are"); 00403 write(" given:\n"); 00404 for(i = 0; i < sizeof(door); i++) 00405 write(door[i] + " ... " + dpath[i] + ", \"" + dshort[i] + "\"\n"); 00406 return gotogetstatus(); 00407 case "~d": 00408 SetLabel("delete_return","gotogetstatus"); 00409 return delete_door(); 00410 case "~s": 00411 write(file_print() 00412 + "Do you want to save this file " + QueryFile() + "? (y/n) "); 00413 SetLabel("nextfun","gotogetstatus"); 00414 input_to("filewrite"); 00415 return; 00416 /* end switch */ } 00417 if(str == "open" || str == "0" || str == "1") return enter_door(); 00418 if(str == "closed" || str == "2") 00419 { 00420 dstatus[member_array(QueryLabel("door"),door)] = 1; 00421 return enter_door(); 00422 } 00423 if(str == "locked" || str == "3" 00424 && dkey[member_array(QueryLabel("door"),door)] != "0") 00425 { 00426 dstatus[member_array(QueryLabel("door"),door)] = 2; 00427 return enter_door(); 00428 } 00429 write("ERROR: don't understand! Please enter again: (Help with \"~h\")\n" + 00430 "Status: "); 00431 input_to("getstatus"); 00432 }

| static void goto_delete_door | ( | ) | [static] |
Definiert in Zeile 242 der Datei doors.c.
Benutzt delete_door() und SetLabel().
00243 { 00244 SetLabel("delete_return","gotomenu"); 00245 delete_door(); 00246 }

| static void gotogetstatus | ( | ) | [static] |
Definiert in Zeile 355 der Datei doors.c.
Benutzt door, enter_door() und input_to().
Wird benutzt von getstatus() und insert_key().
00356 { 00357 if(!sizeof(door)) return enter_door(); 00358 write("Status: "); 00359 input_to("getstatus"); 00360 }


| static void insert_door | ( | string | str | ) | [static] |
Definiert in Zeile 147 der Datei doors.c.
Benutzt dkey, dlong, door, dpath, dshort, dstatus, getdpath(), i, input_to(), member_array() und SetLabel().
00148 { 00149 int i; 00150 00151 switch(str) { 00152 case "n": str = "north"; break; 00153 case "s": str = "south"; break; 00154 case "e": str = "east"; break; 00155 case "w": str = "west"; break; 00156 case "u": str = "up"; break; 00157 case "d": str = "down"; break; 00158 } 00159 i = member_array(str,door); 00160 SetLabel("door",str); 00161 if(i != -1) 00162 { 00163 write("We have already an door named " + str + "!\n"); 00164 write(door[i] + " ... " + dpath[i] + ", \"" + dshort[i] + "\"\n"); 00165 write("Do you want to overwrite them? (y/n) "); 00166 input_to("double_door"); 00167 return; 00168 } 00169 door += ({str}); 00170 dpath += ({"<no path>"}); 00171 dshort += ({"<no description>"}); 00172 dlong += ({({"<It's a door without any description.>"})}); 00173 dkey += ({"0"}); 00174 dstatus += ({0}); 00175 return getdpath(); 00176 }

| static void insert_door2 | ( | string | str | ) | [static] |
Definiert in Zeile 236 der Datei doors.c.
Benutzt door, dpath, getdshort(), member_array() und QueryLabel().
00237 { 00238 dpath[member_array(QueryLabel("door"),door)] = str; 00239 return getdshort(); 00240 }

| static void insert_door3 | ( | string | str | ) | [static] |
Definiert in Zeile 293 der Datei doors.c.
Benutzt door, dshort, getdlong(), member_array() und QueryLabel().
00294 { 00295 dshort[member_array(QueryLabel("door"),door)] = str; 00296 return getdlong(); 00297 }

| static void insert_key | ( | string | str | ) | [static] |
Definiert in Zeile 348 der Datei doors.c.
Benutzt dkey, door, gotogetstatus(), member_array() und QueryLabel().
00349 { 00350 if(!str) str = "0"; 00351 dkey[member_array(QueryLabel("door"),door)] = str; 00352 return gotogetstatus(); 00353 }

| static void nodoor | ( | ) | [static] |
Definiert in Zeile 121 der Datei doors.c.
Benutzt gotogetstring().
00122 { 00123 write("Every door need a name. Please enter them!\n"); 00124 gotogetstring(); 00125 }

| static void nodpath | ( | ) | [static] |
Definiert in Zeile 183 der Datei doors.c.
Benutzt gotogetstring().
00184 { 00185 write("Every door needs a path. Please enter them!\n"); 00186 gotogetstring(); 00187 }

| static void nodshort | ( | ) | [static] |
Definiert in Zeile 266 der Datei doors.c.
Benutzt gotogetstring().
00267 { 00268 write("Every door needs a short description. Please enter them!\n"); 00269 gotogetstring(); 00270 }

| mixed SetProp | ( | string | prop, | |
| mixed | arg | |||
| ) |
Definiert in Zeile 144 der Datei properties.c.
Wird benutzt von _cd2(), _channel(), _check_wear_restrictions(), _clone_items(), _echo(), _examine(), _flush_cache(), _look(), _msg_beep(), _msg_prepend(), _oropax(), _query_questpoints(), _query_total_light(), _sense_exa(), _set_autoloadobj(), _set_disable_attack(), _set_extern_attributes_modifier(), _set_extern_health_modifier(), _set_frog(), _set_max_hp(), _set_max_sp(), _set_resistance(), _set_vulnerability(), _set_weight(), _setcmsg(), _setdmsg(), _toggle_brief(), _traenke(), add_player(), AddAmount(), AddArmour(), AddDefender(), AddExp(), AddItem(), AddLiquid(), AddPursuer(), AddRoomMessage(), AddSkill(), AddSpell(), AddWeapon(), AssocMember(), Attack(), binde_seil(), blaettere(), catch_up_hbs(), ChannelAdmin(), ChannelParser(), check_and_update_timed_key(), CiceroneCmd(), consume(), create(), create_default_npc(), Damage(), DeAssocMember(), defuel_drink(), defuel_food(), DelayPreparedSpells(), desc_check(), do_damage(), do_decay(), DoUnwear(), DoUnwield(), DoWear(), DoWield(), drink_alcohol(), drink_soft(), drink_this(), DryPlant(), eat_food(), eat_this(), empty(), FinalSetup(), FreeHands(), fuelle(), geschmack(), getmode(), getstatus(), getstring(), gettext(), heal_self(), heart_beat(), Identify(), init(), InitSkills(), InsertSensitiveObjectToList(), IsEqual(), lies(), LiquidContDescr(), liste(), loese_seil(), long(), MakeDrink(), mnpc_create(), move(), name(), NewbieChangeMsg(), NewbieStatusMsg(), NotifyMove(), oeffne(), Pacify(), PourLiquid(), QueryDamage(), QueryDefend(), QueryPreferedEnemy(), quit(), reduce_hit_points(), reduce_spell_points(), RegisterChannels(), reise(), remove(), RemoveDefender(), RemoveExit(), RemoveItem(), RemovePursuer(), RemoveSensitiveObjectFromList(), reset(), restore_spell_points(), schliesse(), set_email(), set_homepage(), set_icq(), set_messenger(), SetAttackChats(), SetChats(), SetEvalFactor(), setup(), team_aufnahmewunsch(), tie(), ungewaehlt(), unterschreibe(), UnwearArmour(), UnwearClothing(), UseHands(), walk_random(), WearArmour() und WearClothing().
00145 { 00146 closure func; 00147 mixed result; 00148 00149 // nur fuer heute 00150 if (!objectp(this_object())) 00151 return 0; 00152 00153 // NOSETMETHOD: Darf nicht gesetzt werden 00154 if (prop[F_MODE][name] & NOSETMETHOD ) return -1; 00155 00156 // Set-Method abfragen, so vorhanden 00157 if (func=prop[F_SET_METHOD][name]) 00158 { 00159 int flag; 00160 00161 // Wert als Set-Method? gleich zurueckgeben 00162 if (!closurep(func)) return func; 00163 00164 // An dieser Stelle muss func eine Closure sein. Da Set() ungebundene 00165 // Lambdas bindet, kann es auch nur eine gebundene Closure sein und das 00166 // Objekt existiert auch noch (sonst waere func == 0). 00167 00168 // closure_call setzen, falls noch nicht gesetzt 00169 if ((flag=closure_call<time())) 00170 closure_call = time()+59; 00171 00172 // Dann mal die Closure aufrufen. Bei Fehler selbige loeschen 00173 if (catch(result=funcall(func, Value, name);publish)) 00174 { 00175 prop[F_SET_METHOD]-=([name]); 00176 } 00177 00178 // Wenn closure_call gesetzt wurde, wieder loeschen 00179 if (flag) closure_call = 0; 00180 00181 // Und zurueckgeben 00182 return result; 00183 } 00184 00185 // _set_*-Methode vorhanden? falls ja, aufrufen.i 00186 // TODO: Closurecache einfuehren und Funktionaufruf nur noch machen, wenn es 00187 // die _set_* auch gibt? 00188 if (call_resolved(&result,this_object(),"_set_"+name,Value )) 00189 return result; 00190 00191 // Letzte Moeglichkeit: Muss eine 'normale' Property sein 00192 return Set( name, Value, F_VALUE, extern_call() ); 00193 }
| static void show_door | ( | ) | [static] |
Definiert in Zeile 310 der Datei doors.c.
Benutzt dlong, door, EditText(), file_print(), input_to(), member_array() und QueryLabel().
00311 { 00312 int i; 00313 string *dummy; 00314 00315 dummy = dlong[i = member_array(QueryLabel("door"),door)]; 00316 if(sizeof(EditText())) dlong[i] = EditText(); 00317 else dlong[i] = ({"<A door without any description.>"}); 00318 write(file_print() + "]"); 00319 if(sizeof(EditText())) dlong[i] = dummy; 00320 input_to("gettext"); 00321 }

| static void store_dlong | ( | ) | [static] |
Definiert in Zeile 323 der Datei doors.c.
Benutzt dlong, door, EditText(), getdkey(), gotogettext(), member_array() und QueryLabel().
00324 { 00325 int i; 00326 00327 if(!sizeof(EditText())) { 00328 write(QueryLabel("menustring")); 00329 return gotogettext(); 00330 } 00331 dlong[i = member_array(QueryLabel("door"),door)] = EditText(); 00332 return getdkey(); 00333 }

string* dkey [static] |
Definiert in Zeile 14 der Datei doors.c.
Wird benutzt von delete_door_really(), getdkey(), getstatus(), go_door(), init_doors(), insert_door(), insert_key(), look_doors(), NewDoor(), oeffnen(), QueryDoorStatus(), reset_doors(), schliessen(), SetDoorStatus() und special_detail_doors().
mixed* dlong [static] |
Definiert in Zeile 13 der Datei doors.c.
Wird benutzt von delete_door_really(), insert_door(), show_door() und store_dlong().
string* door [static] |
Definiert in Zeile 10 der Datei doors.c.
Wird benutzt von delete_door(), delete_door2(), delete_door_really(), door_redisplay(), door_redisplay2(), door_redisplay3(), double_door(), enter_door(), getstatus(), gotogetstatus(), insert_door(), insert_door2(), insert_door3(), insert_key(), show_door() und store_dlong().
string* dpath [static] |
Definiert in Zeile 11 der Datei doors.c.
Wird benutzt von delete_door(), delete_door_really(), door_redisplay(), door_redisplay2(), door_redisplay3(), getdpath(), getstatus(), insert_door() und insert_door2().
string* dshort [static] |
Definiert in Zeile 12 der Datei doors.c.
Wird benutzt von delete_door(), delete_door_really(), door_redisplay(), door_redisplay2(), door_redisplay3(), getdshort(), getstatus(), insert_door() und insert_door3().
int* dstatus [static] |
Definiert in Zeile 15 der Datei doors.c.
Wird benutzt von delete_door_really(), getstatus() und insert_door().
1.6.3