| 1 | /* match.h */ |
|---|
| 2 | |
|---|
| 3 | #ifndef __MATCH_H |
|---|
| 4 | #define __MATCH_H |
|---|
| 5 | |
|---|
| 6 | #include "copyrite.h" |
|---|
| 7 | |
|---|
| 8 | /* match constants */ |
|---|
| 9 | /* match modifiers */ |
|---|
| 10 | #define MAT_CHECK_KEYS 0x000001 |
|---|
| 11 | #define MAT_GLOBAL 0x000002 |
|---|
| 12 | #define MAT_REMOTES 0x000004 |
|---|
| 13 | #define MAT_CONTROL 0x000008 |
|---|
| 14 | /* individual things to match */ |
|---|
| 15 | #define MAT_ME 0x000010 |
|---|
| 16 | #define MAT_HERE 0x000020 |
|---|
| 17 | #define MAT_ABSOLUTE 0x000040 |
|---|
| 18 | #define MAT_PLAYER 0x000080 |
|---|
| 19 | #define MAT_NEIGHBOR 0x000100 |
|---|
| 20 | #define MAT_POSSESSION 0x000200 |
|---|
| 21 | #define MAT_EXIT 0x004000 |
|---|
| 22 | #define MAT_PMATCH 0x008000 |
|---|
| 23 | /* special things to match */ |
|---|
| 24 | #define MAT_CARRIED_EXIT 0x010000 |
|---|
| 25 | #define MAT_CONTAINER 0x020000 |
|---|
| 26 | #define MAT_REMOTE_CONTENTS 0x040000 |
|---|
| 27 | #define MAT_NEAR 0x080000 |
|---|
| 28 | #define MAT_ENGLISH 0x100000 |
|---|
| 29 | /* types of match results - used internally */ |
|---|
| 30 | #define MAT_NOISY 0x1000000 |
|---|
| 31 | #define MAT_LAST 0x2000000 |
|---|
| 32 | /* groups of things to match */ |
|---|
| 33 | #define MAT_EVERYTHING (MAT_ME|MAT_HERE|MAT_ABSOLUTE|MAT_PLAYER| \ |
|---|
| 34 | MAT_NEIGHBOR|MAT_POSSESSION|MAT_EXIT|MAT_ENGLISH) |
|---|
| 35 | #define MAT_NEARBY (MAT_EVERYTHING|MAT_NEAR) |
|---|
| 36 | #define MAT_OBJECTS (MAT_ME|MAT_ABSOLUTE|MAT_PLAYER|MAT_NEIGHBOR| \ |
|---|
| 37 | MAT_POSSESSION) |
|---|
| 38 | #define MAT_NEAR_THINGS (MAT_OBJECTS|MAT_NEAR) |
|---|
| 39 | #define MAT_LIMITED (MAT_ABSOLUTE|MAT_PLAYER|MAT_NEIGHBOR) |
|---|
| 40 | #define MAT_REMOTE (MAT_ABSOLUTE|MAT_PLAYER|MAT_REMOTE_CONTENTS|MAT_EXIT) |
|---|
| 41 | |
|---|
| 42 | |
|---|
| 43 | /* Functions we can call */ |
|---|
| 44 | /* These functions do the matching and return the result: |
|---|
| 45 | * match_result - returns match, NOTHING, or AMBIGUOUS |
|---|
| 46 | * noisy_match_result - notifies player, returns match or NOTHING |
|---|
| 47 | * last_match_result - returns a match or NOTHING |
|---|
| 48 | * match_controlled - returns match if player controls, or NOTHING |
|---|
| 49 | */ |
|---|
| 50 | extern dbref match_result |
|---|
| 51 | (const dbref who, const char *name, const int type, const long int flags); |
|---|
| 52 | extern dbref noisy_match_result |
|---|
| 53 | (const dbref who, const char *name, const int type, const long int flags); |
|---|
| 54 | extern dbref last_match_result |
|---|
| 55 | (const dbref who, const char *name, const int type, const long int flags); |
|---|
| 56 | extern dbref match_controlled(dbref player, const char *name); |
|---|
| 57 | |
|---|
| 58 | #define match_thing(player,name) \ |
|---|
| 59 | noisy_match_result((player), (name), NOTYPE, MAT_EVERYTHING) |
|---|
| 60 | |
|---|
| 61 | #endif /* __MATCH_H */ |
|---|