00001 00032 #ifndef LL_LLFIRSTUSE_H 00033 #define LL_LLFIRSTUSE_H 00034 00035 #include <vector> 00036 #include "llstring.h" 00037 00038 /* 00039 1. On first use of 'sit here', explain how to get up and rotate view. 00040 00041 2. On first use of map, explain dbl-click = telport, how hubs/beacons work, 00042 click-drag to move map 00043 00044 3. First use of pie 'Go To', explain other ways to move around 00045 00046 4. First use of 'Create' or 'Edit', explain build toolbar, that you can create 00047 things if build enabled, edit things you own, and that you can ESC to exit it. 00048 00049 5. First use of 'Talk to' explain difference between that and regular chat, 00050 reduced range, how to leave conversation, arrow keys to orbit. 00051 00052 6. First lft-click that does nothing (land,object): Explain that rgt-click 00053 gives menu, lft-click interacts or moves if physical 00054 00055 7. On first receipt of L$ (not rez/derez) explain that objects or people may 00056 give you L$, and how to give someone or something money ('Pay...'). 00057 00058 8. After first teleporting and being sent to nearest hub, a dialog explaining 00059 how to find and move toward the beacon. 00060 00061 9. On first accept/auto-accept permissions, explain that some objects may be 00062 activated by entering mouselook 'M', or may override your movement keys with 00063 other functions. 00064 00065 10. FIrst use of 'wear' or drag object from inventory onto self: 'You can 00066 attach objects to your body by dragging ontl yourelf of rgt-clk->wear from 00067 object or from inventory. 00068 00069 11. FIrst time you run the client on a system without QuickTime installed. 00070 00071 12. First time you create a flexible object. 00072 00073 13. First time you open the debug menus (ctrl-alt-shift D) 00074 00075 14. First time you create/edit a sculpted prim. 00076 */ 00077 00078 class LLFirstUse 00079 { 00080 public: 00081 // Add a config variable to be reset on resetFirstUse() 00082 static void addConfigVariable(const LLString& var); 00083 00084 // Sets all controls back to show the dialogs. 00085 static void disableFirstUse(); 00086 static void resetFirstUse(); 00087 00088 // These methods are called each time the appropriate action is 00089 // taken. The functions themselves handle only showing the dialog 00090 // the first time, or subsequent times if the user wishes. 00091 static void useBalanceIncrease(S32 delta); 00092 static void useBalanceDecrease(S32 delta); 00093 static void useSit(); 00094 static void useMap(); 00095 static void useGoTo(); 00096 static void useBuild(); 00097 static void useLeftClickNoHit(); 00098 static void useTeleport(); 00099 static void useOverrideKeys(); 00100 static void useAttach(); 00101 static void useAppearance(); 00102 static void useInventory(); 00103 static void useSandbox(); 00104 static void useFlexible(); 00105 static void useDebugMenus(); 00106 static void useSculptedPrim(); 00107 static void useVoice(); 00108 00109 protected: 00110 static std::set<LLString> sConfigVariables; 00111 }; 00112 00113 #endif 00114 // EOF