NAME: /d/class/obj/talisman.c
INHERITS:
	name                    fio    vio
	----------------        ---    ---
	std/object/ob.c           0      0
PROGRAM:
	0000: 03 04 195 196 01 02 03 02 03 04 16 02 00 43 01 00 
	0010: 02 01 02 02 05 06 43 01 00 02 01 02 02 07 08 43 
	0020: 01 00 02 01 02 02 09 65 43 01 00 02 01 02 02 10 
	0030: 65 43 01 00 02 01 02 02 11 65 43 01 00 02 01 02 
	0040: 02 12 65 43 01 00 02 01 46 15 45 02 02 13 13 05 
	0050: 14 02 02 14 14 05 14 02 02 15 15 05 14 46 13 13 
	0060: 43 00 00 01 93 00 13 14 43 00 00 01 93 01 13 16 
	0070: 93 02 60 00 18 10 00 02 02 192 17 94 61 02 91 60 
	0080: 00 37 04 00 60 01 18 07 00 13 18 61 02 91 60 01 
	0090: 18 10 00 02 02 193 19 94 61 02 91 13 20 61 02 91 
	00a0: 60 02 108 67 00 01 45 46 14 113 02 02 22 21 07 03 
	00b0: 01 10 10 96 93 00 14 113 02 02 24 23 07 03 01 60 
	00c0: 00 25 16 00 02 02 25 192 94 13 26 94 13 27 94 135 
	00d0: 15 45 03 04 02 02 24 13 07 03 01 18 07 00 13 28 
	00e0: 135 15 45 14 113 02 03 29 23 64 113 02 02 24 23 07 
	00f0: 03 01 60 00 95 07 04 01 01 03 04 02 02 29 13 03 
	0100: 04 02 02 24 13 07 03 01 60 00 94 07 04 01 01 02 
	0110: 02 30 192 94 13 31 94 135 15 45 46 14 113 02 02 22 
	0120: 32 07 03 01 10 10 96 93 00 14 113 02 02 24 33 07 
	0130: 03 01 60 00 25 16 00 02 02 34 192 94 13 35 94 13 
	0140: 27 94 135 15 45 03 04 02 02 24 14 07 03 01 18 07 
	0150: 00 13 36 135 15 45 14 113 02 03 29 33 64 113 02 02 
	0160: 24 33 07 03 01 60 00 95 07 04 01 01 03 04 02 02 
	0170: 29 14 03 04 02 02 24 14 07 03 01 60 00 94 07 04 
	0180: 01 01 02 02 30 192 94 13 37 94 135 15 45 46 13 38 
	0190: 135 14 113 02 02 29 23 03 04 02 02 24 13 07 03 01 
	01a0: 14 113 02 02 24 23 07 03 01 94 07 04 01 01 14 113 
	01b0: 02 02 24 23 07 03 01 14 113 02 02 24 39 07 03 01 
	01c0: 26 21 00 14 113 02 03 29 23 64 113 02 02 24 39 07 
	01d0: 03 01 07 04 01 01 14 113 02 02 29 33 03 04 02 02 
	01e0: 24 14 07 03 01 14 113 02 02 24 33 07 03 01 94 07 
	01f0: 04 01 01 14 113 02 02 24 33 07 03 01 14 113 02 02 
	0200: 24 40 07 03 01 26 21 00 14 113 02 03 29 33 64 113 
	0210: 02 02 24 40 07 03 01 07 04 01 01 03 04 02 03 29 
	0220: 14 64 07 04 01 01 03 04 02 03 29 13 64 07 04 01 
	0230: 01 15 45 46 
FUNCTIONS:
      name        offset    fio   flags   # locals  # args
      ----------- ------    ---  -------  --------  ------
   0: query            0      0   i-s-d-         3       1
   1: set              0      1   i-s-d-         0       3
   2: remove           0      2   i-s-d-         4       0
   3: move             0      3   i-s-d-         4       1
   4: add              0      4   i-s-d-         1       2
   5: delete           0      5   i-s-d-         0       1
   6: id               0      6   i-s-d-         3       1
   7: clean_up         0      7   i-s-d-         3       1
   8: receive_object     0      8   i-s-d-         0       1
   9: release_object     0      9   i-s-d-         0       1
  10: check_light      0     10   i-s-d-         2       0
  11: _query           0     11   i-s-d-         3       2
  12: _delete          0     12   i-s-d-         0       2
  13: _set             0     13   i-s-d-         1       3
  14: init_ob          0     14   i-s-d-         0       0
  15: query_ob_data     0     15   i-s-d-         0       0
  16: query_temp_ob_data     0     16   i-s-d-         0       0
  17: set_temp         0     17   i-s-d-         0       3
  18: delete_temp      0     18   i-s-d-         0       1
  19: query_temp       0     19   i-s-d-         3       1
  20: add_temp         0     20   i-s-d-         1       2
  21: query_long      94      0   --s---         3       0
  22: create           0      0   --s---         0       0
  23: query_auto_load    73      0   --s---         0       0
  24: init            75      0   --s---         0       0
  25: spstore        168      0   --s---         1       0
  26: tpstore        283      0   --s---         1       0
  27: recover        398      0   --s---         0       0
VARIABLES:
   0: ob_data     
   1: tmp_ob_data 
STRINGS:
   0: d/class/obj/talisman.c
   1: include/mudlib.h
   2: id
   3: talisman
   4: spell talisman
   5: short
   6: Spell Talisman
   7: long
   8: @@query_long
   9: prevent_get
  10: prevent_drop
  11: prevent_clean
  12: prevent_sell
  13: spstore
  14: tpstore
  15: recover
  16: This is a spell talisman for sto
  17:  spell points 
  18:  and 
  19:  theurgy points 
  20: currently stored.
  21: wizard
  22: query_level
  23: spell_points
  24: query
  25: You dont have that many sp's lef
  26:  spell points to 
  27: charge the talisman.\n
  28: You already have spell points st
  29: set
  30: You store 
  31:  spell points in your talisman.\n
  32: priest
  33: theurgy_points
  34: You dont have that many tp's lef
  35:  theurgy points to 
  36: You already have theurgy points 
  37:  theurgy points in your talisman
  38: you recover your stored points f
  39: max_sp
  40: max_tp

;;;  *** Disassembly ***
0000: this_object 
0002: getuid 
0003: seteuid 
0004: pop 
0005: push string 2, string 3, string 4
000a: aggregate 2
000d: call set              1
0011: pop 
0012: push string 5, string 6
0016: call set              1
001a: pop 
001b: push string 7, string 8
001f: call set              1
0023: pop 
0024: push string 9, number 1
0028: call set              1
002c: pop 
002d: push string 10, number 1
0031: call set              1
0035: pop 
0036: push string 11, number 1
003a: call set              1
003e: pop 
003f: push string 12, number 1
0043: call set              1
0047: pop 
0048: return_zero 

;; Function query_auto_load
0049: const1 
004a: return 

;; Function init
004b: push string 13, string 13
004f: add_action 
0051: push string 14, string 14
0055: add_action 
0057: push string 15, string 15
005b: add_action 
005d: return_zero 

;; Function query_long
005e: short_string "spstore"
0060: call query            0
0064: (void)assign_local LV0
0066: short_string "tpstore"
0068: call query            0
006c: (void)assign_local LV1
006e: short_string "This is a spell talisman for "
0070: (void)assign_local LV2
0072: local LV0
0074: branch_when_zero 000a (007f)
0077: push local 0, string 17
007b: + 
007c: local_lvalue LV2
007e: (void)+= 
007f: local LV0
0081: && 0004 (0086)
0084: local LV1
0086: branch_when_zero 0007 (008e)
0089: short_string " and "
008b: local_lvalue LV2
008d: (void)+= 
008e: local LV1
0090: branch_when_zero 000a (009b)
0093: push local 1, string 19
0097: + 
0098: local_lvalue LV2
009a: (void)+= 
009b: short_string "currently stored."
009d: local_lvalue LV2
009f: (void)+= 
00a0: local LV2
00a2: simul_efun "wrap" 1
00a6: return 
00a7: return_zero 

;; Function spstore
00a8: const0 
00a9: this_player 
00aa: push string 22, string 21
00ae: call_other 3
00b1: byte 10
00b3: * 
00b4: (void)assign_local LV0
00b6: const0 
00b7: this_player 
00b8: push string 24, string 23
00bc: call_other 3
00bf: local LV0
00c1: branch_ge 0010 (00d2)
00c4: push string 25, local 0
00c8: + 
00c9: short_string " spell points to "
00cb: + 
00cc: short_string "charge the talisman.\n"
00ce: + 
00cf: write 
00d0: const1 
00d1: return 
00d2: this_object 
00d4: push string 24, string 13
00d8: call_other 3
00db: branch_when_zero 0007 (00e3)
00de: short_string "You already have spell points"
00e0: write 
00e1: const1 
00e2: return 
00e3: const0 
00e4: this_player 
00e5: push string 29, string 23, number 0
00ea: this_player 
00eb: push string 24, string 23
00ef: call_other 3
00f2: local LV0
00f4: subtract 
00f5: call_other 4
00f8: pop 
00f9: this_object 
00fb: push string 29, string 13
00ff: this_object 
0101: push string 24, string 13
0105: call_other 3
0108: local LV0
010a: + 
010b: call_other 4
010e: pop 
010f: push string 30, local 0
0113: + 
0114: short_string " spell points in your talisma"
0116: + 
0117: write 
0118: const1 
0119: return 
011a: return_zero 

;; Function tpstore
011b: const0 
011c: this_player 
011d: push string 22, string 32
0121: call_other 3
0124: byte 10
0126: * 
0127: (void)assign_local LV0
0129: const0 
012a: this_player 
012b: push string 24, string 33
012f: call_other 3
0132: local LV0
0134: branch_ge 0010 (0145)
0137: push string 34, local 0
013b: + 
013c: short_string " theurgy points to "
013e: + 
013f: short_string "charge the talisman.\n"
0141: + 
0142: write 
0143: const1 
0144: return 
0145: this_object 
0147: push string 24, string 14
014b: call_other 3
014e: branch_when_zero 0007 (0156)
0151: short_string "You already have theurgy poin"
0153: write 
0154: const1 
0155: return 
0156: const0 
0157: this_player 
0158: push string 29, string 33, number 0
015d: this_player 
015e: push string 24, string 33
0162: call_other 3
0165: local LV0
0167: subtract 
0168: call_other 4
016b: pop 
016c: this_object 
016e: push string 29, string 14
0172: this_object 
0174: push string 24, string 14
0178: call_other 3
017b: local LV0
017d: + 
017e: call_other 4
0181: pop 
0182: push string 30, local 0
0186: + 
0187: short_string " theurgy points in your talis"
0189: + 
018a: write 
018b: const1 
018c: return 
018d: return_zero 

;; Function recover
018e: short_string "you recover your stored point"
0190: write 
0191: const0 
0192: this_player 
0193: push string 29, string 23
0197: this_object 
0199: push string 24, string 13
019d: call_other 3
01a0: const0 
01a1: this_player 
01a2: push string 24, string 23
01a6: call_other 3
01a9: + 
01aa: call_other 4
01ad: pop 
01ae: const0 
01af: this_player 
01b0: push string 24, string 23
01b4: call_other 3
01b7: const0 
01b8: this_player 
01b9: push string 24, string 39
01bd: call_other 3
01c0: branch_le 0015 (01d6)
01c3: const0 
01c4: this_player 
01c5: push string 29, string 23, number 0
01ca: this_player 
01cb: push string 24, string 39
01cf: call_other 3
01d2: call_other 4
01d5: pop 
01d6: const0 
01d7: this_player 
01d8: push string 29, string 33
01dc: this_object 
01de: push string 24, string 14
01e2: call_other 3
01e5: const0 
01e6: this_player 
01e7: push string 24, string 33
01eb: call_other 3
01ee: + 
01ef: call_other 4
01f2: pop 
01f3: const0 
01f4: this_player 
01f5: push string 24, string 33
01f9: call_other 3
01fc: const0 
01fd: this_player 
01fe: push string 24, string 40
0202: call_other 3
0205: branch_le 0015 (021b)
0208: const0 
0209: this_player 
020a: push string 29, string 33, number 0
020f: this_player 
0210: push string 24, string 40
0214: call_other 3
0217: call_other 4
021a: pop 
021b: this_object 
021d: push string 29, string 14, number 0
0222: call_other 4
0225: pop 
0226: this_object 
0228: push string 29, string 13, number 0
022d: call_other 4
0230: pop 
0231: const1 
0232: return 
0233: return_zero 
