00001
00032 #ifndef LL_LLVIEWERMESSAGE_H
00033 #define LL_LLVIEWERMESSAGE_H
00034
00035 #include "llinstantmessage.h"
00036 #include "lltransactiontypes.h"
00037 #include "lluuid.h"
00038 #include "stdenums.h"
00039
00040
00041
00042
00043 class LLColor4;
00044 class LLViewerObject;
00045 class LLInventoryObject;
00046 class LLInventoryItem;
00047 class LLMessageSystem;
00048 class LLViewerRegion;
00049
00050
00051
00052
00053
00054 enum InventoryOfferResponse
00055 {
00056 IOR_ACCEPT,
00057 IOR_DECLINE,
00058 IOR_MUTE,
00059 IOR_BUSY
00060 };
00061
00062 BOOL can_afford_transaction(S32 cost);
00063 void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group = FALSE,
00064 S32 trx_type = TRANS_GIFT, const LLString& desc = LLString::null);
00065 void busy_message (LLMessageSystem* msg, LLUUID from_id);
00066
00067 void process_logout_reply(LLMessageSystem* msg, void**);
00068 void process_layer_data(LLMessageSystem *mesgsys, void **user_data);
00069 void process_derez_ack(LLMessageSystem*, void**);
00070 void process_places_reply(LLMessageSystem* msg, void** data);
00071 void send_sound_trigger(const LLUUID& sound_id, F32 gain);
00072 void process_improved_im(LLMessageSystem *msg, void **user_data);
00073 void process_script_question(LLMessageSystem *msg, void **user_data);
00074 void process_chat_from_simulator(LLMessageSystem *mesgsys, void **user_data);
00075
00076
00077 void send_agent_update(BOOL force_send, BOOL send_reliable = FALSE);
00078 void process_object_update(LLMessageSystem *mesgsys, void **user_data);
00079 void process_compressed_object_update(LLMessageSystem *mesgsys, void **user_data);
00080 void process_cached_object_update(LLMessageSystem *mesgsys, void **user_data);
00081 void process_terse_object_update_improved(LLMessageSystem *mesgsys, void **user_data);
00082
00083 void send_simulator_throttle_settings(const LLHost &host);
00084 void process_kill_object( LLMessageSystem *mesgsys, void **user_data);
00085 void process_time_synch( LLMessageSystem *mesgsys, void **user_data);
00086 void process_sound_trigger(LLMessageSystem *mesgsys, void **user_data);
00087 void process_preload_sound( LLMessageSystem *mesgsys, void **user_data);
00088 void process_attached_sound( LLMessageSystem *mesgsys, void **user_data);
00089 void process_attached_sound_gain_change( LLMessageSystem *mesgsys, void **user_data);
00090 void process_energy_statistics(LLMessageSystem *mesgsys, void **user_data);
00091 void process_health_message(LLMessageSystem *mesgsys, void **user_data);
00092 void process_sim_stats(LLMessageSystem *mesgsys, void **user_data);
00093 void process_shooter_agent_hit(LLMessageSystem* msg, void** user_data);
00094 void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data);
00095 void process_avatar_appearance(LLMessageSystem *mesgsys, void **user_data);
00096 void process_camera_constraint(LLMessageSystem *mesgsys, void **user_data);
00097 void process_avatar_sit_response(LLMessageSystem *mesgsys, void **user_data);
00098 void process_set_follow_cam_properties(LLMessageSystem *mesgsys, void **user_data);
00099 void process_clear_follow_cam_properties(LLMessageSystem *mesgsys, void **user_data);
00100 void process_name_value(LLMessageSystem *mesgsys, void **user_data);
00101 void process_remove_name_value(LLMessageSystem *mesgsys, void **user_data);
00102 void process_kick_user(LLMessageSystem *msg, void** );
00103
00104
00105 void process_economy_data(LLMessageSystem *msg, void** );
00106 void process_money_balance_reply(LLMessageSystem* msg_system, void**);
00107 void process_adjust_balance(LLMessageSystem* msg_system, void**);
00108
00109 void process_alert_message(LLMessageSystem* msg, void**);
00110 void process_agent_alert_message(LLMessageSystem* msgsystem, void** user_data);
00111 void process_alert_core(const std::string& message, BOOL modal);
00112
00113
00114 typedef std::list<LLMeanCollisionData*> mean_collision_list_t;
00115 extern mean_collision_list_t gMeanCollisionList;
00116
00117 void handle_show_mean_events(void *);
00118 void process_mean_collision_alert_message(LLMessageSystem* msg, void**);
00119
00120 void process_frozen_message(LLMessageSystem* msg, void**);
00121
00122 void process_derez_container(LLMessageSystem *msg, void**);
00123 void container_inventory_arrived(LLViewerObject* object,
00124 std::list<LLPointer<LLInventoryObject> >* inventory,
00125 S32 serial_num,
00126 void* data);
00127
00128
00129 void send_complete_agent_movement(const LLHost& sim_host);
00130 void process_agent_movement_complete(LLMessageSystem* msg, void**);
00131 void process_crossed_region(LLMessageSystem* msg, void**);
00132 void process_teleport_start(LLMessageSystem* msg, void**);
00133 void process_teleport_progress(LLMessageSystem* msg, void**);
00134 void process_teleport_failed(LLMessageSystem *msg,void**);
00135 void process_teleport_finish(LLMessageSystem *msg, void**);
00136
00137
00138 void process_teleport_local(LLMessageSystem *msg,void**);
00139 void process_user_sim_location_reply(LLMessageSystem *msg,void**);
00140
00141 void send_simple_im(const LLUUID& to_id,
00142 const char* message,
00143 EInstantMessage dialog = IM_NOTHING_SPECIAL,
00144 const LLUUID& id = LLUUID::null);
00145
00146 void send_group_notice(const LLUUID& group_id,
00147 const char* subject,
00148 const char* message,
00149 const LLInventoryItem* item);
00150
00151 void handle_lure(const LLUUID& invitee);
00152 void handle_lure(LLDynamicArray<LLUUID>& ids);
00153
00154
00155
00156 void send_improved_im(const LLUUID& to_id,
00157 const char* name,
00158 const char* message,
00159 U8 offline = IM_ONLINE,
00160 EInstantMessage dialog = IM_NOTHING_SPECIAL,
00161 const LLUUID& id = LLUUID::null,
00162 U32 timestamp = NO_TIMESTAMP,
00163 const U8* binary_bucket = (U8*)EMPTY_BINARY_BUCKET,
00164 S32 binary_bucket_size = EMPTY_BINARY_BUCKET_SIZE);
00165
00166 void process_user_info_reply(LLMessageSystem* msg, void**);
00167
00168
00169
00170
00171 const S32 TIME_STR_LENGTH = 30;
00172 char* formatted_time(const time_t& the_time, char* buffer);
00173
00174 void send_places_query(const LLUUID& query_id,
00175 const LLUUID& trans_id,
00176 const char* query_text,
00177 U32 query_flags,
00178 S32 category,
00179 const char* sim_name);
00180 void process_script_dialog(LLMessageSystem* msg, void**);
00181 void process_load_url(LLMessageSystem* msg, void**);
00182 void process_script_teleport_request(LLMessageSystem* msg, void**);
00183 void process_covenant_reply(LLMessageSystem* msg, void**);
00184 void onCovenantLoadComplete(LLVFS *vfs,
00185 const LLUUID& asset_uuid,
00186 LLAssetType::EType type,
00187 void* user_data, S32 status, LLExtStat ext_status);
00188 void callbackCacheEstateOwnerName(
00189 const LLUUID& id,
00190 const char* first,
00191 const char* last,
00192 BOOL is_group,
00193 void*);
00194
00195
00196 void process_offer_callingcard(LLMessageSystem* msg, void**);
00197 void process_accept_callingcard(LLMessageSystem* msg, void**);
00198 void process_decline_callingcard(LLMessageSystem* msg, void**);
00199
00200
00201 void invalid_message_callback(LLMessageSystem*, void*, EMessageException);
00202
00203 void process_initiate_download(LLMessageSystem* msg, void**);
00204 void inventory_offer_callback(S32 option, void* user_data);
00205 void start_new_inventory_observer();
00206
00207 struct LLOfferInfo
00208 {
00209 EInstantMessage mIM;
00210 LLUUID mFromID;
00211 BOOL mFromGroup;
00212 BOOL mFromObject;
00213 LLUUID mTransactionID;
00214 LLUUID mFolderID;
00215 LLUUID mObjectID;
00216 LLAssetType::EType mType;
00217 LLString mFromName;
00218 LLString mDesc;
00219 LLHost mHost;
00220 };
00221
00222 void process_feature_disabled_message(LLMessageSystem* msg, void**);
00223
00224 #endif
00225
00226