… | |
… | |
42 | /* if ob is not a marking rune or floor, then check special cases */ |
42 | /* if ob is not a marking rune or floor, then check special cases */ |
43 | if (ob->arch->archname != shstr_rune_mark && ob->type != FLOOR) |
43 | if (ob->arch->archname != shstr_rune_mark && ob->type != FLOOR) |
44 | { |
44 | { |
45 | switch (tmp->type) |
45 | switch (tmp->type) |
46 | { |
46 | { |
47 | case SIGN: |
47 | case SIGN: |
48 | case MAGIC_EAR: |
48 | case MAGIC_EAR: |
49 | /* Allow signs and magic ears to be built on books */ |
49 | /* Allow signs and magic ears to be built on books */ |
50 | if (ob->type != BOOK) |
50 | if (ob->type != BOOK) |
51 | { |
|
|
52 | return 0; |
|
|
53 | } |
|
|
54 | break; |
|
|
55 | case BUTTON: |
|
|
56 | case DETECTOR: |
|
|
57 | case PEDESTAL: |
|
|
58 | case CF_HANDLE: |
|
|
59 | /* Allow buttons and levers to be built under gates */ |
|
|
60 | if (ob->type != GATE && ob->type != DOOR) |
|
|
61 | { |
|
|
62 | return 0; |
|
|
63 | } |
|
|
64 | break; |
|
|
65 | default: |
|
|
66 | return 0; |
51 | return 0; |
|
|
52 | break; |
|
|
53 | case BUTTON: |
|
|
54 | case DETECTOR: |
|
|
55 | case PEDESTAL: |
|
|
56 | case CF_HANDLE: |
|
|
57 | /* Allow buttons and levers to be built under gates */ |
|
|
58 | if (ob->type != GATE && ob->type != DOOR) |
|
|
59 | return 0; |
|
|
60 | break; |
|
|
61 | default: |
|
|
62 | return 0; |
67 | } |
63 | } |
68 | } |
64 | } |
|
|
65 | |
69 | ob = ob->above; |
66 | ob = ob->above; |
70 | } |
67 | } |
71 | return 1; |
68 | return 1; |
72 | } |
69 | } |
73 | |
70 | |